Cannot edit subcomponent in Blueprint Editor

Hello,

I am trying to create a composite scene component, i.e. USceneComponent which contains another USceneComponent (UStaticMeshComponent). During runtime everything seems working fine. But unfortunately I cannot edit this sub component in Blueprint Editor. Here are a couple of screenshots so you would understand what I am talkin about:

50118-untitled3.png

Here is the code. As you see UHUDComponent contains UStaticMeshComponent inside.
This is how blueprint editor looks like:

On the left in the component tree pane you can see that the root component of the actor which is ShipMeshComponent contains HUDComponent, which itself contains Mesh1. When I click on Mesh1 its details pane is empty - I cannot edit it (move, rotate, etc.) But at the same time it is on the scene (It is highlighted inside the UFO mesh. It’s a ball).

Now if I click on HUDComponent and try to edit Mesh1 from there:

Nothing happens. On this picture I set the X Transform to 200 but it did not do anything.

What could be the problem?

Thanks.

I moved to UE 4.8.2 and tried to test the issue again - I changed X location of the subcomponent and Unreal BLueprint Editor crashed right away. Here is the message:

MachineId:DD147B6D4BF10DA828D3BCA15312FE2A
EpicAccountId:412bf6c56b874701a4e16719dc9678c1

Unknown exception - code 00000001 (first/second chance not available)

"Assertion failed: Obj [File:D:\BuildFarm\buildmachine_++depot+UE4-Releases+4.8\Engine\Source\Editor\UnrealEd\Classes//Editor//Transactor.h] [Line: 158] 
"

UE4Editor_Core!FDebug::AssertFailed() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\core\private\misc\outputdevice.cpp:355]
UE4Editor_UnrealEd!FTransaction::FObjectRecord::FPersistentObjectRef::operator->() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\editor\unrealed\classes\editor\transactor.h:159]
UE4Editor_UnrealEd!FTransaction::FObjectRecord::FObjectRecord() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\editor\unrealed\private\editortransaction.cpp:32]
UE4Editor_UnrealEd!FTransaction::SaveObject() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\editor\unrealed\private\editortransaction.cpp:241]
UE4Editor_CoreUObject!SaveToTransactionBuffer() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1723]
UE4Editor_CoreUObject!UObject::Modify() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\coreuobject\private\uobject\obj.cpp:830]
UE4Editor_Engine!UActorComponent::PreEditChange() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\engine\private\components\actorcomponent.cpp:445]
UE4Editor_DetailCustomizations!FComponentTransformDetails::OnSetLocation() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\editor\detailcustomizations\private\componenttransformdetails.cpp:1054]

UPDATE:
Yet another update. I found added it via code didn’t allow me to save ALL subcomponent variables. So screw it, I’ll just add it via blueprints.


I used to have this problem in 4.11 and below. I wanted to give it another shot for my Rift game and perhaps debug it. I find it’s now working in 4.12.3. I’m glad this is now working, as I like this composition workflow and seems like such a natural fit.

My Component code:

UCLASS( ClassGroup=(Custom), meta=(BlueprintSpawnableComponent) )
class POWER_API UPowerHands : public USceneComponent
{
	GENERATED_BODY()

public:	
	UPowerHands();
	virtual void BeginPlay() override;	
	virtual void TickComponent( float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction ) override;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = POWER)
	class UMotionControllerComponent* LeftHandMotionController;
	
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = POWER)
	class USceneComponent* LeftHandSceneComponent; //fine tune pivot point if needed

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = POWER)
	class USkeletalMeshComponent* LeftHandMeshComponent;
	

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = POWER)
	class UMotionControllerComponent* RightHandMotionController;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = POWER)
	class USceneComponent* RightHandSceneComponent; //fine tune pivot point if needed

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = POWER)
	class USkeletalMeshComponent* RightHandMeshComponent;

};

I then add my new Component.

	PowerHands = CreateDefaultSubobject<UPowerHands>(TEXT("POWER_PowerHands"));
	PowerHands->SetupAttachment(GetCapsuleComponent());

Note: You can only edit by clicking the root component. PowerHands in my case.