XML talk:TRAM: Difference between revisions

10,261 bytes removed ,  10 October 2023
marked motion blur as done; removed throw table that was moved to XML:TRAM
(restored talk page)
(marked motion blur as done; removed throw table that was moved to XML:TRAM)
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==