ブループリント クイックショット② ブループリントによるピックアップアイテム

ビデオの内容紹介 
ゲームに出てくるピックアップアイテム (落ちているアイテム) をブループリントで作成します。2 種類作ります。

原題 Unreal Engine 4 Blueprint QuickShot – 2 – Blueprint Pickup

作るもの① (0:06~)
キャラクターが触れると (コリジョンすると) 爆発して破壊されるピックアップアイテムを作ります。

ブループリント完成図①

20

スロー
コンテンツ ブラウザで Props フォルダをクリック → SM_Statue (ガラスの像) を右クリック → Create Blueprint Using… (これを使ってブループリントを作成する) をクリック

21

名前を付けて OK をクリック (Pickup という名前を付けています)。

22

ブループリントエディタの Component モードで SM_Statue を選択状態にする → Details パネルで Collision (コリジョン) セクションの Collision Presets 欄で Overlap All (あらゆるアクタとオーバーラップする) を選択

23

このあとは、ブループリントエディタを Graph モードにして、完成図①のようにグラフを組んでいきます。最後に、コンテンツブラウザで Blueprint フォルダをクリックして、今作り終わったブループリントの Pickup をレベルにドラッグアンドドロップします。

ブループリントの意味
OnComponentBeginOverlap (StaticMesh1) は、StaticMesh1 (つまりガラスの像) と何かがオーバーラップすると (コリジョンすると)、その実行ピン (白いピン) につながるノードを実行するイベントノードです。

Spawn Emitter at Location (指定した位置にエミッタをスポーンさせる) 関数は、その名のとおりです。スポーンとは出現させるという意味です。エミッタは、パーティクル (粒子状のもの) を発生させるものです。なお、Emitter Template のドロップダウンメニューから P_Explosion (爆発) を選んでいます。これによって、爆発のエフェクトが得られます。

Get Actor Location は、アクタの位置を取得する関数です。Target (対象) が self になっているので、このブループリントの主であるガラスの像が対象となります。つまりガラスの像の位置を取得しています。そしてその位置を Spawn Emitter at Location に供給しています。

Spawn Emitter at Location には Destroy Actor (アクタを破壊する) がつながっているので、爆発のエフェクトが発生すると、すぐにアクタが破壊されます。なお、ここでも Target が self になっているので、このブループリントの主であるガラスの像が破壊されることになります。

プレイ結果
24

25

作るもの② (2:00~)
先ほど作った爆発する像を元にして、それに触れると、爆発した上にキャラクターの走る速度が上昇するピックアップを作ります。

ブループリント完成図②
26

注意点
① ビデオでは Cast To PlayerCharacter_C を使用していますが、本記事では Cast To Character を使っています。理由は、Cast To PlayerCharacter_C が見つからないためです。この問題は、現在調査中のようです (AnswerHub「Cast PlayerCharacter non existent」 )。

②先ほどのブループリントに、完成図②にあるように、ノードをいくつか追加していますが、Cast to Character ノードを出すには、OnComponentBeginOverlap ノードの Other Actor ピンからワイヤを延ばして、検索欄に cast などと入れて探します。

③右上の SET の Max Walk Speed を 6000 にセットすると、かなり速く走るようになります。逆に 100 などにすると、ゆっくり歩くのが最大速度になります。

ブループリントの意味
Cast To Character (キャラクターにキャストする) というノードは、このブループリント (ガラスの像のブループリント) にはないアクタ (この場合、キャラクター) のための変数や関数を呼び出して使用する時に使うものです (OnComponentBeginOverlap ノードの Other Actor は「別のアクタ」となっていますが、ガラスの像以外のアクタを関わらせるものです)。

As Character ピンから接続されている Character Movement という変数は、ガラスの像の変数ではなく、キャラクターの変数です (このように、Cast To Character を使うことによって、ガラスの像以外のアクタの変数が使えています)。この変数が Target となって、Max Walk Speed (最大歩行速度) をセットしています (Character Movement というオブジェクト変数から Max Walk Speed というプロパティにアクセスできます)。

大まかな流れは、キャラクターがガラスの像に触れると、OnComponentBeginOverlap によって、まず Spawn Emitter at Location が発動して爆発のエフェクトが生じ、すぐに Cast To Character が起動することによって、ガラスの像以外のアクタを制御できるようになります。

今回はここまでです。お疲れ様でした。


About なつのや

アンリアル・エンジン 4 を基礎から勉強するためのサイト「UE4 の学び部屋」を開いています。どうぞよろしくお願いいたします。
ブループリント

コメントを残す

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>