【ゲーム開発:nerd】2022年2月まとめ

Develop

半年くらい空いたので、その間のことも書きます。
一先ず戻ってこれてよかった。

進捗


色々あって±0くらいになりました。
前回までのゲーム画面がこちら。

そして現在のゲーム画面がこちら。

3Dで作り直しました。
以下に主だった理由とメリット/デメリットを書き連ねます。

何故3Dにしたのか


  • ゲームっぽくなかった
  • 作画が大変過ぎるカットがあった
  • かなり面倒な不具合があった

順番に書きます。

ゲームっぽくなかった


3Dで作り直すに至った決定的な要因はこれです。

2Dで作っていた頃のインタラクションと言えば、せいぜいタップやスライドくらいで、ジャンルで言うところの「ポイントクリック」ゲームでした。

「ポイントクリック」というと、大体のゲームは探索や謎解きがメインになっています。
古のフラッシュゲームなんかと同じ作りです。

しかし、本作に探索や謎解きといった要素はありませんし、当然びっくり要素もありません。
すると本作は、ただタップしてアニメーションを再生するだけのものということになります。
テキストこそ存在しますが、結局読むだけ、見てタップするだけというところに変わりはありません。

無論、それでいいという場合もあるのですが、本作では「自分で動かしている」という感覚がコンセプト上必要になってくるので、もう少しちゃんとした操作感が欲しくなりました。

2Dでそれができなかったわけじゃありませんが、作りやすいのは圧倒的にUnityでした。
量を必要とする以上、作りやすさは非常に大事です。

夏頃、頻繁にグラフィックの刷新を行っていたのは、やっぱりどこか違うという思いがあったからでした。

作画が大変過ぎるカットがあった


ドアのことです。
とにかくドアの開け閉めが辛かった。

非生物のアニメーションは生物よりも正確に動かさないと、すぐに違和感が出てきます。
軌跡をなぞるだけだから簡単だと思って挑むと、それがどれほど愚かな考えか思い知ります。
特に、今回のようにゆっくり開け閉めする場合は本当に大変です。

「ドアは絶対3Dで作った方が良い」
この時から部分的に3Dにするのはアリだと思ってました。

かなり面倒な不具合があった


前回テストゲームを作った時に最も大変だったのがアニメーションの同期です。
つまり、0.1秒の誤差も無く、全てのアニメーションを次のコマに進めなければならないということです。

あまりに大変だったので備忘録を作ったくらいです。

登場キャラ少ないし、大丈夫じゃない?と思うかもしれませんが違います。
1キャラでも、頭、体、目、口、眉などと、全てのパーツを別々に動かしているので、最終的にはかなりの数のアニメーションを制御しなきゃいけません。
それも全部スクリプトで。

ちょっとの誤差なんて気にしすぎじゃない?と思うかもしれませんが、それについては以前の記事で見せた通りです。

それの修正のために多くの時間を費やしました。
ほとんどのケースにおいてfpsの同期は完璧なのですが、それでもバグを0にすることは叶いませんでした。

これが、3Dで作り直す最後の一押しでした。

双方の違い


2Dと3Dの違いに加え、PIXI.jsとUnityの違いにもなります。
特に本作で顕著な部分について書きます。
以下、Unityで作り直した場合に起きることです。

  • 背景を3Dにできるので全体のfpsが上がり、細かいfpsのズレが気にならなくなる
  • アニメーションを専用のエディターで扱える
  • 大きなイラストを使う必要がなくなるので、容量が少なく済む
  • ゲーム制作用のツールなので、全体的に楽

全体的に楽という部分に全てが詰まっています。
というか多分PIXI.jsでゲーム本編全部作ってるのがおかしい。

容量については、基本的に3Dオブジェクトよりイラストの方が圧倒的に重いです。

逆にUnityで良くない部分はというと

  • 起動時にUnityのロゴが出る
  • 2Dアニメーションの階層分けができなかった(過去形)
  • アニメーションらしさが減る分、ゲームの特異さが減る

(過去形)があったばかりにPIXI.jsを選んでいたのですが、それも最早昔。
3Dにすることでオール手描きという特徴こそ無くなりますが、本作で最も大事なのはMVらしさです。
寧ろパーティクルや物理演算で表現の幅は広がりますから、存分に活かしていきます。

作画


使えるものはそのまま使いますが、カメラまで考慮したアニメーションを描く必要がなくなったので、色々なシーンで共通して使いまわせるように作り直しています。
また、色やタッチの見直しも行い、現在以下の様になっています。

線を太く、塗りもはっきり分けました。
3Dオブジェクトのトゥーンレンダリングに合わせるためです。

3D


実は現在使っている物は、フリーで配布されていたものがほとんどです。
ポリゴン数にバラつきがあり、とてもゲームには向かないオブジェクトもあるので、順に自作のものに変えていこうと思います。

ステージ自体は背景を描く際に参考にしていたシーンをそのまま使っています。
建物やバスなど、新たに作るものも増えました。
ただ、自分はイラストレーターではないので、正直モデリングの方が楽です。

実装


2月はずっとUnityでの実装を行っていました。

VisualScriptingというものがv2021.1から出ていたようで、今回はそれを使ってみることにしました。
他にも、InputActionなんかは数年前のUnityには無かった機能でした。
お陰で最初は勉強の日々が続きましたが、慣れると非常に便利です。

結果、1ヵ月程でPIXI.jsの時と同程度のシーンまで到達できてしまいました。
それどころかPIXIでは作らなかった部分も作り、テキストの量も増えているので、最早PIXI版を既に超えていると言っていいと思います。

まあ、アニメーションやモデリングに手を付けてないからなんですけど。

移動、会話、選択肢、カメラ、イベント処理の流れ、オブジェクトの選択、ゲーム内SNS辺りの実装はほぼ完全に終わったので、アニメーション、SE、UIの整理次第、試遊もできると思います。

プロモーション


プロモーションをちゃんとしていたらブログを半年放置などしない。

しかしUnityに変えて困ったことが一つあります。

#indie_anime が使いにくくなってしまいました。

このハッシュタグはインディーアニメを広めるためのハッシュタグです。
ゲーム以外の分野にPRする際に有効でしたが、アニメーションの領分が減ったことで使える範囲が狭まりました。

フォロワー


399 → 389

放置すると減るってことですね!
いや、どっちかっていうと放置ではなく、制作に関するツイートが減ってくだらない内容が増えたからだと思います。

来月の目標


「部屋を出る!」と散々言っていてまだ出ていないので、早々に脱出しようと思います。
※「部屋」 ゲーム最初にチュートリアルを行う部屋のこと

少し重たいスクリプトがまだ残っているので、day1は終わらずとも、そのスクリプトの実装完了まではいきたいです。
つまりday1の2/3を終わらせるということです。
※本作はday7まであります

ここまでやっておいて自ら振り出しに戻したのです。
必ず良いものにしましょう。

このブログについて


更新をしていない間にも作業記録は取っていました。
それの公開(という名の自己処刑)や、その間に作っていたものについても書き残しておくつもりです。
具体的に言うと、曲が2つ、MVが1つ、ゲームが1つ、趣味の勉強が1つ。

コメント

タイトルとURLをコピーしました