見出し画像

Unity1week「Re」振り返り

Unity1週間ゲームジャム お題「Re」に参加しました。

今回参加したイベントは、unityroomで実施されるものでUnityを使って1週間でゲームを作ろうというゆる~いイベントです。

今回で13回目の参加だったようでして、
前回の お題「ためる」 ではお休みしてしまったので少し久しぶりの参加となりました。

今回作ったゲーム

製造AIに出会ったロボット君が彼のために歩行できるロボットを作ってあげるべく、周りに落ちているパーツを拾い集めるゲームとなっています。


退廃した世界でロボット同士が友情を深めるハートフルなストーリーに仕上げたかったんですが、深めるほどのボリュームやお話にしきれなかったのが心残りとなりました。。。

工夫した点

以降は、今回のゲームを作るにあたって工夫した点を述べていきます。
解説など織り交ぜていくため若干のネタバレを含みます。

AI君

製造AIくん

AI君用の表情用のCanvasとそれ用のCamera、それを投影する用のRenderTextureを用意。
AI君のモニター部分に当たるMaterialにRenderTextureを適応してます。

AI君表情用のCamera
AI君表情用のCanvas

Canvasをそのまま表示しているのでUIを表情の前に表示したりできました。

初期化中の表示をするためのUI
「Initializing…」がモデル側のモニターに表示されている

また、今回の製造AIくんの表情は『ラブ、デス&ロボット』に出てくるオレンジ色のロボット君をモチーフにしてます。kawaii ^-^
(Netflixで見れるので興味のある方は是非)

ラブ、デス&ロボット

TVタワー

テレビのタワーってなんか良いですよね(?)

テレビのモニターもAI君と基本同じです。
テレビに移したいCameraを別に用意して、それ用のRenderTextureへ出力して、Materialに適応しました。

モニターっぽい表現は、ShaderGraphで組んでおり、Unity Japanチャンネルにて解説されていた方法をほぼほぼ真似して作りました。
(Unity Japanチャンネルにはいつもお世話になってます)

実際のShaderGraphが以下になります。

モニターのShaderGraph

ポストエフェクトでBloomをかけた際にそのままでは光らなかったので最終出力に少し明るくするために、値を掛けたものをEmissionに渡して発光するように対応しました。

使用アセット

Kinematic Character Controller

キャラクターの移動に使ってます。
最近無料になったみたいなので3Dでキャラクターを動かしたい時は検討してみてもよいかも知れません。

Grabbit

ステージの一部

今回はたくさんのオブジェクトを乱雑に置く必要があり、傾けたりする必要がありました。
その際によく起こるのがオブジェクト同士の食い込みや不自然な浮きでした。
気にしなければ良い話ではあるんですが、それにしても回転したり移動したりが多発し、配置だけで1weekが終わってしまう勢いでした。

このGrabbitは、物理的を効かせつつ配置することができます。

Place Mode

回転させたり、落として配置することができ、且つ自然な配置ができるのでとても時短になりました。

Arbor3

状態管理できるステートマシンを簡単に実現できるアセットです。
今回、様々な状態を切り替えたり、フラグなどの状態を見て動きを変えるということが多い仕様だったので採用しました。

パーツを持ってきてくれた時のAI君の会話分岐

過去に参加したu1wで作った作品でも使っていました。
「なにかのフラグが立ったら何かする」や「特定の当たり判定にプレイヤーが入ったら何かする」みたいなこともノーコードで簡単にできます。
もちろん、足りない機能は自分でオリジナルのステートを作って拡張することも容易です。

今回は、
・AI君の表情切り替え
・会話パート
・画面フェードの切り替え
・プレイヤー入力の有効無効切り替え etc…
などなど、10個ほど自作ステートを作りました。

結果

絵作りや雰囲気はこだわった部分でもあるのでそこだけでも良い評価がもらえて貰えてよかったです。

まとめ

今回は1週間ゲームジャムどころか、3週間もかかってしまいました・・・。
次回はもう少しミニマルに作ることを意識しながらも、雰囲気良いものを作っていければなと思いました。

では、次回のu1wもがんばりましょう。

いいなと思ったら応援しよう!