風を起こして物を飛ばそう!

今回は

 

風を巻き起こして

物を吹き飛ばす方法!

 

を紹介します!

 

まず、BPインターフェースを作成します。

 

~BPインターフェース~

「MyInterface」という名前にしました。

f:id:Free_Gamer:20190702230051p:plain

「AddImpulseActorBPI」という名のインターフェースを作成。

物を吹き飛ばすイベントとして扱います。

f:id:Free_Gamer:20190702230101p:plain

f:id:Free_Gamer:20190702230119p:plain

 

~BP_Wind~

f:id:Free_Gamer:20190702230720p:plain

コンポーネント

f:id:Free_Gamer:20190702224759p:plain

WindArea

f:id:Free_Gamer:20190702224958p:plain

WindDirection

f:id:Free_Gamer:20190702225019p:plain

f:id:Free_Gamer:20190702224834p:plain

 

変数

f:id:Free_Gamer:20190702225540p:plain

WindLength・・・デフォルト値「1000」

WindArea・・・Boxコリジョンコンポーネント

WindDirection・・・Arrowコンポーネント

 

イベントグラフ

f:id:Free_Gamer:20190702225757p:plain

 

WindAreaコンポーネントの詳細パネルで

「HiddenInGame」のチェックを外しましょう。

WindAreaの範囲を可視化する為です。

f:id:Free_Gamer:20190702231546p:plain

 

 

~吹き飛ばすアクターの作成~

「BP_SimulatePhysicsObject」という名前にしました。

f:id:Free_Gamer:20190702230247p:plain

コンポーネント

f:id:Free_Gamer:20190702231018p:plain

f:id:Free_Gamer:20190702231027p:plain

 

※作成したインターフェースを追加するのを忘れずに。

f:id:Free_Gamer:20190702231258p:plain

 

コンストラクションスクリプト

SimulatePhysicsをONにします。

f:id:Free_Gamer:20190702233025p:plain

 

イベントグラフ

BP_Windから受け取った値(Impulse)分、吹き飛ばすアクターに衝撃を与えます。

f:id:Free_Gamer:20190702230459p:plain

 

 

~BP_Windをレベルに配置~

f:id:Free_Gamer:20190702231631p:plain

これだと範囲が小さすぎるので

スケールを

 

「X:12 Y:3.5 Z:3.5」

 

にしましょう。

f:id:Free_Gamer:20190702231848p:plain

Arrowコンポーネントが引き伸ばされてちょっと目障りですね。

なので・・・

 

アクターの大きさに影響されずに

Arrowコンポーネントだけ常にデフォルトのサイズ

なるようにしましょう。

 

BP_Windを開き、

ConstructionScriptに以下の処理を組みます。

f:id:Free_Gamer:20190702232331p:plain

X,Y,Z「1」に

自身のアクターのサイズ(X,Y,Z)を割ることで

Arrowコンポーネントのサイズを

常にデフォルトのサイズに設定するようにしています。

 

コンパイルし、確認すると・・・

f:id:Free_Gamer:20190702232741p:plain

Arrowコンポーネントのサイズがアクターのサイズに影響されず

デフォルトのままを保ってるのが分かります。

 

BEFOR

f:id:Free_Gamer:20190702232842p:plain

AFTER

f:id:Free_Gamer:20190702232638p:plain

一目瞭然ですね。

 

~吹き飛ばすアクターの配置~

作成した「BP_SimulatePhysicsObject」の子BPを作成します。

f:id:Free_Gamer:20190702233248p:plain

 

とりあえず

2つの子BPを作成しましょう。

f:id:Free_Gamer:20190702233710p:plain

Chair(椅子)とTable(机)です。

 

StaticMeshコンポーネントにメッシュを追加しましょう。

f:id:Free_Gamer:20190703000356p:plain

 

Chair

f:id:Free_Gamer:20190702234219p:plain

Table

f:id:Free_Gamer:20190702234235p:plain

 

レベルに配置します。

f:id:Free_Gamer:20190702234324p:plain

当然、Boxコリジョンの中に入れるように配置しましょう。

 

いざ、プレイ!

youtu.be

 

よく吹き飛んでいますね!^^

「BP_Wind」で編集可能にしてある

「WindLength」の値を更に大きくすれば

もっと勢いよく吹き飛んでくれます。

 

それではまた!^^ノシ