Howdy all,
I was somewhat horrified to find that every single one of the nice placeable beds that I’ve accumulated from various sources appears to be non-walkable! This effectively renders them useless except for cosmetic purposes.
The only beds I can find that are walkable are built into terrain tiles, and one placeable which is built into a 10x10 plane!
Does anyone know where I can find a “proper” walkable bed placeable that can be used anywhere?
I know I can use an invisible object and a “sitting” OnUsed script, but the outcome leaves a LOT to be desired, and is useless when combined with my Custom 10 “sleeping on side” animation.
The only thing placeable walkmeshes can do is block movement and in some cases sight.
Placing (N)PCs on bed placeables can be done by scripting. And if a PC glides onto a bed from the side it might look strange, but not stranger than the PC walking on the bed before lying down.
As Zwerkules hinted, you can make any plc bed or other placeable walkable, if you lower it on the ground. The problem is that the placeable walkmesh is deactivated starting at maybe -0.10 or lower. As a result you need a placeable with enough height to fake something that looks like a low bed. Adding some scripting, you could use an invisible placeable to block the bed place, and destroy the invis. before going to bed, and recreate it after the PC is awake and standing.
Then, why not use the bed without or with a modified (use-nodes only) pwk? The “running into the placeable” could be prevented with a trigger, which pushes the PC back. The “lay down” still has to be done via script.
The are also animations out there for sleeping on a bed that are made so that you stand beside them and use it. I am not sure if they are freely available however.
Having been through the hundreds of scripts I’ve saved over the years, the only ones that were relevant (including David Gaider’s FAQ example) are for use with sleeping on “a placeable object bedroll or on the floor”.
Anyone have a better one? Or is there a function that can set the sleeper’s height to the Z-level of the bed’s top plane?
I use NWN 1.69, so I guess that this very handy function is off-limits to me?
I use custom a_ba (etc) models that includes Vaei’s “sleeping on side” animation, and while this works nicely on walkable tileset beds and the ground, when it’s called from an OnUsed script of an invisible object set on an ordinary placeable bed, the PC/NPC user drops to ground level.
So (sorry to reiterate!) is there a way to make the user adopt the same height as the invisible object?
Apologies for banging on about this - I suppose I’m just surprised that there are so many lovely bed placeables out there that can’t be used in the way I want…
I think there is no scripting solution to this problem (with NWN 1.69). Maybe you can use a custom invisible walking placeable superposed to the bed (Black Rider made one, but you will need one with the right height and it needs a specific location) or redo a custom sleeping animation leveled to bed height.
@Mmat
Trigger exclusion is a better way of doing it
Yes. Modify the animation so that the “sleeping on side” part ends on a non 0-z as appropriate for the bed heights you are using. This … is a little above what I’m personally capable of, but I know it’s possible.