ささみ雑記帳

少し長くなりそうな色々を書き留めておくためのノート。

一週間ゲームジャム(お題:「あつい」)に参加した話

生きてました。おはようございます。
この度は一週間ゲームジャムに参加したので、振り返りなどしたいと思って戻ってきました。

一週間ゲームジャムに参加しました

一週間ゲームジャムに久しぶりに参加しました。
今回はお題「あつい」ということで、肉を焼くゲーム「にくぶぎょう」をつくりました。

f:id:sasanon:20180912002052g:plain

前回参加はお題「フロー」のときなので、色々久しぶりな感じですね…
仕事が忙しかったりで完成しないターンが続いていたのですが、今回はちょうど時間の取れる時期だったこともあり、完成させられてよかった。

技術解説的な話も書こうと思ったのですが、長くなりそうなので、まずはどんな感じに進めていったのかをザクザク書いて記しておくことにしました。

自分で作業した工程

  • 企画、仕様策定(テキストにごりごり書くだけ…)
  • プログラム(DOTween以外は素Unityで。VisualStudio使用)
  • 作曲(BGM打ち込み。Cubase使用)
  • モデリング(肉。Metasequoia使用)
  • シェーダ(肉シェーダ、煙(加算+歪み)シェーダ。VisualStudioやサクラエディタ使用)
  • シェーダ用のテクスチャ、マップ作成(PhotoShop使用)
  • ステージ配置
  • (雑なスケジュール管理)

アセット等で外部に頼った部分

  • フォント
  • 効果音
  • ボイス
  • イラスト(人の絵)
  • 汎用UIアイコン

各日程でやったこと

1日目(月曜日)

企画立案
最近マイブームの加算歪みシェーダの表現をまだまだ試したい欲があるので、 炎や煙を表現できる暑さ、熱さの方針で焼肉を検討。
モデリングの試作
拾い物の肉テクスチャを貼ったりしつつ、最終的に肉シェーダを試作。 当初不可能と考えていた、肉の焼き色が表現できることを確認。

2日目(火曜日)

肉シェーダ拡張
肉の色問題が解決しそうなので、ゲーム化を視野に入れて肉シェーダを拡張。焼き加減でシームレスに色が変わるようにした。
ステージを簡単に配置。

3日目(水曜日)

アニメーション作成
焼き色表現ができそうなので、ゲーム中で一番行うことになる「肉を返す」操作アニメーションを検討。Animation系コンポーネントも考えたが、面倒になり、最終的に全部DOTweenで実装。

4日目(木曜日)

肉シェーダ再拡張
肉を返せるようになったので、面毎に焼き加減を個別に持たせる実装の必要性が浮上。肉シェーダを更に拡張して対応。
参照関係の構築
皿と肉、肉と鉄板の参照関係を作り始める。かなり難航。

5日目(木曜日)

肉の循環をつくる
肉を可変数オブジェクトとして、皿から肉を供給、肉を食べる処理を実装。皿の配置はいろいろ試作し、皿レーンをつくってそれを複数並べる形に決定。皿を送るアニメをDOTweenでつくり、皿送り時に肉を乗せるリセット処理を書く。
シーンの循環をつくる準備
タイトルUIを仮でざっくりつくる。フォントの素材を探し、焼肉屋なので和風傾向で、タイトルロゴ用と地の文用で仮決定。

6日目(木曜日)

シーンの循環をつくる
いわゆるゲームフローをつくる。昨日つくったタイトルUIに加えてリザルトUIを簡単につくり、シーン遷移を実装。
今回はシーンという状態単位ではなく、シーン間を遷移する変化をDOTweenで書いてそれをメソッドに閉じ込める風にしたところ、以前の参加時よりかなりあっさり書けた印象。タイトルもリザルトも基本Canvas内のUIしか触らないから、Updateをシーン毎に細かく割る必要はないんですね…勉強になった。
参照関係周りのバグ修正
いろいろ挙動が変なので、皿と肉、肉と鉄板をはじめ、参照関係を再整理。参照関係はもうちょっとスマートに書けるようになりたい…力不足感。

7日目(木曜日)
ゲームフローができて完成すること自体は確定したので、この日に入った時点で残作業は明確でした。

サウンド
ここへ来てやっとサウンドを入れる。サウンド入れ込み作業は今回はやや行き当たりばったりで、想定より時間が掛かってしまった。反省点。
フォント同様和風傾向でサウンド素材を探した結果、漢らしいボイスがあったので使わせて頂くことに。BGMは単純な和太鼓ループ音源を探してみたが、豪華すぎたりして少し合わない感じがしたので、今回は自分でつくった方が早いと判断し、Cubase打ち込みで自作。 スクリプトで入れ込み作業中、効果音も必要な部分が浮上したので、肉を焼く音や火が弾ける音を追加で探して入れる。

バランス調整的な作業
食べたときの焼き加減によってスコアを変える対応。バランス調整はだいぶ雑になったかも。ごめんなさい。

操作に対するレスポンスの充実
2日目に入れていた仮の人絵をいい加減ずっと仮すぎるので、いらすとやから探す。表情変化を念頭に探し、酔っぱらいというこの上なくドンピシャなイラストに差し替えることに。食べたとき表情を変化させて戻す処理を追加。
また、せっかく肉の表裏面ごとに焼き加減パラメータを持っているので、鉄板に接する面の焼き加減に応じて、煙パーティクルをモクモクさせる。白多め(水蒸気)~灰少なめ~黒多め(焦げ)という感じ。プレイヤーに危機感をもたせ操作誘導する。

アップロード作業 スクリーンショット撮影、サムネ用の動画撮影、非公開状態で仮アップロードしてWebGLでの動作確認。

振り返ってみて

2日目くらいまでは完成するなんて思ってなかったです。
最初に肉表現できない問題が立ちはだかって、次にアニメーション苦手すぎて肉がつかめない問題が道を阻んで、それから参照関係で長時間悩んで、…よく完成しましたねこれ。

私はプログラマ寄り知識セットなので、視覚的表現で高クオリティを狙うのが苦手なのですが、今回は最初からシェーダーでどこまで行けるかという切り口だったので、見た目クオリティもなかなか拘れたのは大きい成果でした。

今回は特に肉の色(とその変化)を表現するためにシェーダーを書いたので、その過程も記録しておきたい気分。シェーダー楽しいよ! 皆もシェーダー書こう。

おまけ(制作とあまり関係ない話)

今回使わせていただいたボイス、実は個人的に聞き覚えがあって、まさかみ自然保護区さんのスクールアイドルランナーで使われていたと記憶しています。…いやまさか、こんなタイミングでこのボイスに再開するなんて…と謎の感動を覚えていました。
…同人ゲームをよくやるクラスタか、コミケの同人ゲー戦利品配信よく見るクラスタにしか伝わらない話ですねこれ。伝わる人にだけ伝われ。