OBD:TRAM/raw0x24: Difference between revisions

From OniGalore
Jump to navigation Jump to search
mNo edit summary
(notes from Loser on OBD talk:TRAM and some clarifications)
Line 5: Line 5:




[[image:tram_r07.gif]]
[[Image:Tram_r07.gif]]




Line 17: Line 17:
{{OBDtr| 0x08 | float |C8FFC8| 44 2D 1C 41 | 9.761051  | Z-axis victim adjustment; see below for info
{{OBDtr| 0x08 | float |C8FFC8| 44 2D 1C 41 | 9.761051  | Z-axis victim adjustment; see below for info
Z+ is forward, Z- is backward }}
Z+ is forward, Z- is backward }}
{{OBDtr| 0x0C | float |C8FFFF| DB 0F 49 40 | 3.141592 | angle adjustment; when throw is sucessful, victim is turned around his axis for this angle in order to make throw look good. (3.141 <nowiki>=</nowiki> pi)}}
{{OBDtr| 0x0C | float |C8FFFF| DB 0F 49 40 | 3.141593 | angle adjustment in radians; when throw is successful, victim is turned around his axis by this angle (π <nowiki>=</nowiki> 180°)}}
{{OBDtr| 0x10 | float |FFC8FF| 00 00 40 41 | 12.000000 | throw distance, read below for important notice }}
{{OBDtr| 0x10 | float |FFC8FF| 00 00 40 41 | 12.000000 | distance tolerance; read below for important notice }}
{{OBDtr| 0x14 | int16 |FFC800| 60 00      | 96        | type / aming type; that's the ID (type) for the animation of the target }}
{{OBDtr| 0x14 | int16 |FFC800| 60 00      | 96        | anim type for the animation of the target; types listed [[OBD:StNA|HERE]] }}
|}
|}




----
'''Victim axis adjustment'''
'''Victim axis adjustment:'''
:*When throw is successful, these axis adjustments are applied on victim to move ("teleport") him in corresponding way to set some distance between participants so throw looks good. If victim cannot move in some direction (obstacle), then this direction is ignored.
:*When throw is sucessful, these axis adjustments are applied on victim to move ("teleport") him in corresponding way to set some distance between participants so throw looks good. If victim cannot move in some direction (obstacle), then this direction is ignored.


:*Y-axis victim adjustment weirdness: Curious is that if you "lift" enemy (you set high Y+) enemy is lifted '''as if je jumped''', bounding box is lifted! Usually when executing TRAMs, Y+ just stretches bounding box of character, that is why you cannot throw them over fences. But this one lifts character completely. Immediately after this "lift", victim falls down normally, gravitation is not limited for him. Weird, isn't it?
:*Y-axis surprise: When you lift the enemy with a +Y value, he is lifted '''as if he jumped''' – the bounding box actually lifts! Usually when executing TRAMs, a +Y value just stretches the bounding box of the character from the floor to their current height; that is why you cannot throw enemies over railings. But this field lifts the character completely. After the lift reaches its peak, the victim falls down normally according to gravity.


'''Throw distance'''
'''Distance tolerance'''
:*Angle tolerance (how much can participants face away from perfect line and throw still happens) is hardcoded, it is around 45°
:*Be aware that when setting the throw distance tolerance, you have to make sure it is equal to or greater than the parent TRAC's throw distance for the same throw type (for example, throw_fw_p is in Comguy's TRAC and the Comguy TRAC is inherited by Muro). If you set a lower value in the child TRAC, the parent's throw TRAM will play instead when you are beyond the range of the child's throw but not the parent's throw.
 
:*There is also the matter of angular tolerance how much can the throw participants deviate from perfectly facing each other and the throw still occur. This number is hardcoded to 45°.


:*Beware that if you are setting throw distance, you have to make sure it is same or greater than parent's TRAC's throw distance of the same throw (throw_fw_p for example is in comguy TRAC, and comguy TRAC is inherited by Muro). If you set lower value in child TRAC, you will get bug where parent throw TRAM ocasionally overries child's throw TRAM.
<CENTER>[[OBD:TRAM/raw0x20|shortcut part]] &nbsp;<<&nbsp; '''[[OBD:TRAM|TRAM]] - throw part''' &nbsp;>>&nbsp; [[OBD:TRAM/raw0x28|footstep part]]</CENTER>
<CENTER>[[OBD:TRAM/raw0x20|shortcut part]] &nbsp;<<&nbsp; '''[[OBD:TRAM|TRAM]] - throw part''' &nbsp;>>&nbsp; [[OBD:TRAM/raw0x28|footstep part]]</CENTER>


{{OBD}}
{{OBD}}

Revision as of 22:32, 26 October 2023

shortcut part  <<  TRAM - throw part  >>  footstep part


This part belongs to the 01828-KONCOMthrow_fw_p.TRAM file.


Tram r07.gif


Offset Type Raw Hex Value Description
First element (black outline)
0x00 float 8A 39 2C BF -0.672752 X-axis victim adjustment; see below for info

X+ is left, X- is right

0x04 float 10 39 B4 3F 0.793839 Y-axis victim adjustment; see below for info

Y+ is up, Y- is down

0x08 float 44 2D 1C 41 9.761051 Z-axis victim adjustment; see below for info

Z+ is forward, Z- is backward

0x0C float DB 0F 49 40 3.141593 angle adjustment in radians; when throw is successful, victim is turned around his axis by this angle (π = 180°)
0x10 float 00 00 40 41 12.000000 distance tolerance; read below for important notice
0x14 int16 60 00 96 anim type for the animation of the target; types listed HERE


Victim axis adjustment

  • When throw is successful, these axis adjustments are applied on victim to move ("teleport") him in corresponding way to set some distance between participants so throw looks good. If victim cannot move in some direction (obstacle), then this direction is ignored.
  • Y-axis surprise: When you lift the enemy with a +Y value, he is lifted as if he jumped – the bounding box actually lifts! Usually when executing TRAMs, a +Y value just stretches the bounding box of the character from the floor to their current height; that is why you cannot throw enemies over railings. But this field lifts the character completely. After the lift reaches its peak, the victim falls down normally according to gravity.

Distance tolerance

  • Be aware that when setting the throw distance tolerance, you have to make sure it is equal to or greater than the parent TRAC's throw distance for the same throw type (for example, throw_fw_p is in Comguy's TRAC and the Comguy TRAC is inherited by Muro). If you set a lower value in the child TRAC, the parent's throw TRAM will play instead when you are beyond the range of the child's throw but not the parent's throw.
  • There is also the matter of angular tolerance – how much can the throw participants deviate from perfectly facing each other and the throw still occur. This number is hardcoded to 45°.
shortcut part  <<  TRAM - throw part  >>  footstep part