ネリスさん備忘録

主にUE4の備忘録を残すよ!

【UE4】すり抜け床実装【簡易版】

需要があるのかわからないけど、誰も記事にしないから書きます。

今回のテーマは「すり抜け床」

下からはすり抜けられるが、上からは乗ることができる床

要するに、スマブラの浮いてる薄い床です。

実装するとこんな感じ↓

 

youtu.be

 

割と簡単に実装できるので、その手順を書いていきます。

 

 

 

  1. すり抜け床用のCollisionChannelを作成する

    [プロジェクト設定]→[コリジョン]→[新規のオブジェクトチャンネル]

    出てきたウィンドウにチャンネル名を設定し、デフォルト応答は[Overlap]か[ignore]に設定します。

    f:id:LunaNelis:20200915025933p:plain

  2. SkeltalMeshにObjectChannelを設定する

    お好みのSkeltalMeshを開き、詳細からコリジョンプリセットをCustomに変更し、追加したオブジェクトチャンネルを[ブロック]に変更します。

    毎回Customにするのが嫌という場合、すり抜け床用のコリジョンプリセットを作成するのもいいでしょう。
    追記:ObjectTypeをすり抜け床のタイプに変更しておきましょう

    f:id:LunaNelis:20200915133720p:plain

  3. キャラクターにすり抜けを行う処理を追加する

    今回はThirdParsonTemplateを使用するので、ThirdParsonCharacterを開きます。

    開いたらイベントグラフでTickイベントを作成します。

    その後、以下のようにノードをつなぎます。

    f:id:LunaNelis:20200915031016p:plain

    処理としては自分の位置から下に150cm下までトレースを飛ばし、トレース応答が[ブロック]になっているものを見つけます。

    そしてその続きはこんな感じ

    f:id:LunaNelis:20200915031305p:plain

    もし自分の足元に手順2で設定した「すり抜け床」があった場合、SetCollisionResponsetoChannelによってすり抜け床を踏めるようにします。

    足元に「すり抜け床」が見つからなかった場合、当たり判定を消し、すり抜ける事ができるようにします。

 

 

 結果、動画のようにすり抜けた上で立つことが可能となります。

今回は簡易版なので、いくつかの細かい事をわざと説明していません。
そのあたりの話は【改良版】を書くことにします。