ゲームが作れるようになるまでがんばる日記

ゲーム制作のことを中心にゲームに関することを書いています

ダメージ処理

エネミーから Apply Damage でプレイヤーにダメージを与え、プレイヤー側では Event AnyDamage でダメージを受けたときの処理を実装した。
ところが、プレイヤー側のイベントが来ない。コリジョンの設定が間違っているかと On Component Begin Overlap にブレークポイントを追加してみたら、ちゃんと反応していた。
ちょっと戸惑ったが結局、原因は Apply Damage の Base Damage の値が0だったから。ダメージ0でもイベントは発行されると思っていた。たしかにダメージ0ならイベントを発行する必要ないわけで。
あるアクタから他のアクタへ動作を指示する方法で、イベントディスパッチャーを使う場合と、関数を使う場合の両方を試してみた。このあたりの仕組でどう使い分けるべきなのか、未だによく分かっていない。

エネミー追加

エネミーのアクタを作成して追加。メッシュはUnityで使ったモデルを持ってきた。
最初、自分が持っているマーケットプレイスのコンテンツ内に適したものが無いか探してみたが、見つからなかった。
このとき、ちょっと困ったのは、アセットセットみたいなものだと、その中にある特定の物へは検索で引っかからないので、探しにくいこと。
どうやら無さそうだったので、以前Unity使ったものをインポートした。
インポートしたときパーツに分かれていたので、アクタのマージをして1つにした。
docs.unrealengine.com
ネットで検索して最初に見たページはUE4のもので、UE5とはメニューの位置が異なっていて、ちょっと戸惑った。
移動部分は地面のブループリントをコピーして使えたので楽に実装できた。
あとは、キャラクターが触れたときの処理を行うため、トリガーを追加。
ここで、キャラクターのやられモーションも無いことに気付いた。
実際に作っていくと、いろいろなところで足りない部分に気付いたり、ツールの新たな機能を知ることが出来たりする。
頭の中で多分こうすれば出来るだろうと考えるだけでなく、実際にやってみることは非常に大事。

地面の作成

以前、マーケットプレイスからダウンロードしてあったアセットを使うため、プロジェクトに追加。
しかし、サンプルのマップを開こうとするとエディターがフリーズしてしまった。
もしかすると、最新の5.1.1に対応していないのかもしれない。
ということで、とりあえずアセットはスターターコンテンツに入っていたものを利用することにした。
gamemakers.jp
このページを参考に動く地面を作成した。
ループさせたところDreamsのときほどではないがループするタイミングでちょっとだけちらついた。
なんとなく対応方法を思いついたけど、とりあえず後回しにして先に進む。
今回作っているものでは地面は動いているけどキャラの位置は変わってほしくないので、地面のコリジョンを無効に。
しかし、それだとキャラが落ちてしまうので、透明な床を配置。
これでとりあえず、キャラが走っているような感じの画が出来た。
さて、次はエネミーの配置、当たり判定。
まだ、タイトル画面とかのシーケンスも入っていないので、完成は今週末だと間に合わないかも。

PlayStation VR2

PlayStation VR2を購入した。
最初にプレイしたのは、Horizon Call of the Mountain。
Horizonの世界をVRで体験できるもの。
通常のHorizonでは雑魚だったウォッチャーの大きさにビビる。こんなの目の前にしたら一目散に逃げる。
そして見上げるほどのトールネックのデカさ。プレイしていて鳥肌が立った。
まさにHorizonの世界を体験するゲーム。
次にプレイしたのはRez InfiniteのPSVR2対応版。
元のPSVR版の時点でよく出来ていたのでグラフィック的にはそこまで違いは感じられなかった。
それよりも、顔の向き+コントローラーの向きで照準を動かせるので非常にプレイしやすかった。
視線方向を使った操作方法も試したが、こちらは微妙にずれたりして思ったよりも狙いにくかった。
GT7もプレイしてみた。
ドライバー視点での運転はまさにリアル。ハンドルコントローラーでプレイすればもっとリアルなのだろう。そして、体にかかるGがないのが違和感と気がついてしまうほど。
今のところ、PSVR2での一番の問題は、部屋を片付けないとルームスケールのプレイエリアを設定できないということ。

キャラクター設定

走りモーションの付いたウサギのモデルがあったので、Unreal Engine にインポートして、サードバーソンのテンプレートプロジェクトを使って、キャラクターとして操作できるようにした。
キャラクターを入れ替えるのはヒストリアのこのページを参考にした。
historia.co.jp
ただアニメーションは走りしか無かったので、移動していないときも走りモーションのまま。ジャンプさせたときはポーズすればなんとかなるかな。まだポーズの仕方は分かっていないけど。

アップデートとアセット

新規でプロジェクトを作成しようとしたら、Unreal Engine 5.1.1へのアップデートがあった。
ということで、アップデート。
このアップデートに時間がかかるし、さらに新規プロジェクトを作ったときも、最初のシェーダのコンパイルで非常に時間がかかる。
ということで、その間にアセット探し。
そういえば、最初、ウサギのアセットを探していた時に、UEではすぐに使えそうなのがなく、Unityで使えるのが見つかったので、Unityで作り始めたことを思い出した。
使えそうなのが無かったら、とりあえず、デフォルトのプレイヤーキャラクターで実装し始めることにしよう。

今週の目標

今週の目標はどうしようかと考えたところ、
そういえば、いろいろな環境で作ってきたワンボタンミニゲームUnreal Engine版を作っていないことを思い出した。
ぷちコンに向けての準備も兼ねて、今週はUnreal Engineで作ることにした。