7日でゲームを作ろう!4
こんにちは、インターンシップ生の松本です。
前回はソケットの機能を使って武器を持たせることに成功しました。今回は武器を振るモーションをどうするか、とステージの作成をやっていこうと思います。
まず初めに武器を振るモーションですが、このキャラクターのアニメーションにこういった近接武器を振るアニメーションが無く、自分で作ろうともしたのですが、なかなかうまくいかず前回はそのことがあったため、後半は行き詰ってしまいました。ですので今回は振ること専用のアニメーションをつけず、歩行アニメーションで腕を振っていることを使って、そのままスイカに触れればクリアということにしようと思います。
次にステージですが、ただ単純にスイカに向かっていって終わりでは面白くありません。なのでこちらに向かってくる障害物を作ります。触れると爆発しダメージを受けるといった感じのものを作っていきます。
初めに障害物の設定をしていきます。コンテンツブラウザというところで右クリックし、ブループリントを選びます。親クラスはアクタにします。コンポーネントの追加でSphereを追加し、さらにCollisionのSphereも追加します。
次はイベントグラフと書かれたところを押し、どう動くかや爆発してダメージを与える設定をしていきます。こちらに向かってくる動きはプレイヤーを動かすときにやったこととほぼ同じです。爆発は、先程追加したCollisionを超えたら爆発のエフェクトを生成し、障害物自身を破壊します。先程のビューポートという画面でColisionのSphereを選択して左側の詳細の下の方にイベントというところがあり、その中のOn Conpornent Begin Overlapと書かれたところの横にある+をクリックします。するとイベントグラフに同じように書かれたイベントのノードが現れます。これがCollisionを超えたら、というイベントです。そこから適当なところまで伸ばして離すと、次につなげるノードを検索して出せます。ですが今回はただ触れると爆発するだけでなく一定時間で消えるようにするので、接触判定というBool型の変数を作り、セットします。この場合は真にします。これを使って別の場所で触れたらエフェクト出して消滅、振れなかったらSet Life Span時使って時間で消滅するようにしていきます。
Overlapで接触判定にセットした後に、ダメージを与えるところを作っていきます。Apply DamageとAny Damageを使って、Apply Damageで設定したダメージ値をプレイヤー側でAny Damageを使うことでダメージとして与えることができます。プレイヤー側ではあらかじHPになる変数を用意しておきます。そこから先程設定したダメージ値を引くことでダメージを与えたことになります。
大まかな作業はこのような感じです。より細かいところはこちらの画像を見てください。
次回も引き続きステージ作成と、クリア画面やタイトル画面を作っていこうと思います。
興味を持たれた方はお気軽にお問い合わせください
インターンシップへの申し込み・お問い合わせ先
