Question about creating prop_door_rotating

Started by anthon64, July 25, 2017, 07:42:10 AM

Previous topic - Next topic

anthon64

Hello, first of all, i would like to thank you for having created wall worm !  :D

i would like to know if it's possible to create a prop_door_rotating entity with wallworm with my custom door models, and if its possible, how i can do this step by step ? my door is already modeled as a static prop for the moment.  :)




( Sorry for my english )

wallworm

Yes, it is totally possible.

I've never made one myself but there are other guys on here who have. I'll try to get K@rt to chime in as I know he's done it. Others have too but I cannot remember exactly which members.

K@rt

Yeah. I did make a break door model for which I basically copied the L4D2 door setup/system. In csgo the break fallbacks don't work, but the doors still rotate correctly. Below is a link to the finished complied model I made. If you can hang on until tomorrow I will dig my max scene, .qcs and .smds and throw all that up here so you can take a look and explain what I did - I have to be honest it was such a long time ago I cannot remember the details of how I did it off the top of my head.

https://www.dropbox.com/s/w47px4jcil9ezij/break_door.rar?dl=0

anthon64

Hey ! Thank you for the quick reply  :)

i'll take a look at it ! and yes no worry i can wait :)

thank you again for the taking the time to help me !

K@rt

Np. You're welcome. Can you tell me what game you are making this for? Do you want a l4d2 door with fallbacks and break models? Or is this just for CS:GO where you aren't worrying about breaking, gibs and fallbacks? Either way it isn't all that complicated. To start with make your model the way you normally would, i.e mesh, hull, materials etc. However there is one extra thing you need to add and that is a DoorRootBone, just add a single bone node and call it DoorRootBone and place it on the axis you want the door to rotate around. You'll need to include this in your smd export so your smd has 2 nodes, your model node and the bone node. After that you also need to go into PropData and select Door.Standard with Phys Mode "Auto" and then Override Base... Allow Static and Block LOS all checked. It is possible that this is all you have to do in order to get your model to work as a prop door rotating. When I made mine because I was also adding break models I had to lock the QC in WWMT at this point and add the rest of the info by hand.

My final .qc file is pasted below. You can see it is all pretty standard with the important stuff being in the $keyvalues "prop_data" section. If you are making a non-breakable door then in the door options you can remove the damage1 damage2 etc fallbacks. The only thing I am not sure about is whether the "breakable_count" part will count for anything. This controls the gibs the model gives off in its breakable format when changing between base models... the base model changes for a more damaged one and x number of gibs are spawned to give the impression of bits flying off. The thing is the starting model in l4d2 door doesn't give off a visible gib the first time it changes to a more broken version, it just forms cracks... nonetheless there is still (as you can see here) a break count of 1 and it actually throws off an invisible gib (an untextured cube 8 units square). Its like it had to be put in there for the system to work. Now in GO this may be completely disabled/ignored as the door never tries to break, that said however Source can be weird so you never really know.

Hope this makes sense, i have no idea what level you are at with models etc. which can make explaining things tricky. If there is anything you don't understand here just ask. If you are trying to make a fully breakable door with gibs and fallbacks I will send you my scene file, however if you are trying to make a simple non breakable door looking at that may just confuse things for you as 95% of it you wouldn't require.

$modelname   "gmaps/props_doors/slatted_door.mdl"

//$staticprop

$body slatted_door "slatted_door.smd"

$cdmaterials "models/gmaps/props_doors"

$texturegroup "slatted_door_skins"

   {

   {  "slatdoor1" }
   {  "slatdoor2" }
   {  "slatdoor3" }
   {  "slatdoor_custom1" }
   {  "slatdoor_custom2" }

   }

$hboxset "default"

$surfaceprop "wood"

$contents "solid"

$cbox 0 0 0 0 0 0

$keyvalues {

      "prop_data"
      {
         "base"      "Door.Standard"
         "allowstatic"      "1"
         "breakable_count"   "1"
         "blocklos"      "1"

      }
      "door_options"
      {
         "defaults"
         {
         "open"      "Doors.Wood.FullOpen1"
         "close"      "Doors.Wood.FullClose1"
         "move"      "Doors.Wood.Move1"
         "pound"      "Doors.Wood.Pound1"
         "surfaceprop"   "wood"
         "damage1"    "gmaps\props_doors\slatted_door_dm01"
         "damage2"    "gmaps\props_doors\slatted_door_dm02"
         "damage3"    "gmaps\props_doors\slatted_door_dm03"
         "damage4"    "gmaps\props_doors\slatted_door_dm04"
         }
      }
   }

//$illumposition 27.5 0 55.5

$sequence ref "slatted_door_base_ref" fps 30

$collisionmodel "slatted_door_base_hull.smd" {

   $mass 50.0
   $inertia 1.00
   $damping 0.0
   $rotdamping 0.00

}

$collisiontext {
   "break" { "model" "gmaps/props_doors/props_null.mdl" "health" "100" "fadetime" "10"}
   }

anthon64

Hello, for now I'm just trying to reproduce a simple door, but your method will help me a lot! I think I understood everything, I'm going to experiment all this. And I'll let you know if it ever works or not. But I think there will be no problems. Thank you very much once again, for having taken the time to answer me and to have provided me with such detailed explanations!

K@rt

No worries, you're welcome. Hope it works out. If you get stuck on anything or need any further help, just ask... and of course, don't forget to show off your finished model in the forums!! ;)

https://www.wallworm.net/index.php/board,8.0.html

SMF spam blocked by CleanTalk