· 

【Unity】Unityでゲーム制作 その1

Last Updated  2025.03.25


  |ω・`)コッソリ…

 

 

 

 Unity初心者によるゲーム開発の雑記になります。

 技術的なメモや備忘録と違い、比較的ゆるめな進展報告です。

 

 如何せん素人のゲーム開発で1日の作業時間もバラバラ。メンタルや体調がやられてる日はお休みしたり、解らないことはその都度勉強しながらだったりするので、生暖かく見守ってて頂けたら幸いです。

 

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

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

 ひとまずキャラクターセレクト画面を制作。

 

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

 

 カーソルとかキャラクタースチルの制作や、色々な調べもので時間はかかってしまいましたが、基礎工事はひとまず完成。あとは装飾とかイラストのクオリティ次第です。  

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

 

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

 

 画面入った瞬間からテンション上がる系が好みなのかも?

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

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

 

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

 

 

 この辺は、優先順位と擦り合わせて一旦保留することにしました。まとまった時間をとれるときに、集中してやらないとダメですね。ビジュアルの方向性が確定してる2キャラ分の作業を進めながら、根っこの部分で練り直します。

 

 ゲーム内で使う場合、画像のサイズや容量は小さめにするので、塗りはバリッとしたアニメ塗りの方がいいかもしれない。現代にあわせて、また色々と勉強し直さないといけませんね……

blenderによるモーション制作

遠距離3連_開発初期
▲3段目最後の右手の返しが結構お気に入り
  • 弱ショット3連
  • 近距離2連(いわゆるワンツー)
  • 術を放つ(基本フォーム数点)
  • Idle(待機)状態
  • 攻撃動作いろいろ

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

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

 

 具体的には、キーフレームを打ちすぎて「ぬるっ」と動くやつはかえってダメくさい。ダメというか自分好みでないというか。ミクサモにある攻撃モーションを使うと、これが顕著でした。あと、カメラが上からやや俯瞰するアングルが主体なので、実際の画面だと猫背に見えることが結構あります。気持ち以上に『反る』ことを意識すること。模型関係のポージング論 とかは参考になるかも?

 

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

 

【課題】

 後々厄介なので軸ズレはモーション段階で極力潰すこと。瞬間的な足の位置ブレは、Unityアニメーションのブレンド機能でなんとかなる場合もある。

 

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

エフェクト関係

▲破壊光線
▲破壊光線

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

 

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

 

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

 

 

【課題】 

  • 明るい照明でもエフェクトをハッキリ表示させる設定や方法
  • 3Dだとこの移動方法は問題があるので、相手の位置から進行方向を算出する方法に変更すること。
  • 撃つたびに処理が走るので、負荷も考慮して設計すること。

被ダメ処理の実装

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

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

 

〇 攻撃判定と喰らい判定

 喰らい判定は既存のキャラクターコライダーで流用可能。けれど、いわゆるヒットボックス(攻撃判定)は新規に設置しなくてはならず、さらに技ごとに位置、大きさ、発生や持続時間まで考慮しないといけないので、設定しては実際に動かして微調整、を繰り返すしかないです。

 

〇 ダメージリアクション

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

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

 あえてサブステートマシンとかは使ってません。使う予定はありますが、今回は視覚的なインパクト重視で

 

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

 

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

ヒットストップ

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

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

 

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

▲通常KO時
▲通常KO時

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

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

 

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

 

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

 

【宿題】

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

 

 └ BLOGに 解決編 を追加

その他

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

 

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

 

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


 

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