Hey folks - Blueprint newb, so please explain to me like Im 5 with any answers etc -
Ive got some set dressing vehicles Id like to pose some parts on - turning wheels, opening doors, and other mostly just rotating parts, although I do have some parts aligned or “connected” to the rotating parts that will have to move on multiple axis’ to stay aligned with the rotating parts they are attached to -
This would not be animated, will not have a rig or bones - just using BP nodes to set up basic rotation/transform movement - the goal being simple options/features in the BP world artists can use to pose the parts on the vehicles -
I’m curious what sort of nodes and node set ups I might need or use - also too, if anyone has any links to info/vids/tutorials on the matter, that would be great -
I’m also curious about building a “switch” to chose between posed states - for example - a forklift having a switch to set the forks up or down - instead of a manual rotation/transform control.
So yeah, if anyone had any insights would much appreciate hearing them.
The easiest option is to simply make changes to any instance of an actor you place in the world by clicking on the specific component in the actors details panel (I’m assuming the parts you want to move are separate components to the static part of the car?) and rotating it relative to the body of the car. This is the absolute simplest, most basic, and some would say best solution, as it allows the artist total freedom without having to make any kind of data changes, they just have to understand how an actors hierarchy works.
If you’d prefer you could also connect a bunch of variables to the different components world transform in the construction script if you want it to be run through data like that, useful if it’s information you need to have access to, and has the added bonus that this would be able to do random transforms if you wanted as well.
As far as switches goes, using your forklift and my truck example above you could drive the vertical axis of the forks the same way as I’m driving that wheel which would allow for more precise control (or simply do it by hand like the first example if you don’t need to animate it in game). But a pure “switch” you were asking for would simply be the same but driven by something like a boolean, which would set the height to either 0 if false or 100 if true.
Of course you could look into things like The Variant Manager or PCG but these might be overkill for what you’re after.
This is probably a bit of a higher level breakdown than you were hoping for but without knowing the specifics of your team/resources/scope it’s hard to get right down into the weeds. Of course if you want specific examples, happy to provide.
@Ruffhaus - thank you for this info - Im doing what you showed in the bottom image - setting up basic controls in a BP - in my case using Make Rotator and Set Relative Rotation -
I have a few different scenarios Im trying to set up - wheel rotations and door rotations being one -
Another scenario is Transforms - if I wanted parts to move in a particular direction - I havent gotten there yet - Im assuming there would be similar nodes for Transforms -
Also too - the attachments have collision geo which has proven tricky - meaning, if an accessory is disabled, the collision needs to be removed from the asset in game, and if the accessory is enabled, it would need its collision - Im messing with Set Visibility on the meshes and Set Collision Enabled - but that doesnt seem to be working…
Another thing Im contemplating is having binary switches for things instead of rotation controls - so in the case of a dump truck, with more complicated movement, just having a switch for “Dumpbed UP” and “Dumpbed Down” - any idea how I would assemble a boolean type (I think) switch for that?
Any thoughts on the above - or any general suggestions on the different possible nodes I could use in a BP to move, rotate, pose mechanical machinery would be much appreciated -
Yes so you have setters and getters for “Location”, “Rotation”, and “Scale” and then you also have what Blueprint refers to as “Transform” which is a struct of those 3.
In this example I placed this logic in the blueprints Construction Script, and hooked up the variable bDoorOpen to a select and when the variable is true then the door is open to that rotation. If you also mark any variable as “Instance Editable” it will show up in details panel of the blueprint that you place in the world, allowing you to quickly flick the switch at the instance version when it is placed for simple binary variation.
I’m having a go at setting up some parts/accessory variants/states - swapped on and off via enum switch - each batch of accessory variants has collision - but I am not able to get the collision to appear in game - does this set up look right?
At a rough glance that should be toggling collision/visibility for whatever component is being referenced. When you say you’re not able to get collision to show up in game, does the component actually have its collision responses set up correctly for the channel they are colliding with? As that node will only toggle the collision enabled global response not the individual channel responses.
Unfortunately there’s just not enough information there to diagnose remotely.
I can see you’re using a lot of custom collision responses and presets, while nothing is immediately jumping out at me, this would be the most likely culprit, and where I would start if I was trying to debug it. Maybe try recreating a very small version of this in a clean project without any custom responses and see if you get the same problem?
Try having a look through some videos like this and seeing if there is anything that you are doing in your custom setup that could be causing issues.
Good luck and hopefully it’s just some simple overlooked thing.