header general

Black Obelisk (MD3 model)

  • inkoalawetrust
  • inkoalawetrust's Avatar
  • Moderator
  • Moderator
More
3 years 1 month ago #11 by inkoalawetrust
Replied by inkoalawetrust on topic Black Obelisk (MD3 model)
The BLAOA0 sprite has no sprite offsets, so it doesn't appear properly in the editor. Also IMO the model for the secondary version of the obelisk should be named something more descriptive than BlackObelisk2.md3, like BlackObeliskBaseless.md3. The hitbox for the base of the normal obelisk should also be 12 MU, since that is more accurate to the dimensions of the base.

Also the actor is not Zandronum compatible, for example DontThrust isn't a flag that Zandronum supports so instead you'll have to make the actor unpushable by setting its' mass property to 0x7FFFFFFF (The 32-bit integer limit in hexadecimal.), FloatBobStrength is also not a property in Zandronum, so you'll need to remove it, there is also something that Zandronum doesn't support about the two calls to A_SpawnParticle that the floating obelisk makes, but I'm not sure what it is.

I would also suggest properly indenting the code like this:
Code:
Actor TrunkBlocker1 {     Radius 22 //The actor flag/property block goes one indent in.     Height 268     +Solid     +PuffOnActors     +Shootable     +NoDamage     +NoBlood     +DontThrust     +NotAutoaimed     States     {         Spawn: //State labels go two indents in.             TNT1 A -1 //State sequences go three indents in.             Stop     } }

Also here's how to make the second trunk collision box follow the model, first on the call to A_SpawnItemEx that spawns TrunkBlocker1 you need to use the SXF_SETMASTER flag, which will make the obelisk actor the trunk hitboxes' master, so the hitbox has a reference to its' parent actor.

BLAO A 0 A_SpawnItemEx ("TrunkBlocker1", 0, 0, 20,0,0,0,0,SXF_SETMASTER) 

Then you need to make the collision box repeatedly call A_Warp every tic, so just change the states block of TrunkBlocker 1 to this:
Code:
    States     {         Spawn:             TNT1 A 1 A_Warp (AAPTR_MASTER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)             Loop     }

The A_Warp call will warp the actor to whichever pointer is specified in the first parameter, which in this case is the trunks' MASTER pointer, and it'll warp at its' master with rendering interpolation (So the movement isn't choppy.), and not check to see if it's intersecting with any blocking walls or planes.

That's all I can think of for now.

Please Log in or Create an account to join the conversation.

  • 9Rifleman
  • 9Rifleman's Avatar Topic Author
  • Chaingunner
  • Chaingunner
More
3 years 1 month ago #12 by 9Rifleman
Replied by 9Rifleman on topic Black Obelisk (MD3 model)
- FLOAT flag removed
- reworked the blockers a bit based on inkoalawetrust's suggestion
- DONTTHRUST flag replaced with Mass property
- second model renamed

Regarding the floting obelisk - what would you suggest? Removing it or maybe mark it in comments as only for GZDoom? I guess it can't be made to work in Zandro.

Please Log in or Create an account to join the conversation.

  • inkoalawetrust
  • inkoalawetrust's Avatar
  • Moderator
  • Moderator
More
3 years 1 month ago #13 by inkoalawetrust
Replied by inkoalawetrust on topic Black Obelisk (MD3 model)
You didn't need to remove the Float flag from the floating obelisk, the FloatBobStrength property is the one that Zandronum doesn't support. Also you forgot to add the SXF_SETMASTER flag on the A_SpawnItemEx calls that spawn the collision boxes, which means that they don't warp since they have no master pointer to warp to.

Also using an anonymous function to spawn the two collision boxes for the obelisk makes the resource mega incompatible with Zandronum, at least the FloatBobStrength property and DontThrust flag could be added in a later update like 3.2 when the GZDoom codebase is updated again. But anonymous functions will basically never be supported by Zandronum because they are essentially ZScript, and Zandronum cannot support ZScript.

