キー入力で物体を出現させる

提供: socialakiba wiki
移動: 案内検索

スポーンさせるアクターのブループリントを作る

Ue4spawnactor001.png

unreal では、シーンに配置する物体のことをアクター(actor)という。

アクターをシーンに出現させることをスポーン(spawn)という。

シーンにアクターをスポーンさせるにはそのアクターのクラスが必要。 クラスを作るということはブループリントを書くということ。

まず、丸い玉のブループリントクラスを作る。

左下のコンテンツブラウザの新規追加でブループリントクラス。

Ue4spawnactor002.png

親クラスは actor を選ぶ。

Ue4spawnactor003.png

名前は適当に ball とかつける。

このアイコンをダブルクリックする。

Ue4spawnactor004.png

真ん中に見える白い玉は DefaultSceneRoot というもので、エディタの中だけで表示されるもの。 いじることはできない。 とりあえず無視すればよい。

Ue4spawnactor005.png

左上のコンポーネントを追加で、球を配置する。

Ue4spawnactor006.png

大きさとかマテリアルを適当にいじる。

Physics の simulate physics にチェックを入れると重力に引かれて落ちるようになる(unityでいうところのrigidbodyになる)。

ブレイヤーのブループリントにキー入力を仕込む

Ue4spawnactor010.png

左上のアウトライナの中に ThirdPersonCharacter とあるのが、プレイヤーを操作するブループリント。これをダブルクリックして開く。

Ue4spawnactor011.png

適当に空いているところで右クリックしてメニューを出す。

インプット → キーボードイベント。

Ue4spawnactor012.png

とりあえずテンキーの0を押したときにアクターをスポーンさせたいので、Num0 を選ぶ。

実行時出力が Pressed (キーを押したとき) と Released (キーを話したとき) の2つがあるが、 とりあえず Pressed だけ使う。 ヒモを伸ばして右クリックして spawnactor で検索し、「クラスからアクタをスポーンします」を選ぶ。

日本語と英語がごちゃまぜになっているが気にしない。

Ue4spawnactor013.png

スポーンアクタ NONE となっているがこれでは何も出現しない。

Ue4spawnactor007.png

クラスを検索してさきほど作った ball クラスを選ぶ。

Ue4spawnactor008.png

ball をスポーンさせる場所は transform 入力に入れる。

空いているところで右クリックして get player character を選び、 さらに get actor transform につないで、それを spawn actor ball の transform につなげる。

最後にコンパイルする。

Ue4spawnactor009.png

プレイしてみる。

ボールをプレイヤーの頭上に出現させる

Ue4spawnactor014.png

get player character から get actor location と get actor up vector を取り出す。

unreal は長さの単位が 1cm なので、単位ベクトルの長さも 1cm しかない。 そこで、右クリックして出したメニューからベクター → vector * float を選んで、up vector を1000倍して、 それを actor location に足すと、プレイヤーの頭上 10m くらいになる。 これを spawnactor ball の transform に入れてやる。 vector を transform に変換するノードが自動的に追加される。

最後にコンパイル。

Ue4spawnactor015.png

動作確認。

ボールに火を付けて前に飛ばす

Ue4spawnactor017.png

プレイヤーの前方 20cm にボールを出現させる。

ボールを前方に飛ばすには Add Impulse を使う。 インパルスの大きさと方向は、GetActorForwardVector を適当に長くして使う。

Ue4spawnactor018.png

ボールに火を付けるには Particle System をボールの子にする。

Ue4spawnactor019.png

Particle に Fire を選ぶ。

Ue4spawnactor020.png

動作確認。