19,680
edits
No edit summary |
m (added family to footer template call) |
||
| (11 intermediate revisions by 5 users not shown) | |||
| Line 1: | Line 1: | ||
{{OBD BINA Header|prev=ONIE|type=PAR3|next=SABD|name=3D Particle|onistuff=b_3d}} | {{OBD BINA Header|prev=ONIE|type=PAR3|next=SABD|name=3D Particle|onistuff=b_3d}} | ||
The following example is the raw/ | The following example is the raw/separate file part of '''3RAPenv_bomb_e06.BINA''' (level 0). (Another example: http://ssg.oni2.net/oni_b_3e.htm ) | ||
Particle dialogs: http://ssg.oni2.net/subfold/bluebox/3d-part.htm | Particle dialogs: http://ssg.oni2.net/subfold/bluebox/3d-part.htm | ||
| Line 39: | Line 39: | ||
}} | }} | ||
{{OBDtr| 0x10 | int32 |00FFFF| 00 00 00 02 | 0x02000000 | flags2; used flags (from left to right): | {{OBDtr| 0x10 | int32 |00FFFF| 00 00 00 02 | 0x02000000 | flags2; used flags (from left to right): | ||
:0x'''01''' 00 00 00 - use special tint | :0x'''01''' 00 00 00 - use "special" tint (color is based on the health of the character who owns the particle; see [[ONGS]]) | ||
:0x'''02''' 00 00 00 - don't attract through walls | :0x'''02''' 00 00 00 - don't attract through walls | ||
:0x'''08''' 00 00 00 - expire on cutscene | :0x'''08''' 00 00 00 - expire on cutscene | ||
| Line 52: | Line 52: | ||
:0x00 00 00 '''08''' - vector | :0x00 00 00 '''08''' - vector | ||
:0x00 00 00 '''10''' - lock position to link | :0x00 00 00 '''10''' - lock position to link | ||
:0x00 00 00 '''20''' - contrail | :0x00 00 00 '''20''' - is contrail emitter | ||
:0x00 00 00 '''40''' - lensflare | :0x00 00 00 '''40''' - lensflare | ||
:0x00 00 00 '''80''' - one sided edge fade | :0x00 00 00 '''80''' - one sided edge fade | ||
}} | }} | ||
{{OBDtr| 0x14 | int32 |FF00FF| 00 00 00 00 | 0 | | {{OBDtr| 0x14 | int32 |FF00FF| 00 00 00 00 | 0 | unused\runtine only }} | ||
{{OBDtr| 0x18 | int16 |FF8000| 01 00 | 1 | number of variables }} | {{OBDtr| 0x18 | int16 |FF8000| 01 00 | 1 | number of variables }} | ||
{{OBDtr| 0x1a | int16 |FF8000| 01 00 | 1 | number of events/actions }} | {{OBDtr| 0x1a | int16 |FF8000| 01 00 | 1 | number of events/actions }} | ||
| Line 62: | Line 62: | ||
{{OBDtr| 0x1e | int16 |FF8000| 00 01 | 256 | unknown; always the same }} | {{OBDtr| 0x1e | int16 |FF8000| 00 01 | 256 | unknown; always the same }} | ||
|} | |} | ||
Field '''0x14''': | |||
From empiric experiments I raise a thesis this field has meaning "used physics for this particle". It corresponds with Neo's [[OBOA]] researches ( field 0x18 in [[OBOA]] ): | |||
::0 - no pre-fabricated physics, if you want physics for this particle, create it via PAR3's actions ( see down on this site for info about actions. ) | |||
::1 - unknown, looks like it disables all physics context ( even the PAR3 action-induced one ) | |||
::2 - pre-fabricated physics type 1 - reacts on collisions, ignores gravity. | |||
::3 - unknown, looks like it disables all physics context ( even the PAR3 action-induced one ) - maybe because this is "physics" for [[OBOA]] objects which will have [[OBAN]] animation ? | |||
::4 - pre-fabricated physics type 2 - reacts on collisions, gravity is not ignored. | |||
Judging from this discovery it seems possible that maybe there are more ONI file types which can have this "used physics" field. For example [[DOOR]], unknown field 0x18 ( is 0x 02|00|00|00 -> reacts on collisions, ignores gravity ). Maybe there are more files with this field ? --[[User:Loser|Loser]] 07:32, 16 August 2009 (UTC) | |||
:So just checking: when you set this field, the particles suddenly had collisions\gravity and such? [[User:Gumby|Gumby]] 02:31, 17 August 2009 (UTC) | |||
::Same question as Gumby. For all I know particles do not have "physics", only objects and characters have. As for other uses of this "physics type" thing: highly unlikely. I've said it before and I'll say it again: the physics system in Oni is simplistic. There's nothing that it can do more than it already does. Don't waste your time on it. [[User:Neo|Neo]] | |||
Sprite modes: | Sprite modes: | ||
| Line 275: | Line 289: | ||
{{OBDtr| 0x00 | char[16] |C8FFC8| | "rotate" | name of the variable }} | {{OBDtr| 0x00 | char[16] |C8FFC8| | "rotate" | name of the variable }} | ||
{{OBDtr| 0x10 | int32 |C8FFFF| 02 00 00 00 | 2 | storage type: float }} | {{OBDtr| 0x10 | int32 |C8FFFF| 02 00 00 00 | 2 | storage type: float }} | ||
{{OBDtr| 0x14 | int32 |FFC8FF| 30 00 00 00 | 48 | storaget offset (incremented by the storage type size for every next variable) }} | {{OBDtr| 0x14 | int32 |FFC8FF| 30 00 00 00 | 48 | runtime: storaget offset (incremented by the storage type size for every next variable) }} | ||
{{OBDtrBK|Initial value }} | {{OBDtrBK|Initial value }} | ||
{{OBDtr| 0x18 | int32 |FFFFC8| 04 00 00 00 | 4 | value type: random }} | {{OBDtr| 0x18 | int32 |FFFFC8| 04 00 00 00 | 4 | value type: random }} | ||
| Line 302: | Line 316: | ||
:0x1050 (0x50 10 00 00) - collision orient (storage size: 4) | :0x1050 (0x50 10 00 00) - collision orient (storage size: 4) | ||
:0x1060 (0x60 10 00 00) - boolean (storage size: 4) | :0x1060 (0x60 10 00 00) - boolean (storage size: 4) | ||
:0x1070 (0x70 10 00 00) - ambient sound (storage size: 4) | :0x1070 (0x70 10 00 00) - ambient sound (storage size: 4) (never used) | ||
:0x1080 (0x80 10 00 00) - impulse sound (storage size: 4) | :0x1080 (0x80 10 00 00) - impulse sound (storage size: 4) (never used) | ||
:0x1090 (0x90 10 00 00) - impact modifier (storage size: 4) | :0x1090 (0x90 10 00 00) - impact modifier (storage size: 4) | ||
:0x10A0 (0xA0 10 00 00) - damage type (storage size: 4) | :0x10A0 (0xA0 10 00 00) - damage type (storage size: 4) | ||
| Line 313: | Line 327: | ||
:*5 - blownup | :*5 - blownup | ||
:*6 - pickup | :*6 - pickup | ||
:0x2000 (0x00 20 00 00) - ambient sound | :0x10B0 (0xB0 10 00 00) - direction (storage size: 4) | ||
:0x4000 (0x00 40 00 00) - impulse sound | :0x2000 (0x00 20 00 00) - ambient sound name (storage size: 16) | ||
:0x4000 (0x00 40 00 00) - impulse sound name (storage size: 16) | |||
------- | ------- | ||
| Line 383: | Line 398: | ||
:3 - sphere (inner radius, outer radius) | :3 - sphere (inner radius, outer radius) | ||
:4 - offset (x, y, z) | :4 - offset (x, y, z) | ||
:5 - cylinder ( | :5 - cylinder (height, inner radius, outer radius) | ||
:6 - body-surface (offset radius) | :6 - body-surface (offset radius) | ||
:7 - body-bones (offset radius)}} | :7 - body-bones (offset radius)}} | ||
| Line 423: | Line 438: | ||
{{OBDtr| 0x18 | |FFC8FF| | | not used for random float values }} | {{OBDtr| 0x18 | |FFC8FF| | | not used for random float values }} | ||
|} | |} | ||
;Direction type Inaccurate vs. Cone | |||
:The Inaccurate type was designed for standard ballistic weapons which will have a cone of fire expanding out from the point of origin, therefore it works identically to the Cone type except with an additional factor, "inaccuracy". The "angle" supplied is now a base angle, which is added to by the inaccuracy setting. The "center bias" for Cone and Inaccurate emitters can be positive to pull the dispersion of particles towards the center of the vector, or negative to push them towards the edges of the cone. | |||
:The inaccuracy setting is only used if the originating character is an AI or turret. The AI's or turret's shooting skill is looked up and multiplied by the difficulty setting's weapon inaccuracy multiplier (see [[ONGS]]), then added to the base angle. With the bias taken into account, and some randomization added by the conical dispersion function, this determines the exact trajectory of the bullet coming from the gun. | |||
---- | ---- | ||
---- | ---- | ||
{{OBD BINA Footer|prev=ONIE|type=PAR3|next=SABD|name=3D Particle|onistuff=b_3d}} | {{OBD BINA Footer|prev=ONIE|type=PAR3|next=SABD|name=3D Particle|onistuff=b_3d|family=Level}} | ||
{{OBD}} | |||