Jump to content

Help modifying and creating doors


Crash180

Recommended Posts

I know when I did the collisions for the cabin I started to get carried away thinking everything needed its own collision until I gave it more thought.

I will look at the CK tonight. I don't recall seeing them display like that.

I made a collision like you would for a static item so that may be where my problem is.

I have one more collision question if I'm not breaking posting etiquette. I haven't found a way to create a collision for an item on a flat plain like a sheet of glass or wallpaper.

Link to comment
Share on other sites

There are roughly 2 ways to create a "rigid-body". Which is what you need for Elric to finalize it as a true collision.

Ether you use the 'mesh', which can be a plain. This method works nicely but the collision will be as complex as the mesh. Which at times might be overly complex and you might need to cut the mesh apart, to assign different materials.

Or a 'convex-hull'. The later is the smallest box possible (with the least amount of vertices) encompassing the entire mesh. This too will work with a plain, but it might gain some small thickness. This doesn't work well with inward curves and holes. They get filled up.

 

Both ways are more or less supported, somewhat, by nifskope.

You should be able to set the material and type for the collision there as well. As long as you have the 'raw' data (with a visible rigid-body "collision" in Nifskope / pre-elric)

 

Link to comment
Share on other sites

List of possible materials:

Spoiler

Generic
NullMaterial
ActorArmored
ActorArmoredCrab
ActorGeneric
ActorGhost
ActorGlowing
ActorInsect
ActorInsectSmall
ActorMetal
ActorMetalArmoredPower
ActorMetalLarge
ActorMetalSmall
ActorSkeleton
ActorSkin
ActorSkinLarge
ActorSkinSmall
ArmorHeavy
ArmorLight
Arrow
Axe1Hand
Basket
Book
Bottle
BottleSmall
Brick
Carpet
CeramicMedium
Cloth
ClothCushion
Coin
Concrete
ConcreteStairs
DLC03MaterialMetalBearTrap
DLC03MaterialVRFloor
DLC04_Material_ArcadeSledBall_Ball
DLC04_Material_ArcadeSledBall_Track
DLC04_Material_RubberBasketBall
Dirt
DirtStairs
Glass
GlassStairs
Grass
GrassStairs
Gravel
Ice
Insect
Insect Wing
InsectFloor
Meat
Metal
MetalBarrel
MetalBarrelTrashCan
MetalBarrelTrashCanOffice
MetalHeavy
MetalHollow
MetalLight
MetalSolid
MetalStairs
Mud
Organic
OrganicLarge
OtherParent
Paper
Plastic
PotsPans
Sand
Sandbag
ShieldHeavy
ShieldLight
Skin
Snow
SnowStairs
Stone
StoneAsStairs
StoneBoulderLarge
StoneBoulderMedium
StoneBoulderSmall
StoneBroken
StoneBrokenStairs
StoneHeavy
StoneStairs
WARD
Water
WaterPuddle
Weapon
WeaponBlade2Hand
WeaponBlockBlunt
WeaponBlunt1Hand
WeaponBlunt2Hand
WeaponBowsStaves
Web
Wood
WoodAsStairs
WoodBarrel
WoodHeavy
WoodLight
WoodStairs
MaterialActorSynthGen1
MaterialBaseball
MaterialBodyBone
MaterialCeramicCoffeeMug
MaterialClipboard
MaterialGroundDirtLeaves
MaterialGroundGrassBush
MaterialGroundMetalA
MaterialGroundTileVinyl
MaterialGroundTileVinylSanctuaryHills
MaterialMetalAuto
MaterialMetalBucket
MaterialMetalCanTin
MaterialMetalChain
MaterialMetalChairFolding
MaterialMetalGasLine
MaterialMetalGateVault
MaterialMetalLunchbox
MaterialMetalShoppingCart
MaterialMetalSign
MaterialMetalStairs
MaterialMetalTray
MaterialMetalVertibirdChassisLarge
MaterialMetalVertibirdChassisSmall
MaterialMetalWeight
MaterialOtherBone
MaterialPaperBoxCardboard
MaterialPaperBoxSmall
MaterialPaperMagazine
MaterialPlasticBin
MaterialPlasticBowlingBall
MaterialPlasticLarge
MaterialPlasticTrafficCone
MaterialRubberBall
MaterialRubberTire
MaterialStoneSubwayPillarLarge
MaterialSubwayGate
MaterialWeaponBlockBladeMedium
MaterialWeaponBlockBladeSmall
MaterialWeaponCasing
MaterialWeaponCasingMinigun
MaterialWeaponCasingPistol
MaterialWeaponCasingRifle
MaterialWeaponCasingShotgun
MaterialWeaponMetalBlade1Hand
MaterialWeaponMetalBlade1HandSmall
MaterialWeaponMetalGrenade
MaterialWeaponMetalMine
MaterialWeaponPistol
MaterialWeaponRifle
MaterialWeaponRifleLarge
MaterialWoodBoard
MaterialWoodBroom
MaterialWoodCrate
Material_Debug

