アンリアル・エディタを起動して、テストMMDをダブルクリックして開きます。
インポートしたMMDキャラクターの Skeleton をダブルクリックして開きます。
Skeletonが開かれました。
スケルトンツーリーを右クリックして、ソケットを追加を選択します。
ソケットの名前を波動拳にします。
波動拳を選択した状態で移動アイコンをクリックして移動できるようにします。
波動拳のソケットを移動して、胸とおなかのあたりにもっていき、波動拳が発生するポイント
にします。
上から見てこのくらいの位置が良いでしょう。
BP_キャラクターをダブルクリックして開きます。
イベントグラフのタブをクリックして、イベントグラフを出します。
グラフを右クリックして、検索窓を開き、bと入力し、キーボードイベントの B を選択します。
キーボードイベントの B が配置されました。
グラフを右クリックして、検索窓を開き、getsoc と入力し、Get Socket Transform (Mesh)を選択します。
Get Socket Transform (Mesh) が配置されました。
Get Socket Transform (Mesh)の In Socket Name に波動拳と入力します。
これはソケットを指定するノードです。
グラフを右クリックして、検索窓を開き、spawnactorと入力し、クラスからアクタをスポーンしますを選択します。
スポーンアクタが配置されました。これはアクタをマップ上に登場させるノードです。
ClassにBP波動拳を指定します。これでBP波動拳をマップ上に出現させることが可能になります。
ノードを図のように繋ぎます。Bキーを押すとソケット波動拳からBP波動拳が出て来る、というブループリントができました。
さらに、波動拳を飛ばす角度の指定が必要です。
BP波動拳をダブルクリックして開きます。
イベントグラフのタブをクリックして、イベントグラフを開きます。
グラフ上を右クリックして、検索窓を開き、getplay と入力し、Get Player Pawn を選択します。
Get Player Pawn が配置されました。
グラフ上を右クリックして、検索窓を開き、getact と入力し、GetActorRotation を選択します。
GetActorRotation を図のように繋ぎます。
グラフ上を右クリックして、検索窓を開き、rotatev と入力し、RotateVector を選択します。
RotateVector が配置されました。
マイブループリントの変数のワールドセッティングを、ドラッグ&ドロップし、ゲットで配置します。
変数ワールドセッティングのゲットノードが配置されました。
図のように繋ぎます。
マイブループリントの変数の「+」をクリックします。
出てきた変数の目のアイコンをクリックして目を開きます。
詳細パネルの変数名をスピードに、変数の型を Float にして、コンパイルした後に、デフォルト値に 10.0 と入力します。
変数のスピードをドラッグ&ドロップして、ゲットで配置します。
変数のスピードがゲットノードで配置されました。
グラフ上を右クリックして、検索窓を開き、*を入力し、vector*float を選択します。
vector*floatが配置されました。
vector*floatを図のように繋ぎます。
マイブループリントの変数ワールドセッティングをドラッグ&ドロップして、セットで配置します。
変数ワールドセッティングが配置されました。
ワールドセッティングを図のように繋ぎ、コンパイルして完成です。
BP_キャラクターをダブルクリックして開き、SpawnActor ノードにスピードの項目が追加されているのを確認します。
スピードの値が10.0になっていれば正しく作動します。
0だったら10を入力します。
コンパイルしてプレイボタンを押してみましょう。
Bキーを押すと弾が発射され、方向キーでキャラクターを動かすと、キャラクターが向いた方向に弾を打てます。打った弾は5秒後に消えます。
うまく動きましたか?