auの日記

プログラミング初心者の日記。(auはハンドルネームです)

UE4でアクタ同士が重ならないようにした

auです。

きのうは、頭からコインが飛び出るように設定しました。

program-shoshinsya.hatenablog.com

頭からでたコインは、それぞれのコリジョンが衝突し、色々な方向に散らばってしまっています。

f:id:program-shoshinsya:20190201144134g:plain

そこで、今回はコイン同士が重ならないように設定していこうと思います!

コインのアクタにコリジョンプリセット与える

コリジョンプリセットについて

まず、コリジョンのオブジェクトタイプは3つあります。ブロック・オーバーラップ・無視です。

  • ブロック: 衝突すると跳ね返る
  • オーバーラップ: 衝突するとイベントが発生する
  • 無視: 衝突すると通過する

アクタには、それぞれコリジョンプリセットという、オブジェクトタイプや、コリジョンの有無、コリジョンが衝突した際の応答(オブジェクト応答)など元々設定されているプリセットが18種あります。

これは、壁や床などコリジョンの設定()が同じものに簡単に割り当てる際に使います。

自分でオブジェクト応答を作る

コイン同士が重ならないようにするために「Pickup」というコリジョンプリセットを作成していきたいと思います。これは、巻物とコインも重なるようにするために巻物にも適応していくものです。

1. ツールバーの設定の「プロジェクト設定」を選択
f:id:program-shoshinsya:20190202124856p:plain

2. エンジンの項目の中にある「コリジョン」を選択
f:id:program-shoshinsya:20190202125315p:plain

3. Presetの中にある「新規」を選択
f:id:program-shoshinsya:20190202125434p:plain

4. 名前を入力し、「Collision Enabled」をCollision Enabledに「Pawn」「Vehicle」をオーバーラップに選択(プレイヤーが触れた際にコインを取得するイベントが発生するため)、「Pickup」を無視するに選択(コイン同士が重ならないため)
f:id:program-shoshinsya:20190202125739p:plain

5. 「NoCollision」「InvisibleWall」「Spectator」も「Pickup」に対して無視にそれぞれ変更します。

6. 「OverlapAll」「Trigger」も「Pickup」に対してオーバーラップにそれぞれ変更します。

これでPickupという、コリジョンプリセットができました。これをコインのアクタに適応していきましょう。

コインのアクタにコリジョンプリセットを適応する

コインのアクタのブループリントを開き、「StaticMeshComponent」を選択し、詳細パネルの「Collision」のコリジョンプリセットを「Pickup」に設定
f:id:program-shoshinsya:20190202130657p:plain


これで準備ができました!

コインを飛ばしてみましょう!

f:id:program-shoshinsya:20190202150135g:plain
今回は重ならずに、綺麗な円になっています!