【UE4】無料アセットで簡易TPS作成! Part2
この連載では無料アセットを使って、キャラクターに武器を持たせて弾を発射できるようにしてみたいと思います!
TPS(サードパーソンシューティング)ゲームの基礎部分が出来上がる想定です。
とりあえずPIE上で疑似マルチみたいなもの(ダメージ判定等)が動く状態までを目標にしています。
初めての方は過去の記事も参考にしてください。 ⇒ 記事一覧
■環境
Unreal Engine 4.22.3
■今回の内容
今回は前回作成したキャラクターを左クリックした際に弾が発射されるように処理を作成します!
■弾用ブループリントの作成
新規でアクタークラスのブループリントを作成し、「Bullet」という名前で保存してください。
ダブルクリックでブループリントエディタを開いて「コンポーネントを追加」から「Static Mesh」を追加してください。
さらにDefaultSceneRoot上にドラッグして置き換えてしまいましょう。
詳細パネルの「Static Mesh」で「Shape_Sphere」を設定しましょう。
さらに「コンポーネントを追加」から「Projectile Movement」を追加して、詳細パネルで「Initial Speed」を3000、「Projectile Gravity Scale」を0にしてください。
これによってアクタがスポーン時に初速3000(cm/s)で飛んで行くようになり、重力の影響を0にしたので真っすぐ飛びます。
次はイベントグラフタブを開いて、ダメージを与える処理を実装しましょう。
Hitイベント発火時にダメージを10与えて、弾自身が消滅するシンプルな実装にしたのが以下です。
ダメージは変数「Damage」を作成してデフォルト値で10を設定しています。
とりあえず一旦これでBulletの作成は完了です。
■銃弾を発射する処理を作成
マウスの左クリックで弾が発射されるようにしたいと思います。
「MyTPSCharacter」をブループリントエディタで開いてください。
まずは「Spawn Bullet」というイベントを作成して、弾を発射する処理を作成します。
以下の様にブループリントを組んでください。
手順は以下です。
1. カスタムイベントノードを配置(名前をSpawn Bulletにする)
2. Spawn Actor ノードを配置。クラスを「Bullet」にする。(弾を発射させる)
3. 「Rifle → ・・・ → Make Transform」を配置し、Spawn Transformにつなげる。(発射位置の設定)
さらにこのイベントがマウス左クリック時に呼び出されるように、以下の様に処理を作成しましょう。
ここまでできたらテストプレイし、左クリックをすると弾が発射されることを確認しましょう。
■まとめ
ここまでで最低限のTPSらしい動作はできるようになったかと思います。
なお、Bulletの形状については視覚的に説明がしやすいように大きめのメッシュとしていますが、
実際の弾を使用したい場合には以下のメッシュ等を選択すると良いかと思います!
(実弾のメッシュ)
「FPS_Weapon_Bundle」>「Weapons」>「Meshes」>「Ammunition」>「SM_Shell_762x39」等
次回はマルチプレイを想定したレプリケーション(同期みたいなもの)の設定を行ってみます!
■リンク
ゲーム制作関連のオススメ連載リンク
とっても手軽なゲーム制作体験!
Unityゲーム開発基礎
実際のリリースゲームを題材にしたハンズオンゲーム制作連載
実践unityゲーム開発