XML:TRAM: Difference between revisions

7,592 bytes added ,  10 October 2023
m
no edit summary
mNo edit summary
mNo edit summary
Line 1: Line 1:
{{XML_File_Header | prev=TRAC | type=TRAM | next=TRAS | name=Totoro Animation}}
{{XML_File_Header | prev=TRAC | type=TRAM | next=TRAS | name=Totoro Animation}}
{{update}}
 
{{TOCfloat|side=right}}
{{TOCfloat|side=right}}
==General information==
==General information==
Line 720: Line 720:


===Via Simple OniSplit GUI===
===Via Simple OniSplit GUI===
There was a long-standing problem with combined ONCC/TRAM files where the textures would be missing.<!--[Iritscen: I don't understand this sentence; is it important to keep this historical note?] With an older method you couldn't export non-native TRAM which meant to the TRAM had to be registered in the TRAC the ONCC is using.-->
There was a long-standing problem with combined ONCC/TRAM files where the textures would be missing.<!--[Iritscen: I don't understand this sentence; is it important to keep this historical note?][Paradox: Geyser still didn't release a new OniSplit containing that fix, right?] With an older method you couldn't export non-native TRAM which meant to the TRAM had to be registered in the TRAC the ONCC is using.-->


'''[http://www.paradox.oni2.net/programs/Simple_OniSplit_GUI.zip Simple OniSplit GUI]''' post-edits the DAE to fix missing textures. The character-related .oni files must be all in one folder. Usually the level0_Final folder does the trick.
'''[http://www.paradox.oni2.net/programs/Simple_OniSplit_GUI.zip Simple OniSplit GUI]''' post-edits the DAE to fix missing textures. The character-related .oni files must be all in one folder. Usually the level0_Final folder does the trick.
Line 824: Line 824:


===Throws===
===Throws===
: Todo: Add here throw pair table from talk page when it is complete.
Throw target animations are registered in the TRAC of the throw initiator (AKA the throw source). Target animations are forced onto the other character, removing the need to have that animation in the target's TRAC. Throw target (TRAM*tgt) animations can only cover up to 256 frames (0-255). These animations of type ''ThrownX'' are like slots. They can be used freely, although it might be a good idea to follow the traditional slot arrangement whenever possible: first the normal throws, then run, the catch, then disarm, and so on.
 
The first anim state of source (src) and target (tgt) is the "primary" <FromState>. The others <FromState> entries are located in <Shortcut>.
{| class="wikitable" width=100%
|-
! rowspan=2 width=240 | names
! rowspan=2 width=40 | key combo
! colspan=4 | context
! colspan=2 style="background: #FF0;" | anim type
! rowspan=2 width=400 | image
|-
<!--context-->
! width=40 | varient
! width=60 | src state
! width=60 | tgt state
! width=85 | facing setup<!--tgt position only?(or pelvis rotation?)-->
<!--facing setup tgt rotation relative to src pelvis (or tgt pelvis position?)-->
 
<!--anim type-->
! width=40 style="background: #FF0;" | src
! width=40 style="background: #FF0;" | tgt
|-
! colspan=9 | normal throws a.k.a. static throws
|- style="vertical-align:top;"
|<!--names--> static throw forward punch
: TRAMKONCOMthrow_fw_p
: TRAMKONCOMthrow_fw_p_tgt
|<!--key combo--> P + ↑
|<!--varient--> COM
|<!--src state--> '''Standing'''
 
RunStart
|<!--tgt state--> '''Standing'''
 
Crouch<br>
Stunned
|<!--facing setup--> face-to-'''face'''
|<!--anim type src--> '''ThrowForwardPunch'''
|<!--anim type tgt--> '''Thrown1'''
|<!--image--> [[image:KONCOMthrow_fw_p.jpg|200px]]
|-style="vertical-align:top;"
|<!--names--> static throw forward kick
: TRAMKONCOMthrow_fw_k
: TRAMKONCOMthrow_fw_k_tgt
|<!--key combo--> K + ↑
|<!--varient--> COM
|<!--src state--> '''Standing'''
 
RunStart
|<!--tgt state--> '''Standing'''
 
Crouch<br>
Stunned
|<!--facing setup--> face-to-'''face'''
|<!--anim type src--> '''ThrowForwardKick'''
|<!--anim type tgt--> '''Thrown2'''
|<!--image--> [[image:KONCOMthrow_fw_k.jpg|200px]]
|-style="vertical-align:top;"
|<!--names--> static throw backward punch
: TRAMKONCOMthrow_bk
: TRAMKONCOMthrow_bk_tgt
|<!--key combo--> P + ↑
|<!--varient--> COM
|<!--src state--> '''Standing'''
 
RunStart
|<!--tgt state--> '''Standing'''
 
Crouch<br>
WalkingLeftDown<br>
WalkingRightDown<br>
Stunned
|<!--facing setup--> face-to-'''back'''
|<!--anim type src--> '''ThrowBackwardPunch'''
|<!--anim type tgt--> '''Thrown3'''
|<!--image--> [[image:KONCOMthrow_bk.jpg|200px]]
|-style="vertical-align:top;"
|<!--names--> static throw backward punch
: TRAMKONCOMthrow_bk_k
: TRAMKONCOMthrow_bk_k_tgt
|<!--key combo--> K + ↑
|<!--varient--> COM
|<!--src state--> '''Standing'''
 
RunStart
|<!--tgt state--> '''Standing'''
 
Crouch<br>
WalkingLeftDown<br>
WalkingRightDown<br>
Stunned
|<!--facing setup--> face-to-'''back'''
|<!--anim type src--> '''ThrowBackwardKick'''
|<!--anim type tgt--> '''Thrown4'''
|<!--image--> [[image:KONCOMthrow_bk_k.jpg|200px]]
|-style="vertical-align:top;"
! colspan=9 | run throws
|-style="vertical-align:top;"
|<!--names--> run throw forward punch
: (forward "lariat")
: TRAMKONCOMrun_throw_fw
: TRAMKONCOMrun_throw_fw_tgt
|<!--key combo--> P + ↑(↑)
|<!--varient--> COM
|<!--src state--> '''<span style="color: silver;">None</span>'''


Throw target animations are registered in the TRAC of the throw initiator (AKA the throw source). Target animations are forced onto the other character, removing the need to have that animation in the target's TRAC. Throw target (TRAM*tgt) animations can only cover up to 256 frames (0-255).
RunningLeftDown<br>
RunningRightDown
|<!--tgt state--> '''Standing'''


====Forward throws====
RunningLeftDown<br>
Scenario: You load two characters into Mod Tool and rotate (+/-180°) the throw target character because you need them to stand face to face as you work on an animation. When you are done animating, the target animation would need to be reversed again. This means multiplying the velocities by -1; the rotation also needs correcting. So it looks like you need *(-1) for the x rotation and -/+180° (depending on your initial change) for the Y rotation.
RunningRightDown<br>
Stunned<br>
WalkingLeftDown<br>
WalkingRightDown<br>
|<!--facing setup--> face-to-'''face'''
|<!--anim type src--> '''RunThrowForwardPunch'''
|<!--anim type tgt--> '''Thrown5'''
|<!--image--> [[image:KONCOMrun_throw_fw.jpg|200px]]
|-style="vertical-align:top;"
|<!--names--> run throw forward kick
: TRAMKONCOMrun_thw_fw_k
: TRAMKONCOMrun_thw_fw_k_tgt
|<!--key combo--> K + ↑(↑)
|<!--varient--> COM
|<!--src state-->'''<span style="color: silver;">None</span>'''
 
RunningLeftDown<br>
RunningRightDown
|<!--tgt state-->'''Standing'''
 
RunningLeftDown<br>
RunningRightDown<br>
Stunned<br>
WalkingLeftDown<br>
WalkingRightDown
|<!--facing setup--> face-to-'''face'''
|<!--anim type src--> '''RunThrowForwardKick'''
|<!--anim type tgt--> '''Thrown6'''
|<!--image--> [[image:KONCOMrun_thw_fw_k.jpg|200px]]
<!--
identical headers but
STRCOMrun_thw_fw_p (face-to-face, with righty angle) links to Thrown5
STRCOMrun_thw_fw_pl (face-to-face, with lefty angle) links to Thrown6
 
 
 
 
-->
|-style="vertical-align:top;"
|<!--names--> run throw backward punch
: (backward "lariat")
: TRAMKONCOMrun_throw_bk
: TRAMKONCOMrun_throw_bk_tgt
|<!--key combo--> P + ↑(↑)
|<!--varient--> COM
|<!--src state-->'''<span style="color: silver;">None</span>'''
 
RunningLeftDown<br>
RunningRightDown
|<!--tgt state-->'''Standing'''
 
RunningBackLeftDown<br>
RunningBackRightDown<br>
WalkingRightDown<br>
WalkingLeftDown<br>
Stunned
 
|<!--facing setup--> face-to-'''back'''
|<!--anim type src--> '''RunThrowBackwardPunch'''
|<!--anim type tgt--> '''Thrown7'''
|<!--image-->
|-style="vertical-align:top;"
|<!--names--> run throw backward kick
: TRAMREDCOMrun_thw_bk_k
: TRAMREDCOMrun_thw_bk_k_tgt
|<!--key combo--> K + ↑(↑)
|<!--varient--> COM
|<!--src state-->'''<span style="color: silver;">None</span>'''
 
RunningLeftDown<br>
RunningRightDown
|<!--tgt state-->'''Standing'''
 
RunningBackLeftDown<br>
RunningBackRightDown<br>
Stunned
|<!--facing setup--> face-to-'''back'''
|<!--anim type src--> '''RunThrowBackwardKick'''
|<!--anim type tgt--> '''Thrown8'''
|<!--image--> [[image:REDCOMrun_thw_bk_k.jpg|200px]]
|-style="vertical-align:top;"
! colspan=9 | catching throws a.k.a. tackle throws
|-style="vertical-align:top;"
|<!--names--> tackle throw backward kick?<br>(never used)
|<!--key combo-->
|<!--varient-->
|<!--src state-->
|<!--tgt state-->
|<!--facing setup-->
|<!--anim type src-->
|<!--anim type tgt--> Thrown9
|<!--image-->
|-style="vertical-align:top;"
|<!--names--> tackle throw backward punch
: TRAMKONCOMrun_tkl_bk_p
: TRAMKONCOMrun_tkl_bk_p_tgt
|<!--key combo--> P + ↑(↑)
|<!--varient--> COM
|<!--src state-->'''<span style="color: silver;">None</span>'''
 
RunningLeftDown<br>
RunningRightDown
|<!--tgt state-->'''<span style="color: silver;">None</span>'''
 
RunningLeftDown<br>
RunningRightDown
|<!--facing setup--> face-to-'''back'''
|<!--anim type src--> '''RunThrowBackwardPunch'''
|<!--anim type tgt--> '''Thrown10'''
|<!--image--> [[image:KONCOMrun_tkl_bk_p.jpg|200px]]
|-style="vertical-align:top;"
! colspan=9 | disarm throws
|-style="vertical-align:top;"
|<!--names--> pistol disarm throw forward punch
: TRAMKONPISthrow_fw_p
: TRAMKONPISthrow_fw_p_tgt
|<!--key combo--> P + ↑
|<!--varient--> PIS
|<!--src state-->'''Standing'''
 
RunStart
|<!--tgt state-->'''Standing'''
 
Crouch<br>
Stunned
|<!--facing setup--> face-to-'''face'''
|<!--anim type src--> '''ThrowForwardPunch'''
|<!--anim type tgt--> '''Thrown11'''
|<!--image--> [[image:KONPISthrow_fw_p.jpg|200px]]
|-style="vertical-align:top;"
|<!--names--> pistol disarm throw forward kick
: TRAMKONPISthrow_fw_k
: TRAMKONPISthrow_fw_k_tgt
|<!--key combo--> K + ↑
|<!--varient--> PIS
|<!--src state-->'''Standing'''
 
RunStart
|<!--tgt state-->'''Standing'''
 
Crouch<br>
Stunned
|<!--facing setup--> face-to-'''face'''
|<!--anim type src--> '''ThrowForwardKick'''
|<!--anim type tgt--> '''Thrown12'''
|<!--image--> [[image:KONPISthrow_fw_k.jpg|200px]]
|-style="vertical-align:top;"
|<!--names--> pistol disarm throw backward punch
: TRAMKONPISthrow_bk
: TRAMKONPISthrow_bk_tgt
|<!--key combo--> P + ↑
|<!--varient--> PIS
|<!--src state-->'''Standing'''
 
RunStart
|<!--tgt state-->'''Standing'''
 
Crouch<br>
WalkingLeftDown<br>
WalkingRightDown<br>
Stunned
|<!--facing setup--> face-to-'''back'''
|<!--anim type src--> '''ThrowBackwardPunch'''
|<!--anim type tgt--> '''Thrown13'''
|<!--image--> [[image:KONPISthrow_bk.jpg|200px]]
|-style="vertical-align:top;"
|<!--names--> (never used)
|<!--key combo-->
|<!--varient-->
|<!--src state-->
|<!--tgt state-->
|<!--facing setup-->
|<!--anim type src-->
|<!--anim type tgt--> Thrown14
|<!--image-->
|-style="vertical-align:top;"
|<!--names--> rifle disarm throw forward punch
: TRAMKONRIFthrow_fw_p
: TRAMKONRIFthrow_fw_p_tgt
|<!--key combo--> P +
|<!--varient--> RIF
|<!--src state-->'''Standing'''


=====BlenderOni Throw Adjust=====
RunStart
There is a Blender script implemented within the BlenderOni addon for rotating and adding PositionOffset to a forward throw Target animation. It is capable of adjusting both forward and back throws. The script's old version can be accessed [[Blender/Obsolete_scripts#Script_for_adjusting_forward_throw_targets|HERE.]]
|<!--tgt state-->'''Standing'''


====Excel macro====
Crouch<br>
[[Image:Animation_macro_v4.png|right|thumb]]
Stunned
The Excel macro can be used to create any TRAM except overlays. [https://www.youtube.com/watch?v=vDTPYfvMf4M Demo vid here].
|<!--facing setup--> face-to-'''face'''
|<!--anim type src--> '''ThrowForwardPunch'''
|<!--anim type tgt--> '''Thrown15'''
|<!--image--> [[image:KONRIFthrow_fw_p.jpg|200px]]
|-style="vertical-align:top;"
|<!--names--> rifle disarm throw backward punch
: TRAMKONRIFthrow_bk_p
: TRAMKONRIFthrow_bk_p_tgt
|<!--key combo--> P + ↑
|<!--varient--> RIF
|<!--src state-->'''Standing'''


The macro should be rewritten as a .NET framework or application because Excel is not freeware. However, the tool was made with XSI in mind (for getting animation pair-based information). As XSI is mostly considered obsolete by the community, research for doing the same with Blender will be needed.
RunStart
|<!--tgt state-->'''Standing'''


There was some development of a .NET-based '''[[TRAM setup assistant]]''' in 2016, but the work drifted into inactivity since the community showed no sign of demand for an updated tool.
Crouch<br>
Stunned
|<!--facing setup--> face-to-'''back'''
|<!--anim type src--> '''ThrowBackwardPunch'''
|<!--anim type tgt--> '''Thrown16'''
|<!--image--> [[image:KONRIFthrow_bk_p.jpg|200px]]
|-style="vertical-align:top;"
|<!--names--> (never used)
|<!--key combo-->
|<!--varient-->
|<!--src state-->
|<!--tgt state-->
|<!--facing setup-->
|<!--anim type src-->
|<!--anim type tgt--> Thrown17
|<!--image-->
|}


As of now there is a Blender script for creating throw target adjustment data. So instead of writing a new stand-alone app, at least the creation of header data might be better ported to the Blender script.
====Forward throws====
Scenario: You load two characters into Mod Tool and rotate (+/-180°) the throw target character because you need them to stand face to face as you work on an animation. When you are done animating, the target animation would need to be reversed again. This means multiplying the velocities by -1; the rotation also needs correcting. So it looks like you need *(-1) for the x rotation and -/+180° (depending on your initial change) for the Y rotation.


'''Macro usage:'''
=====BlenderOni Throw Adjust=====
* Put your files into the "input_and_output" folder.
There is a Blender script implemented within the BlenderOni addon for rotating and adding PositionOffset to a forward throw Target animation. It is capable of adjusting both forward and back throws. The script's old version can be accessed [[Blender/Obsolete_scripts#Script_for_adjusting_forward_throw_targets|HERE.]]
* Disable macro security if you don't want to have to click on the "Enable Content" button every time.
* Close other worksheets before you run the macro.
* If you are not afraid of VBA code, you can enter the dev environment by hitting Alt+F11. If you want to extend the attack library with more screenshots and settings, search for "LibraryThrows", "LibraryAttack", "Picture", and "CBAttackHelp.AddItem".


===Run animations===
===Run animations===
Line 991: Line 1,304:


===Impact effect===
===Impact effect===
Impact effects (particle) are picked by logic made within [[XML:BINA/ONIE#Visual_guides:_weapon.2C_melee.2C_environment|ONIE]]. Furthermore particles must be registered in [[XML:ONCC|ONCC]].
Impact effects - mostly particle - are picked by logic made within [[XML:BINA/ONIE#Visual_guides:_weapon.2C_melee.2C_environment|ONIE]]. Furthermore particles must be registered in [[XML:ONCC|ONCC]].


[[Image:XML_TRAM_KONCOMkick_fw_with_ninflash1.jpg|thumb|200px]]
[[Image:XML_TRAM_KONCOMkick_fw_with_ninflash1.jpg|thumb|200px]]


{{XML}}
{{XML}}
8,013

edits