UNITYでゲーム制作 ~9月にやったことアレコレ~

Last Updated  2023.09.30


 |ω・`)コッソリ…

 

 今月やったことの覚え書き。

 BLOG記事にする前段階の未整理めもや雑記です。

 

 夏は色々と企てがあったり、この猛暑で予定が狂ったりで、Unityでのゲーム開発は一旦お休みしていたんですが、8月末から再開しました。

 

 如何せん素人のゲーム開発で1日の作業時間もバラバラ。

 メンタルや体調やられてる日はお休みしたり、解らないことはその都度勉強しながらだったりするので、生暖かく見守ってて頂けると幸いです。

 

 gif多めなので重かったらゴメンなさい。 


▼キャラクターセレクト画面の実装

 

 キャラクターセレクト画面の作例を拝見したりデザインの考案とか。

 格ゲーっぽいキャラセレ画面そのままの具体的な作例は、ネット上では見つけられませんでした。

 

 カーソルの作成とか、キャラスチルの作成とか、備忘録のために色々と調べものや復習やらで、予定以上に時間がかかりましたが、基礎工事はひとまず完成。あとは装飾とかスチルのクオリティ次第です。

 

 参考にしようと、昔好きだったゲームの配置や演出を、改めて確認したりもしてました。

 

 一連の流れが好きなのはやっぱりストⅡとか餓狼の初代からSP、サイキ2012あたり。音響含めて本気で耳に焼き付いてるレベルです。KOFも95、96あたりが好きで、デザインはバーチャや闘神伝初期のシンプルなもの。曲でいえばマブカプやストⅣも好きなんですよね。

 

 じんわりとテンション上がる系より、画面入った瞬間からテンション上がる系が好みかもしれない。

 


▼キャラクターデザイン&アイコンの作成

 

 構想やアイディア、方向性が定まっていて、作りたいモチベがあるのが現在6人。

 

 たった6人でも、モデリングするためにはしっかりとしたデザインや色彩設計の練り込みが大変だと実感する月でもありました。キャラセレ画面のために、紙にラフ起こしとか色彩設計の作業をしてみたけれど、自分の技量の無さに本気でモチベが折れかけたレベル。

 

 この辺は(自分の)優先順位と擦り合わせて一旦保留することにしました。キッチリまとまった時間をとれるときに、集中してやらないとダメですね。

 

 確定してる2キャラ分の作業を進めながら、根っこの部分で練り直します。

 

 ゲーム内で使う場合、塗りはいわゆるバリッとしたアニメ塗りの方がいいかもしれない。

 現代にあわせて色々と勉強し直さなきゃ……

 


▼blenderによるモーション作成

 

 ・弱ショット3連

 ・近距離2連(いわゆるワンツー)

 ・術を放つ(基本フォーム数点)

 ・Idle(待機)状態の改修

 ・攻撃動作いろいろ

 

 力を抜いて作ったモーションの方が、Unity上で見栄えがいいのは理由がありそう。

 なんというかこう、ズビシッ、ズビシッの方がいいのか。

 

 具体的にはキーフレームを打ちすぎて、ぬるっと動くやつはかえってダメくさい。ダメというか自分好みでないというか。ミクサモにある攻撃モーションを使うとこれが顕著でした。

 

 カメラが上から若干見下ろしてるアングルが主体になるので、実際の画面だと猫背に見えることが結構あります。気持ち以上に『反る』ことを意識すること。模型関係のポージング論とかは参考になるかも。

 

 当たり前なんだけど、2Dと3Dのポージングは考え方が違うなぁと実感中……

 

 あと、後々厄介なので軸ズレはモーション段階で極力潰すこと。

 瞬間的な足の位置ブレは、Unityアニメーションのブレンド機能でなんとかなる場合もある。

 

 ともあれ、モーション制作に関しても勉強することが山盛りです。

 遠距離3段目の〆の右手の『クルンッ』って返しが結構お気に入り。


▼エフェクト関係

破壊光線
破壊光線

  Unity標準のパーティクルシステムは、未だに使い方を理解できておらず、エフェクト関係は『Effekseer』で作成してます。とはいえ、触ってから色々と間が空いてしまってたので、忘れていることとか復習してました。 

 

 作ったら作ったで、Unity上で意図通りに動かしたり、インスタンス化したプレハブの角度変更方法で数時間手間取ったり。結局よく解らなかったので、現時点ではエフェクサー上でゴリゴリに調整してます。

 

 Effekseerエフェクトを物理で飛ばしたり、判定をつける仕組みは把握できました。

 

【宿題】 

・明るい照明でもエフェクトをハッキリ表示させる設定や方法

・3Dだとこの移動方法は問題があるので、相手の位置から進行方向を算出する方法に変更すること。

・撃つたびに処理が走るので、負荷も考慮して設計すること。


▼『ダメージを受ける』の実装

 

 ダメージを受ける一連の仕組みと流れを実装。

 一言でいえば『ダメージを受ける』なんですが、これを要素に分解すると本当に細かくて

 

〇攻撃判定と喰らい判定

 喰らい判定は既存のキャラクターコライダーで流用可能。

 だけど、いわゆるヒットボックス(攻撃判定)は新規に設置しなくてはいけなくて、それもさらに技ごとに位置、大きさ、発生速度や持続時間まで考慮しないといけない。設定しては実際に動かして微調整、を繰り返すしかないです。

 

〇ダメージリアクション

 攻撃が当たった際の、相手のモーションやヒット音も重要になってきます。特にアニメーションは結構な量の追加と設定が必要で、具体的な話はここでは割愛しますがAnimatorに『AnyState』の存在がなければ、自分はここで挫折していたかもしれません。 

 

 ダメージモーションを追加した時点でのAnimater状況。

 

 あえてブレンドツリーとかは使ってません。

 使う予定はありますが、今回は視覚的なインパクト重視で。

 

 ここからさらに与ダメ、ヒットバック、硬直差の概念まで考慮しないといけませんが、現時点では「実際に問題なく動くか」に注力します。意図しない挙動が多発するんですよね…… 

 

 Unityで格ゲーを作る場合、まずここの設定と作業が大きなハードルになってるんじゃないかと感じました。これだけの量を人数分、制作、確認しないといけませんからね。

 


▼ヒットストップ

  好きな演出なので、KO時に組み込んでみました。

 たったこれだけでも意図通りの挙動にするのに丸1日かかってます。

 

 時間がかかった部分は、スローにする挙動や仕組み自体ではなく、分岐してるダメージモーションを、KO時には専用のものに切り替える部分と、浮かせ技でフィニッシュした場合には、それを無視していわゆる『車田落ち』っぽくするという妙なこだわりのためなんですけどね……頭から落ちるモーション作らなきゃ(使命感)

 

通常KO時
通常KO時

▼ポーズからのオプションメニュー

 

 キャラセレ画面の仕組みの応用で、一時停止メニューからのオプションを作成しました。

 

 テストプレイ中に状態リセットがあった方が都合よかったのと、タイトルやキャラクター選択画面に戻る、というのを実装してます。要するにScene切り替えのお勉強ですね。

 

 その都合で、仮のタイトル画面とか、点滅する文字とかも作成してました。

 

【宿題】

 この時、対戦画面から対戦画面への移動(KOしたら次のセットへ移動とか、状態リセットしたとき)の際は、BGMを途切れさせない方法も勉強したんですが、他のシーンに移動したとき2重にBGMが鳴ったり、そこを直したら今度は対戦画面でBGMの不具合が出たりしてるので、BGMを流す仕組み自体を、1から設計、勉強し直さないとダメみたいです。

 ⇒BLOGに解決編を追加

 


▼その他雑記

 

 ・エルツを動かしてると、やっぱり挙動は軽くしてゲームスピードは上げたい。

 

 ・フェードアウトの実装に手こずる。今も完璧ではないので要修正案件。

 

 ・enum関数に挑戦してみたけど、そのスクリプト内で使う分には問題なく、別のスクリプトから判定する、みたいな使い方になると、途端にエラーだらけで訳が分からない。記述の最適化には必須になってくると思うので、ちゃんと仕様と使い方を理解できるようになりたい。

 


 

 まだまだ先は長いんですが、使える時間や自分の現状と相談しつつ、来月も継続できればと思います。拙文にお付き合い頂き、ありがとうございました!