|
|
Line 4: |
Line 4: |
| *<strike>The part about Blender just says that it's theoretically possible to use the program for animations! Link to a modern tutorial please.</strike> | | *<strike>The part about Blender just says that it's theoretically possible to use the program for animations! Link to a modern tutorial please.</strike> |
| *<strike>The part about extents says that Neo will have to make OniSplit calculate them automatically; doesn't it do that now?</strike> | | *<strike>The part about extents says that Neo will have to make OniSplit calculate them automatically; doesn't it do that now?</strike> |
| :: Yes, it does. I compared a pure XML extraction against a round-tripped XML-DAE-extraction: The DAE companioned XML gets extracted with no attack ring and extents, so for this test XML and DAE can converted straight back to ONI file format and re-extracted as pure XML. '''Conclusion: OniSplit creates attack ring and extents from DAE data, IMHO the new attack ring and extents match the original data not perfectly but still pretty good. | | :: Yes, it does. I compared a pure XML extraction against a round-tripped XML-DAE-extraction: The DAE companioned XML gets extracted with no attack ring and extents, so for this test XML and DAE can converted straight back to ONI file format and re-extracted as pure XML. '''Conclusion: OniSplit creates attack ring and extents from DAE data, IMHO the new attack ring and extents match the original data not perfectly but still pretty good. '''--Paradox''' |
| *<strike>The "Excel macro" should be rewritten as stand-alone application. Also, its support for XSI should be dropped in favor of blender.</strike> | | *<strike>The "Excel macro" should be rewritten as stand-alone application. Also, its support for XSI should be dropped in favor of blender.</strike> |
| :: That's the theory. Until OniX isn't going to be ... ahem ... a game changer, there will be probably no demand for this. A similar note was added on the non-talk page. | | :: That's the theory. Until OniX isn't going to be ... ahem ... a game changer, there will be probably no demand for this. A similar note was added on the non-talk page. '''--Paradox''' |
| *This talk page needs an updating too! The material should be incorporated into the article or deleted. | | *This talk page needs an updating too! The material should be incorporated into the article or deleted. |
| --[[User:Iritscen|Iritscen]] ([[User talk:Iritscen|talk]]) 00:12, 17 March 2021 (CET) | | --[[User:Iritscen|Iritscen]] ([[User talk:Iritscen|talk]]) 00:12, 17 March 2021 (CET) |
Line 12: |
Line 12: |
| Additionally to the updates, I'd say the TRAM page should be marked "complete" when ... | | Additionally to the updates, I'd say the TRAM page should be marked "complete" when ... |
| : ... following things are done: | | : ... following things are done: |
| * motion blur (mini tutorial?) | | * <strike>motion blur (mini tutorial?)</strike> |
| * impact effects (mini tutorial?) | | * impact effects (mini tutorial?) |
| * TRAM picking mechanism: it gets easier to this mechanism if we differentiate between pool construction and pool usage | | * TRAM picking mechanism: it gets easier to this mechanism if we differentiate between pool construction and pool usage |
Line 18: |
Line 18: |
| * a simple tutorial to let a modder warm up with animations in Blender (it's okay if it rather resembles "round trip") since this page is about the file type itself (therefore: import and export) | | * a simple tutorial to let a modder warm up with animations in Blender (it's okay if it rather resembles "round trip") since this page is about the file type itself (therefore: import and export) |
| --[[User:Paradox-01|paradox-01]] ([[User talk:Paradox-01|talk]]) 16:53, 15 March 2023 (CET) | | --[[User:Paradox-01|paradox-01]] ([[User talk:Paradox-01|talk]]) 16:53, 15 March 2023 (CET) |
|
| |
| ==Throw pair animation table==
| |
| This is like the player's combat animation table - but for modders.
| |
|
| |
| Source and target anim types (pairs) aren't named in an intuitive pattern: Using "forward" and "backward" in throw names can be ambiguous for newbies. For example Konoko can throw a foe seemingly '''backwards''' by her '''throw forward kick''' (TRAMKONCOMthrow_fw_k). Therefore we should also describe throws how "source" and "target" are facing each other.
| |
|
| |
| The first anim state of source (src) and target (tgt) is the "primary" <FromState>. The others <FromState> entries are located in <Shortcut>.
| |
|
| |
| ToDo: Add explanations for each section. Split table to have header for each section.
| |
|
| |
| {| 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|400px]]
| |
| |-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|400px]]
| |
| |-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|400px]]
| |
| |-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|400px]]
| |
| |-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>'''
| |
|
| |
| RunningLeftDown<br>
| |
| RunningRightDown
| |
| |<!--tgt state--> '''Standing'''
| |
|
| |
| RunningLeftDown<br>
| |
| 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|400px]]
| |
| |-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|400px]]
| |
| <!--
| |
| 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|400px]]
| |
| |-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|400px]]
| |
| |-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|400px]]
| |
| |-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|400px]]
| |
| |-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|400px]]
| |
| |-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'''
| |
|
| |
| RunStart
| |
| |<!--tgt state-->'''Standing'''
| |
|
| |
| Crouch<br>
| |
| Stunned
| |
| |<!--facing setup--> face-to-'''face'''
| |
| |<!--anim type src--> '''ThrowForwardPunch'''
| |
| |<!--anim type tgt--> '''Thrown15'''
| |
| |<!--image--> [[image:KONRIFthrow_fw_p.jpg|400px]]
| |
| |-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'''
| |
|
| |
| RunStart
| |
| |<!--tgt state-->'''Standing'''
| |
|
| |
| Crouch<br>
| |
| Stunned
| |
| |<!--facing setup--> face-to-'''back'''
| |
| |<!--anim type src--> '''ThrowBackwardPunch'''
| |
| |<!--anim type tgt--> '''Thrown16'''
| |
| |<!--image--> [[image:KONRIFthrow_bk_p.jpg|400px]]
| |
| |-style="vertical-align:top;"
| |
| |<!--names--> (never used)
| |
| |<!--key combo-->
| |
| |<!--varient-->
| |
| |<!--src state-->
| |
| |<!--tgt state-->
| |
| |<!--facing setup-->
| |
| |<!--anim type src-->
| |
| |<!--anim type tgt--> Thrown17
| |
| |<!--image-->
| |
| |}
| |
|
| |
| Looks like there was/is support for [[OBD:BINA/OBJC/MELE/MoveList/Throw|running disarms]]. Though unused types for new Thrown''N'' would be needed.
| |
|
| |
| Open questions:
| |
|
| |
| If the never used Thrown type can be applied as type 18 the table looks much more complete. "Restoring" forward tackles (face-to-face, src run + tgt run) can be ommitted as the AI would most often stop movement for actual combat?
| |
|
| |
| All important header data of STRCOMrun_thw_fw_p and STRCOMrun_thw_fw_pl is identical. That means the engine picks the correct TRAM by using an unkown context, possibly this is similar or part of the distiction of "forward" (face-to-face) and "backward" (face-to-back).
| |
| : '''Maybe the algorithm checks always tgt's rotation and relative position to src at the same time but for most cases only tgt's rotation (facing) is relevant.'''
| |
|
| |
| Also, STRCOMrun_thw_fw_p(l) routing to Thrown5 and Thrown6 shows that Thrown anim types might be used however we like. A src-tgt-anim-type-pairing might be simply a ''convention''. Well, someone could check the source code...
| |
|
| |
|
| ==Variants== | | ==Variants== |