(not all seem to work as expected)

For a list of possible types and short explanation: https://geckwiki.com/index.php/Collision_layer

Don't take anything there as absolute truth either. They are wrong about the water for example (but you need to do a bit more as just assign the type)

 

 

Link to comment
Share on other sites

I have watched both of his tutorials which helped me out a lot. When I tried the convex-hull method on a wall it produced 0 hulls and normals. It seemed to need another dimension before making the collision. I think I did the other method as well but I will check to make sure. Looks like I have plenty to work on now.

Thank you again.

Link to comment
Share on other sites

Here is an example.  I added a double cylinder deadbolt to the model and a round plate under the door knobs.  The hinges and the door knob are from the PaintedWoodDoorWin01.nif.  I also separated the glass out.  For the collision, I went with a box that encompassed the wooden door.  Here a nifskope screenshot of the unprocessed nif. 

 

 

66500-1741382731-1013791633.png

Link to comment
Share on other sites

Just did the work for my new vault door (a smaller version of the V111 doors) to go with my V33 pieces, amongst others.

 

& I noticed ones more what I had forgotten: The vanilla pieces are way more complex as needed.

They add each and every object to the object palette and stuff, which is an overkill.

 

I have multiple meshes, like the original, but those are inside NiNodes. 1 for the upper part, 1 for the lower part & 1 for each "floorslat".

Those are the ones I move/rotate. Everything inside the NiNode will move along. Whether mentioned with the object palette or not.

Doing it like that makes it easy to replace the mesh(es) without the need to edit anything to create another door (with the same sequence)

 

So, it looks like this:

3 NiControllerManager

 - 4 NiMultiTargetTransformController

 - - 0 NiNode RVP_V33Door01 [thats the "Target")

 - - 11 NiNode DoorLower [Extra Target 1]

 - - 29 NiNode DoorUpper [Extra Target 2]

 - - 36 NiNode floorslat01 [Extra Target 3]

 - - 40 NiNode floorslat02 [Extra Target 4]

 - 5 NiControllerSequence Open [4 controlled blocks. DoorLower, DoorUpper, floorslat01, floorslat02]

 - - 6 NiTextKeyExtraData

 - - - There are 3 text keys in this case: start (at 0.00), Sound: DRSVaultDoorVerticalOpen (at 0.16), end (at 1.8)

 - - 4 NiMultiTargetTransformController (the controller for the sequence)

 - - - 3 NiControllerManager (Manager for the sequence)

 - - 4x NiTransformInterpolator

 - - - NiTransformData [this one contains the Translations keys (LINEAR_KEY) setting each position in time, or the XYZ_ROTATION_KEY)

Same for sequence Close

 - 16 NiDefaultAVObjectPalette

 - - 4x Objs [the 4 NiNodes: DoorLower, DoorUpper, floorslat01, floorslat02]

 

As you can see, there are only NiNodes mentioned here. No BSTriShape's. So, I can put whatever shape I want inside those 4 NiNodes and they will move. (just make sure any collision data is an animated-static)

 

edit:

A quirk from Nifskope I guess, but after entering the number of 'controlled blocks' you need to hit "save". Before you can add those blocks to the list.

Link to comment
Share on other sites

I believe I understand most of the door structure now but I'm not sure about the NiMultTargetTransformController and NiDefaultObjectPalette.

Is there a way to change the direction or side of the swing animation within Nifskope?

Link to comment
Share on other sites

On 3/15/2025 at 9:46 PM, Crash180 said:

I believe I understand most of the door structure now but I'm not sure about the NiMultTargetTransformController and NiDefaultObjectPalette.

Is there a way to change the direction or side of the swing animation within Nifskope?

 

Yes. You can rotate & move anything in any direction. When rotating objects its usually best to have the axis at 0,0,0

For example: My wide door model has a moving handle on both sides. The original center point of those is at 0,0,0. This makes rotating them easy.

The shape was also moved to the position where it should be along the x,y,z axis.

When animating, I only need to rotate the object while it stays in the right position that way.

Its the interpolators that do the trick.

 

52537461-1742240909.png

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...