C++から SpawnActor した、物理骨が動きません

お世話になっております。



C++から ACharacter を下記のように発生させて、物理を設定しているのですが、

物理骨が動作しませんでした。

物理アセットをレベルエディターにより直接レベルに配置した、SkeletalMeshActor は物理骨が揺れているのを確認しました。

物理骨が動作しない原因を教えてください。



よろしくお願いいたします。



 m_BodyActor = GetWorld()->SpawnActor(FVector(100.f, 0, 0.f), FRotator(0.0f, 90.0f, 0.0f));

 USkeletalMesh *SkeletalMesh = LoadObject(NULL, TEXT(“/Game/body_anim6”), NULL, LOAD_None, NULL);

 TArray Components;

 m_BodyActor->GetComponents(Components);

 m_BodySkeletalMeshComponent = Components[0];

 m_BodySkeletalMeshComponent->SetSkeletalMesh(SkeletalMesh);

 m_BodySkeletalMeshComponent->SetRelativeScale3D(FVector(1.f, 1.f, 1.f));

 m_BodySkeletalMeshComponent->SetSimulatePhysics(true);

お世話になっております。
物理挙動を与える場合はPhysicsが有効である必要があります。SpawnするCharacterのCollision設定はどのようになっていますでしょうか?SkeletalMeshのCollisionEnabledで"Query and Physics"か"Physics Only"が設定されていればうまくいくはずで、こちらで確認する限りではうまく動作しました。まずはこちらをご確認下さい。
よろしくお願いします。

249979-collisionpreset.png

お世話になっております。



返信ありがとうございます。



ご指摘通り、

m_BodySkeletalMeshComponent->SetCollisionEnabled(ECollisionEnabled::PhysicsOnly);

を追加したら、物理骨が揺れるようになりました。



よろしくお願いいたします。