お世話になっております。
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"が設定されていればうまくいくはずで、こちらで確認する限りではうまく動作しました。まずはこちらをご確認下さい。
よろしくお願いします。
お世話になっております。
返信ありがとうございます。
ご指摘通り、
m_BodySkeletalMeshComponent->SetCollisionEnabled(ECollisionEnabled::PhysicsOnly);
を追加したら、物理骨が揺れるようになりました。
よろしくお願いいたします。