5.

UE5のOn Component Hitについて詳しく解説

ページの作成
テンプレートを更新

ページの作成

親となるページを選択してください。

ページは必ず何かしらの親ページに紐づきます。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球

子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール

親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!

Unreal Engine 5(以下UE5)では、On Component Hitイベントを使用して、特定のコンポーネントが他のオブジェクトと衝突した際の処理を簡単に実装できます。この機能は、ゲームの物理挙動やインタラクションを作り込む際に非常に便利です。

On Component Hitの概要

On Component Hitは、Actorにアタッチされているコンポーネントが何かに衝突したときに呼び出されるイベントです。このイベントは主に物理挙動を持つコンポーネントで使用され、衝突の詳細情報(衝突相手、衝突位置、衝突の力など)を取得できます。

基本的なセットアップ

On Component Hitを使用するためには、以下の手順を実行します。

1. 衝突を検出したいコンポーネントを選択します。

2. コンポーネントのDetailsパネルで「Simulation Generates Hit Events」を有効にします。

3. プロジェクト内のオブジェクトが衝突を認識できるように、Collision Presetsを適切に設定します。

4. イベントを処理するためのスクリプトやBlueprintを追加します。

Blueprintでの使用方法

BlueprintでOn Component Hitを使用する方法を説明します。

1. 対象のコンポーネントを選択した状態で、「イベント」リストからOn Component Hitイベントを追加します。

2. イベントノードが作成されるので、これをトリガーとして後続の処理を組み立てます。

3. イベントの出力ピンには、以下の情報が含まれます:

  • Hit Actor: 衝突した相手のActor
  • Hit Location: 衝突が発生した位置
  • Hit Normal: 衝突面の法線ベクトル

C++での使用方法

C++でOn Component Hitを使用する場合、以下のようなコードを記述します。


#include "YourActor.h"
#include "Components/PrimitiveComponent.h"
#include "GameFramework/Actor.h"

AYourActor::AYourActor()
{
    PrimaryActorTick.bCanEverTick = true;

    YourComponent = CreateDefaultSubobject(TEXT("YourComponent"));
    YourComponent->OnComponentHit.AddDynamic(this, &AYourActor::OnHit);
}

void AYourActor::OnHit(UPrimitiveComponent* HitComp, AActor* OtherActor, UPrimitiveComponent* OtherComp, FVector NormalImpulse, const FHitResult& Hit)
{
    if (OtherActor && (OtherActor != this) && OtherComp)
    {
        UE_LOG(LogTemp, Warning, TEXT("Hit: %s"), *OtherActor->GetName());
    }
}

この例では、OnComponentHitAddDynamicを使用して、衝突イベントが発生した際にOnHit関数が呼び出されるように設定しています。

注意点

On Component Hitを使用する際には、以下の点に注意してください。

  • 物理シミュレーション: 衝突を検出するには、対象のコンポーネントで物理シミュレーションを有効にする必要があります。
  • Collision設定: 衝突検出が正しく動作するように、適切なCollision設定を行ってください。
  • パフォーマンス: 高頻度で発生する衝突イベントは、ゲームのパフォーマンスに影響を与える可能性があります。

まとめ

UE5のOn Component Hitは、ゲーム内での物理的なインタラクションや衝突検出を実現するための強力なツールです。BlueprintやC++を使った柔軟な実装が可能で、適切な設定を行うことで、よりリアルでダイナミックなゲーム体験を提供できます。ぜひプロジェクトで活用してみてください。

ページの作成
テンプレートを更新

ページの作成

親となるページを選択してください。

ページは必ず何かしらの親ページに紐づきます。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球

子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール

親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
同階層のページ
  1. Event BeginPlay
  2. Event ActorBeginOverlap
  3. Event Tick
  4. on component begin overlap
  5. On Component Hit
  6. CameraBoom(Spring Arm)
  7. Get Player Character
  8. Nav Mesh Bounds Volume
  9. AI MoveTo
  10. Pawn
  11. Create Render Target 2D
  12. Take High Res Screenshotノード
  13. Sphere Reflection Capture
  14. Event Tickノード
  15. ウィジェットのキャンバスパネル
  16. DefaultSceneRoot
  17. FloatingPawnMovement
  18. Set World Rotation
  19. Event Any Damage
  20. FloatingPawnMovement
  21. Set World Rotation
  22. VInterp To
  23. Get Socket Transform