I’ll summarize my problem here, but I also made a quick youtube build going over the problem here:
https://www.youtube.com/watch?v=1HubCnOMzQw
The video will explain the issue, and what we are trying to achieve a lot better than my wording below.
In our game, the player can design almost any type of piston petrol engine. We have created a series of modular engine pieces, so to design a V6 or a V12. We put a front engine piece, x middle pieces, and an end piece.
As engines have moving parts, e.g. valves, valve springs, camshafts, lobes, rocker arms etc. And the timings of when these components move depends on the engine type and cylinder number for the components. We need someway of setting this information within the blueprint editor.
The crux of the problem is. We have the sub blueprint of a middle piece, containing the moving parts. Then the engine blueprint, containing x copies of the middle piece, placed correctly.
The problem is, unlike the UMG/Widget system, UE Editor can’t derive the types of BP’s placed in BP’s. They are hidden behind a ChildActorComponent. No variables within that BP can be set from the owner BP in the hierachy.
This can be achieved through the graph editor (Get Class Actor → Cast → Get Variable → Set Variable etc). But we have over 60 Engine head types to build. And this is a very cumbersome method. The other method we have tried, and appears to work. Is create our own custom EngineActorComponent, and EngineActor base classes. The EngineActorComponent can then pass through the data, and the BP editor can see the Properties on the EngineActorComponent and set them. This works fine, but is still a cludge.
Is there something I am missing?