ご無沙汰しております。一応生きております。
Part 1の続きではありますが、今回から別記事になります。
今回からのシリーズも、不本意ながらC++が多めになります。ご了承下さい(文句ならLyraの基幹システムをブループリントに公開していないEpic様に言ってください笑)
お約束 | |
---|---|
この記事作成にあたって使用した主なUnreal Engine バージョン | UE 5.1.1 |
本日のゴール
Lyraのルールを変更する
前の企画はどうなった?
前の企画はまだ生きてはいるんですが、データが消えたので一旦停止中です。。。こちらをメインでやっていきます ※今は反省してクラウドにバックアップをとってあるので大丈夫です。バックアップのやり方もいずれ記事にします。
自由自在なルール設定
さて、Lyraでは、「Eliminate」「Control」などのモードの選択をすることで、大幅なゲームルールの変更が可能になっています。
それを可能にしているのが、「Game Features」です。新しい機能です。
例としてレベル「L_ShooterGym」を見てみましょう。
ワールドセッティングから、このレベルに設定されたGame FeaturesのCoreを確認することができます。「B_ShooterGame_Elimination」が指定されていることがわかります。
この「Game Features」設計で面白いのは、ゲームルールを追加したり削除したりすることができることです。しかもレベル毎に設定することができるので、ステージAではこういうルールだが、ステージBではこういうルールでやる、みたいなことができます。これをModular Gameplayと呼ぶらしいです。
ニーア・オートマタで急に出てくるシューティングゲームなんかも実装ができそうです。
概要は、alwaiさんが解説されているので、一読しておきましょう。いつも神記事をありがとうございます。
それを可能にするのが、この「B_ShooterGame_Elimination」のなかのActionsの中にある、Componentという部分になります。ちょっと開いて見てみましょう。
エラーが出ると思いますが構わずコンパイルしてプレイしてみます。
この一番上の~Scoringがルールを決めているブループリントです。
タイマーがゼロになったときの処理とかもなんわかります。
これを修正することで、ゲームルールを変えることができます。
このブループリントを確認すると、Target Scoreに達するとゲームが終了になるようになっています。
ここを修正し、制限時間に達すると、Red Team = Team 1が勝利するように書き換えていきます。
私のゲームでは、Kill数がTarget Scoreに達すると勝利になるという条件は不都合なので削除しておきます。
On EliminationScoredの関数の中でTarget Scoreに達したチームが勝利になるようになっているのでこのノードを外します。
Widgetのバグ?も修正しておきましょう。
※なんか別環境だとうまくTick排除ができなかったので、もしかしたらなにか間違っている可能性あります…。
今回は以上です。まだまだ道のりは遠い…
0 件のコメント:
コメントを投稿