Please Log in or Create an account to join the conversation.

  • 9Rifleman
  • 9Rifleman's Avatar Topic Author
  • Chaingunner
  • Chaingunner
More
3 years 1 month ago #14 by 9Rifleman
Replied by 9Rifleman on topic Black Obelisk (MD3 model)
- anonymous functions removed
- SXF_SETMASTER added
- added one more blocker actor and updated the other two
- floating obelisk variant removed, but I left a text file with how to make it for GZDoom

Please Log in or Create an account to join the conversation.

  • Gothic
  • Gothic's Avatar
  • Moderator
  • Moderator
More
3 years 1 month ago #15 by Gothic
Replied by Gothic on topic Black Obelisk (MD3 model)

You didn't need to remove the Float flag from the floating obelisk
 
The FLOAT flag is used for flying/floating monsters to track the player's vertical position, which a prop doesn't need, unless it was intended for the obelisk to follow the player.

Please Log in or Create an account to join the conversation.

  • inkoalawetrust
  • inkoalawetrust's Avatar
  • Moderator
  • Moderator
More
3 years 1 month ago #16 by inkoalawetrust
Replied by inkoalawetrust on topic Black Obelisk (MD3 model)
Alright after more seriously trying to get your resource to work on Zandronum, it seems that A_SpawnParticle doesn't even exist in Zandronum, so you'd need to make and repeatedly call an ACS script that calls the equivalent ACS function. I also just can't get the MD3s to actually render in Zandronum, my guess is that it's because Zandronum doesn't support directly naming the materials of different model meshes after the texture to be used for them. It also doesn't support SurfaceSkin apparently, so there's not way to have a model with multiple textures in Zandronum. So to get the model to render you'd have to put all the textures you use in one texture atlas, and by extension redo the UVs on the whole model.

TL;DR you can safely disregard Zandronum compatibility, so you can re-add the floating obelisk, and replace the Mass property with simply using DontThrust again. 

You didn't need to remove the Float flag from the floating obelisk

 
The FLOAT flag is used for flying/floating monsters to track the player's vertical position, which a prop doesn't need, unless it was intended for the obelisk to follow the player.
Oh right I forgot that the Float flag is used to make vertically moving NPCs, not to simply have props float, that's just done with NoGravity and FloatBob.

Please Log in or Create an account to join the conversation.

  • 9Rifleman
  • 9Rifleman's Avatar Topic Author
  • Chaingunner
  • Chaingunner
More
3 years 1 month ago #17 by 9Rifleman
Replied by 9Rifleman on topic Black Obelisk (MD3 model)
Alrighty :)

I've restored the previous version, kept the new blockers in though.

Shame it didn't work out for Zandro in the end, but at least it was a learning experience, so cheers for that :)

Please Log in or Create an account to join the conversation.

  • Gothic
  • Gothic's Avatar
  • Moderator
  • Moderator
More
3 years 1 month ago - 3 years 1 month ago #18 by Gothic
Replied by Gothic on topic Black Obelisk (MD3 model)
There's an error message because BlackObelisk calls for a non existent "TrunkBlocker1" actor.
Last edit: 3 years 1 month ago by Gothic.

Please Log in or Create an account to join the conversation.

  • 9Rifleman
  • 9Rifleman's Avatar Topic Author
  • Chaingunner
  • Chaingunner
More
3 years 1 month ago #19 by 9Rifleman
Replied by 9Rifleman on topic Black Obelisk (MD3 model)
Sorry, missed that bit. Should be fixed now.

Please Log in or Create an account to join the conversation.

  • Gothic
  • Gothic's Avatar
  • Moderator
  • Moderator
More
3 years 1 month ago #20 by Gothic
Replied by Gothic on topic Black Obelisk (MD3 model)

Please Log in or Create an account to join the conversation.