Working on a scene where I took CAD data, brought it into 3ds MAX, and exported out as a fbx for use in Unreal. In the scene there are numerous actors that are knobs and switches. I have remodeled the old CAD data to make it game ready then made them into individual blueprint actors. I am attempting to replace the old CAD switches with the new blueprint switches but every time i select “Replace Actor with” the new actor ends up at the 0,0,0 origin of the scene and not at the position of the old CAD data. Am I missing a step? Is it because the mesh for my blueprint was exported from 3ds MAX from the 0,0,0 origin?
From what you’re saying, it sound like you exported them with pivot point at the origin.
When you click on one of them, where is the widget?
You probs should export all your models with the origin of 0,0,0 As it’s best practice. You will probs want to add sockets to attach your various knobs and dials with
When I click on the original asset in scene the widget is at the origin and when I bring in the blueprint the widget is centered on the blueprint asset
Yes, that’s the problem. If the pivot point of the actors is not the same the actor will jump when you try and replace it, because the pivot ( which is considered the ‘place’ for the actor ) has moved.
Unfortunately, you either have to make the pivot points the same or you have to do it by hand.
I must say, pivot point in the center of the actor makes much more sense.
Hi, a handy way of solving pivot issues with replace actors may be by creating a widget and using the get component bounds node which returns an origin at the centre of the bounds of the actor. You could then spawn the new blueprints at these coordinates. The calculated origin will likely be slightly off dependent on whether the previous actors actually have their pivots in the centre or if they are rotated in world space. However, having all your replaced actors in almost the right spot might save a lot of time compared to trying to drag each individual one to the right place from the origin.
Maybe something like this:
Hope that helps!
@anonymous_user_938d31b6 What is the variable you added for and does it matter what variable type you select besides “object”?
I’m trying to create a similar blueprint that replaces static mesh actor instances based on the value for the datasmith user key “definition”
The get (actor) bounds node helped me. It finally worked. If I destroy the old actor will the actor locations get updated when I refresh the datasmith link? or do I need to make those old static mesh actor instance location geometry invisible or something?
You are using a utility widget that is run after your datasmith import.
If you reimport using datasmith, it will regenerate the full hierarchy with all the actors with their new positions. You will have then to run again your utility widget to perform the replacement. So I would say you can delete the old actors as they will be re-imported when you run datasmith.