【Unity】RPGのターン制バトルシーンを作ってみる!
おはようございます。おーみんです。
※この記事は2019年4月21日に書いて、2019年4月25日(本日)に予約投稿をしている記事になります。
RPGのターン制バトルを作る!
今日からUnityにてRPGゲームの戦闘シーンを作っていこうと思います。
— 超おーみん3@Unity民族 (@Ooooooomin_365) 2019年4月18日
今日はUIからプレイヤーの攻撃動作まで。
ATBゲージが溜まるとコマンドが表示されて選択し終わったら戦闘態勢に入り、一定時間後に攻撃という流れ。
明日以降ダメージや相手の攻撃動作も作ります。#unity #unity3d #gamedev pic.twitter.com/1Kx1YN3nXU
今日行った内容は
— 超おーみん3@Unity民族 (@Ooooooomin_365) 2019年4月19日
「コマンド選択後にコマンドを消す」
「誰のターンか分かるようにする(キャラの上に青い印)」
「攻撃のエフェクトとダメージ表記」
「BGMと効果音」
などなど。
だいぶ良い感じです!🤠
明日は魔法や相手の攻撃等も入れていきたいですな。#unity3d #Unity #gamedev #rpg pic.twitter.com/EWGzjyjKjV
#Unity でFFの戦闘シーン(もどき)制作チャレンジ3日目。
— 超おーみん3@Unity民族 (@Ooooooomin_365) 2019年4月20日
今日行ったのは
「相手の攻撃、エフェクト」
「プレイヤーの魔法攻撃、コマンド選択表示(今はファイアのみw)」
などなど。
良い感じです。明日以降プレイヤーのHP等にもダメージが反映するようにしていきます。#unity3d #gamedev #RPG pic.twitter.com/Xh0mUf6Mkx
#Unity でFFの戦闘シーン(もどき)制作チャレンジ4日目。
— 超おーみん3@Unity民族 (@Ooooooomin_365) 2019年4月21日
今日は魔法攻撃に「ブリザド」を追加。
良い感じですね!もうちょっと氷を大きくしてもよかったかなとも思うけど、まあ良いでしょう。明日以降に他魔法の作成と、ダメージ等のUI反映を行なっていきます。#gamedev #RPG #unity3d pic.twitter.com/36BA7fKi1U
参考にしたターン制バトル
イメージ的にはファイナルファンタジー(FF)7と9に似せたいな~と思っています。
画面のUIやコマンド選択するとプレイヤーの構えが変わる部分はFF9に。
魔法を唱えるカメラワークやエフェクト等はFF7に。
ターン制バトルの作り方
ターン制バトルの作り方に関する技術的な部分に関しては別の記事で詳しく書いたり、Githubに後々公開しようと思いますので、ここでは簡単に書こうと思います。
まずATBゲージはUI > Image > Image Type → Filled にて作っています。
ゲージの増え方はスクリプトで増やしていき、1になるとコマンドが出現するようにプログラムを書いています。
「たたかう」「魔法」を選択すると、主人公が攻撃しますが、この時はTimelineを用いています。スクリプトの最初に「using UnityEngine.Playables」を設定するとTimelineも再生したいときにスクリプトから実行することが出来るのです(これだけだとあまりイメージが湧かないと思いますので後々別記事にて細かく書いていこうと思います...)。
「魔法」を選択した際にカメラが動いていますが、これはCinemachineを用いています。Cinemachineの動かし方はTimelineで調整しています。
複数のターン制バトルを作るのは結構大変だと思う
今回は1vs1のターン制バトルとなっていますが、複数のキャラを動かすとなるとまた難易度は大きく上がるでしょうね...。
今回の記事で紹介したTimelineやcinemachineについては既に関連記事を書いていますので気になる方はぜひ参考にしてみてください!
【Unity】CinemachineとTimelineを使ってRPGのムービー的なのを作った! - おーみんだよ。