This post is written in Japanese.
今月も Unity 1週間ゲームジャムに参加。
お題は「積む」ということで、物理エンジンを使ってサクッと作れるかと思いきや…
お題発表
月曜0時 naichiさんより告知
今週のお題「積む」 | Unity 1週間ゲームジャム #unity1week https://t.co/2uhr9rdqDr
第三回お題公開しました。今週もよろしくお願いしまーす!
積む、積み重ねる、積み上げる、、、何も思いつかなければとりあえずCube重ねておけば大丈夫ですw— ないち (@naichilab) June 18, 2017
で、何か面白い積み方は出来ないかと模索した結果がこれ
火曜3時
とりあえず積んでみた #unity1week pic.twitter.com/4o3fPKOWqO
— myotoxi.com (@myotoxi) June 19, 2017
for文で円形状に Cube を降らせただけで絵になる Unity 様様。
しかし、この形状が後々まで悩みの元になる。
ゲーム内容
見た目がよろしくてもゲームとして遊べなくちゃ意味がない。
塔は崩壊してなんぼ
だと勝手に思っているので、その方向で考えてみる。
そして、ぶっ壊す方法をいくつか試してみてわかった。
基本的に物理演算は崩れる
火曜21時
「積む」というのは必然的に静止状態を目指すわけだけど、物理演算って「動かす」ほうが得意なのよね #unity1week
— myotoxi.com (@myotoxi) June 20, 2017
積むも崩すもイメージ通りにやるのは難しいってことだ。
プレイヤーが積んだり崩したりに干渉するのはやめて、積まれていくブロックを昇っていくゲームにしよう。
それならユニティちゃんを使ってみたい、ということで基本方針が固まる。
初挑戦
プリミティブ以外の3Dモデルを扱うのは初めてで、ユニティちゃんをモーションつきで走らせるまでにも紆余曲折があった。
アセットストアで目に入った Optimize, SD Kohaku-Chanz! だけをインポートして呆然としてた頃が今はもう懐かしい。
OptimizeじゃないほうのSDユニティちゃんもジャンプモーションの使い方がわからなくて本来のかわいさを発揮できていない。
それでも髪が揺れるスクリプトのおかげで移動量が目視できて効果絶大。
キャラクタのデザインもこれを意図しているのだろう。
最高だなユニティちゃん
難問
ここで円形状の問題に直面する。
接線方向の移動を円周上に補正する処理が Character Controller の挙動に影響してブロックをすり抜ける現象が多発。
水曜4時
Character Controller難しい。他にも問題が山積みだわ #unity1week
— myotoxi.com (@myotoxi) June 20, 2017
当初は原因がさっぱりわからず、
なんかもうコライダが信じられない
という状態が続いて心が折れかけた。
すり抜けたらゲームにならないもの。
刺激
#unity1week を眺めていたら似たようなゲームを作っている人が複数いることに気付く。
ある程度ネタが被ってしまうのは仕方ないとはいえ、なるべく差別化を図りたいと考えたのがこれ
金曜4時
ユニティちゃんは三角飛びを習得した #unity1week pic.twitter.com/Vo3jDwhK6Z
— myotoxi.com (@myotoxi) June 22, 2017
一人で黙々と開発していたら入らなかったであろう要素。
ゲームジャムって良いものですね。
停滞期
キャラ操作が完成したのが金曜深夜。
次はゲームの舞台を作らないといけない。
土曜16時
ステージ作成から目を背けてskybox選んでる #unity1week
— myotoxi.com (@myotoxi) June 24, 2017
ステージ構成はジャンプアクションの面白さに直結している。
だからこそ悩ましい。
乱数で自動生成できたら良かったのだけど、単調にならず無理ゲーにもならない絶妙なロジックが思い浮かばなかった。
日曜3時
タイトルからリトライまでのフローとツイート、ランキングを実装したが、ステージが出来ていない #unity1week pic.twitter.com/SXlqExEjUn
— myotoxi.com (@myotoxi) June 24, 2017
締め切り当日にこの状況はヤバイ。
この後もステージ作成を先送りにしたまま、スマホ展開に向けてiTunesConnectでアプリ名を確保したりしていた。
やっつけ仕事
結局、締め切りの3時間前になってようやくブロック生成簡易マクロ言語を実装。
最低限遊べるようにステージをでっち上げた。
日曜17時
さて、ステージ作成するか #unity1week
— myotoxi.com (@myotoxi) June 25, 2017
が、ここでも円形状が災いし、ずいぶん苦労させられている。
まずブロックを積む順番を慎重に設計しないと簡単に行き止まりが出来てしまう。
また、データ上だと80m以降は同じパターンの繰り返しのはずなのに、直前に積まれた高さによって落下距離が変わるため、着地時のめり込み具合が一定にならない。
150m以上は作者も到達しておらず、どう頑張っても踏破できない可能性がある。
操作性
操作方法が変則的なのはスマホ展開を考えているから。
バーチャルパッドが嫌いなのでスワイプ&タップの指一本で遊べるようにするつもり。
WIRE KID以上に難しくなってる気がするけど作者はかなり気に入っていて、いずれ同じ操作系で横スクロールアクションを作ると思う。
やり残したこと
サウンド関連とかランキング画面のカスタマイズとか色々あるけど、やはりステージを真面目に作りたい。
ゲーム自体の伸びしろはあると思っている。
崩れ始めた螺旋階段を駆け上がるという、見せ方によっちゃ
最高にドラマチック
なシチュエーションをちゃんと生かさなければ。
まとめ
全体を通して技術的な部分で躓くことが多くて、作り込みに手が回らなかった。
ただ、スキルアップに多くの時間を割いたとも言え、そう考えると作者自身が経験を「積む」ことができた有意義な一週間だったと思う。
主催者、他の参加者、プレイヤーの方々に感謝しつつ、次回も頑張りたい。