Simple question, I think . I have an animal from the Monsters pallet that I edited then resized in the first scene of my module using the Ctrl/mousewheel. However, when I respawn that same creature ( by resref) for another scene later it has gone back to its original size.
Is there a way of avoiding this or do I remember folk saying when this was introduced that it didn’t persist in other areas?
When you modify the placed creature, you only work with an instance of the resref. When you spawn in the creature by resref later, it is another another instance unaffected by everything that happened to the first instance.
You could set the scaling factor for your creature via script or flag in the blueprint itself, though. This way it will always spawn in correctly sized.
[quote=“boodah, post:2, topic:2934”
You could set the scaling factor for your creature via script or flag in the blueprint itself, though.
That sounds interesting but I haven’t a clue how to go about it. Is it a script in the OnSpawn?
Yes, one way of doing it would be to add the following to the creatures OnSpawn script:
SetObjectVisualTransform(OBJECT_SELF, OBJECT_VISUAL_TRANSFORM_SCALE, 1.2);
This would make the creature scale to 120% of it’s original size.
I somehow remember they’re also being variables you could add to a blueprint that would scale the creature accordingly, but I can’t find any info about that doing a quick google search atm.
Another and scriptless way of scaling none-dynamic creatures would be to set the appearance to an invisible one and then selecting the correct tail.
For example if you’d wanted to create a puppy, you’d select Invisible_CreatureS_040 as appearance in the “Basic” tab, then switch to the “Appearance” tab and select Dog as Tail. This way you get the dog model scaled to 40% of it’s original size.
Thanks for that. I’ll try both of those.
Just as an afterthought and because I know nothing about these things, when you say I’m working with an instance of the resref does that have anything to do with the “update all instances” feature ?
Yes but not for the ones you create using a script. These will automatically use the most current version of the blueprint as the script only runs in game after any previous edits to the blueprint.
When you place a thing in an area, it uses the current settings defined in the blueprint. You then make changes to the blueprint. These changes don’t appear in the thing that you have placed in the area. Instead it still has the same properties it had when you placed it there. Unless this is what you want, you will need to update the instance(s) by one of the ways the game gives you such as that button.
It’s like Tarot_Redhand said. If you’re familar with the concept of object oriented programming, it’s very similar. The blueprint is the class and every creature (or placeable or item etc.) you place in the toolset or via script is an object (an instance of that class).
If you place an orc from the palette in an area in the toolset and make changes to this particular orc like changing it’s hitpoints or it’s name to Freddy Prince Jr. the next orc you place in the same way will have the stats and attributes from the blueprint in the palette, not the ones from the orc you placed and modified before.
If you don’t have done so before, you could check out the Aurora Toolset Tutorial or The Guide to Building Volume 1 to familiarize yourself with some of the core concepts of creating modules, though I’m not sure they really get into detail regarding the topic at hand.
By the way, I was wrong about the flag thing for scaling. That was a little system I wrote myself for scaling placeables before scaling support was added to the toolset.
Hey, @boodah, total success with that line in the OnSpawn script. Well done. I’m assuming that if the animal transitions into a new area as part of normal gameplay the resizing will persist?
Glad it worked.
Huh, good question. I assume it will persist (mostly because I think the OnSpawn script will get triggered again once a pc enters the new area and “perceives” the animal in question), but to be honest, I can’t tell you for sure and you’d have to test it for yourself.
It will however 100% work with the non-script way of doing it I outlined above.
If the already spawned animal transitions to a new area it will persist because it’s not being destroyed and respawned in that case.