Jump to content

XML:TRAM: Difference between revisions

587 bytes added ,  20 February 2022
updated sections on XSI and Blender; clarified wording of JF section
(→‎List of tags, types, and flags: Clarified that <ThrowAdjustment> <Angle> tag is specified in Radians.)
(updated sections on XSI and Blender; clarified wording of JF section)
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}}


Line 715: Line 714:
==Editing 3D data==
==Editing 3D data==
===XSI===
===XSI===
You can load the DAE file into a compatible editor. So far, the community's favorite is {{ModTool}}.
In the past, the community's preferred tool for any 3D modeling and animation was {{ModTool}}. However, this free program was discontinued in 2014, and modders did not want to be tied to an aging (not to mention Windows-only) program. Thus, we have generally moved to using Blender (see next section). The following information is preserved for historical purposes.
* For the correct Mod Tool settings, see [[Mod Tool#Animating|HERE]].
----
For the correct Mod Tool settings, see [[Mod Tool#Animating|HERE]].


Here are some hints for creating animations when there is no rigging available:
Here are some hints for creating animations when there is no rigging available:
Line 723: Line 723:
* When setting keyframes, each body part should have moved. This rule of thumb will give a more natural-looking animation.
* When setting keyframes, each body part should have moved. This rule of thumb will give a more natural-looking animation.
* The first body part to be animated is always the pelvis.
* The first body part to be animated is always the pelvis.
* Watch out for pelvis rotations so that the XYZ rotations don't overlap too much, otherwise you will get into a [[wikipedia:Gimbal_lock|gimbal lock]].
* Watch out for pelvis rotations so that the XYZ rotations don't overlap too much, otherwise you will get into a [[wp:Gimbal_lock|gimbal lock]].


Also see our [http://oni.bungie.org/forum/viewtopic.php?id=1433 OCF thread].
Also see our [http://oni.bungie.org/forum/viewtopic.php?id=1433 OCF thread].


===Blender===
===Blender===
Theoretically possible. Very difficult in practice and we don't have a tutorial on this one.
See the [[Blender]] article for a general tutorial on using the free program to create animations for Oni. It also contains code snippets for automating certain tasks, troubleshooting advice, and links to an IK rig that makes animation much easier.


==Import==
==Import==
Line 754: Line 754:
::36 fields (exactly 36, otherwise it won't compile back into a .oni file), which correspond to areas in 10° intervals around the character as described above.
::36 fields (exactly 36, otherwise it won't compile back into a .oni file), which correspond to areas in 10° intervals around the character as described above.


===Adding extents to an existing animation===
===Using OniSplit to calculate extents===
Let's say that you want to convert a non-attack animation to a damage-dealing animation. Non-attack TRAMs do not have extents information used to notify the AIs about incoming attacks, so how do you generate this information from the animation?
Let's say that you want to convert a non-attack animation to a damage-dealing animation. Non-attack TRAMs do not have extents information used to notify the AIs about incoming attacks, so how do you generate this information from the animation?
:1. Export the animation to XML with a body attached. If you extract using just "-extract:xml dest_folder TRAMsomething.oni", you'll get the 3D animation data inside the XML (namely, the tags Heights, Velocities, Rotations, PositionOffset, and Positions; for an attack animation, you'll also get Attacks and AttackRing, and inside Attacks' elements, each Attack element will have Extents at the end of it).
:1. Export the animation to XML with a body attached. If you extract using just "-extract:xml dest_folder TRAMsomething.oni", you'll get the 3D animation data inside the XML (namely, the tags Heights, Velocities, Rotations, PositionOffset, and Positions; for an attack animation, you'll also get Attacks and AttackRing, and inside Attacks' elements, each Attack element will have Extents at the end of it).
Line 781: Line 781:
The type and order of player input for triggering a given animation type (such as PPK) is hardcoded, and new animation types cannot be created. To assign an animation type to a specific combo attack, you set a corresponding value in <Lookup><Type>.
The type and order of player input for triggering a given animation type (such as PPK) is hardcoded, and new animation types cannot be created. To assign an animation type to a specific combo attack, you set a corresponding value in <Lookup><Type>.


Setting a value in <Link> of '''<DirectAnimations>''' will do two things:
Setting a value in the <Link> of '''<DirectAnimations>''' will do two things:
# It will increase the time for player input, meaning the next animation can be executed more easily. (In vanilla Oni, the Crescent Moon Kick has no link in KONCOMcomb_k_k_kfw and therefore is difficult to use.)
# It will increase the time window for player input, meaning the next animation can be executed more easily. (In vanilla Oni, the Crescent Moon Kick has no link in KONCOMcomb_k_k_kfw and therefore is difficult to use.)
# It disables <Interpolation><End> for the next combo anim.
# It disables <Interpolation><End> for the next combo anim.
# It enables <Pause><Soft> and <Pause><Hard>.
# It enables <Pause><Soft> and <Pause><Hard>.


===Just Frame combos===
==Just Frame input==
For short '''JF combos''' or '''JF anims'''. Created by Delano762, inspired by the game series Tekken. "JF" means that you have to press certain keys (W+K or W+P) at the exact same time, which is more difficult than it might sound. Delano's mod 54000 New Combat Moves for Konoko has a collection of animations which utilize existing animation states differently to create new combos.
Implemented by Delano762, inspired by the game series Tekken, a Just Frame ("JF") move means that you have to press certain keys (W+K or W+P) at the exact same time, which is more difficult than it might sound. Delano's mod [http://mods.oni2.net/node/353 54000 New Combat Moves for Konoko] has a collection of animations which utilize existing animation states differently to create new moves.


Example 1:
Example 1:
Line 800: Line 800:
* old forward punch = TRAMKONCOMpunch_fw <FromState>RunStart
* old forward punch = TRAMKONCOMpunch_fw <FromState>RunStart
** key strokes: w, p
** key strokes: w, p
Note that these animations are referred to as JF moves, not JF combos. The Crescent Moon Kick, as mentioned above, is an unintentional JF combo found in vanilla Oni.


==Throws==
==Throws==