半年くらい空いたので、その間のことも書きます。
一先ず戻ってこれてよかった。
進捗
色々あって±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つ。
コメント