見出し画像

[UCDD]ユニティちゃんドライバーダービーができるまで

これはunity1weekのユニティちゃんドライバーダービー(UCDD)が完成するまでの経緯を記したnoteです。無駄に長いです。


1日目 - 月曜日(アイデア出し)

実家でアイデア出し。お題は「かえす」。以前のunity1weekで内容が決まらず参加を断念したので、1日目でなんとか企画内容を決めたいところ。
とりあえず2つほど案が出る。

①ベーコンエッグトーストをフライパンでひっくり返す物理ゲーム

 技名とか作ってオリンピック種目の感じにしたら面白いのでは?というアイデア。

考えた技表
実家で観ていたオリンピックが影響したのが分かる
「Tenkabito」にはへうげものの影響も見られる

 技名は演出とともに読み上げソフトで読み上げる想定だった。

②シチュエーションを表示してマウスクリック・ドラッグなどで逆転(ひっくり返す)ゲーム

(1)が正解で(2)がダミー。位置を動かしても3ptシュートは入らず逆転できない

①より②の方が面白いと思ったが、シチュエーションのアイデアが多数浮かばない&シチュエーション別の実装が必要になって間に合う気がしなかったので断念。①に決定する。

2日目 - 火曜日(①作成)

タイトルは「Frying Bacon Egg Toast」。卵を乗せて焼いたトーストを「Fried Egg Toast」と呼ぶようなのでそれと飛ぶのを掛けている(おしゃれ)。
              ↓できたもの

地味

いかんせん絵面が地味すぎて不安に。しかも物理ゲームは思ったより難しく、コリジョンが抜けたりして調整に時間がかかっていた。トゥーンシェーダーを使っているので少しはおしゃれに見える。(絵作り対策)

3日目 - 水曜日(①-ちゃぶ台版作成)

ちゃぶ台にしたら絵面も良くなって面白くなるのでは?と思い付きちゃぶ台を作り始める。
             ↓できたもの

うーん

絵面は多少マシにはなったが、「だからなに?」という感想である。
しかもそれと引き換えに余計な問題が色々出てきた。

  • ちゃぶ台がひっくり返ってない(ちゃぶ台なのに)。無意味にひっくり返すのも嫌だ。

  • 作るのが案外大変。アセット探し&コリジョン追加など1つ1つに時間がかかる。

  • 良い技名が思いつかない(持ち味が一つ減る)

  • ここまで来ると食材ごとぶん投げた方が楽しそう(本末転倒)

これらによって①は完全に頓挫。

やはり②で作り直すか悩んでいる時に「もうユニティちゃんでバックドロップ(ひっくり返す)するだけでいいかも。。。?」と思いつく。

さっそく無料のバックドロップ素材を探す。

...がそんなものはない。
わざわざバックドロップモーションを作って無料で提供するような聖人はいないのだった。
ちなみに有料モーションならアセットストアに存在した。

高い(記事作成時点で15,653円也)

二度と使わないようなアセットにこんなお金は出せない。何とかしたいと根気よく探していると...

聖人が...いた!
動画内のドライバーのモーションを流用できるなら何とかなりそう。
どうやらモーション素材はVRChatのアバター用の模様。VRChatのことを良く知らないので色々調べて環境を整える。

VRChatのアカウントを作って、素材の説明書通りにアバターをアップロードしようとすると...

うん?

謎のエラーが発生。どうやらある程度VRChatで遊ばないとアップロードできないようだ。

このアバターで見知らぬ人と会話をしなければならない?
陰キャにはつらい仕様

そもそもVRChatをしたいわけではないので他の方法を探す。
アバターの仕組みをよく調べたらAnimationControllerでモーションを動かしているだけのようだった。
もしかしたらこのモーションをそのままユニティちゃんで動かせばいけるのでは...?さっそく試してみる。

動いた...!(勝利を確信した瞬間)

4・5日目-木・金曜日

リングとそれっぽい背景の素材をSketchfabから入手して配置。カメラから見えない素材は簡単に削除できるものは削除(処理負荷対策)。カメラから見える範囲にポイントライトを付ける。ポイントライトはそのまま使うと負荷が高いので描画結果をベイクするように設定。またリングのロープの一部はカメラの邪魔になったのでにゃんにゃんメッシュエディターで削除。あとはドライバー中の影など綺麗に見せたかったので品質設定など変更した。

旗の上には別途読み込んだUnityちゃんロゴを貼っている
ベイクの設定。最近は処理負荷に気を遣うようになった。
WebGLでも影を綺麗に見せたかったのでHighFidelityに

とにかくUCDDはモーションや見た目のクオリティを上げたかった。(というかそれしか持ち味が無かった)

時間に余裕もないので優先順位を決めて実装する。

■優先度高(必須)
・移動処理、ボタン入力処理など基本的なもの
・モーション作成(ドライバーの受け側、攻撃側・受け側立ち上がり)
・敵AI作成
・ゲーム処理(ドライバーの回数を競う)
・リザルト表示
・音(unity1weekの評価対象だし雰囲気にも大きく影響する)

■優先度低
・タイトル
・観客
・その他の要素

・移動処理作成

キャラクターにCapsuleCollisionとRigidBodyを付けてお互いが重ならないように。キャラクターはX方向にしか動かせず、リング外に出ないようX値を制限。後退はモーション速度を負の値にして実現している。

歩幅を移動速度に合わせるのが案外面倒だった(画面の球は調整時の名残)

・モーション作成

残念ながら「あの技モーション」には受け側のモーションは提供されていない。始めはUnityの標準のアニメーションウィンドウで作成しようとしたが、使い方が全く分からずイメージ通りのモーションをさせられない。

タイムラインを動かすと何故かリングに埋まってしまうトーコちゃん

調べたところUnityのアニメーションツールはいまいち使い勝手が悪いようだった。そこで以前購入していたアセットのことを思い出す。

意識が高い頃に有名だからという理由で購入したアセット
そもそも何に使うかも良く分かっていなかった

使い方を動画で学んで使ってみる。公式動画が存在するのは大変有難い。
多少癖はあったが受け側のモーションや立ち上がりのモーションを何とか作成できた。

Unityの標準アニメーションウィンドウと比べると使い勝手が段違い
(ただ今買うならUMotionが良さげではある)

流石に空中で回転するアニメーションを作るのは難儀なので、攻撃側のキャラクターに受け側のキャラクターをアタッチ(親子関係に)することで一緒に動いてもらうことにする。
なおアニメーション中はキャラクターが重なるのでRigidBodyを無効にしている。しかしUnityではRigidBodyを完全に無効にする方法が無いため、仕方なく必要なタイミングでRigidBodyを削除、追加する仕組みとした。

アニメーションを組み合わせた完成版
リング衝突時にカメラをDOTweenで振動させている
RigidBodyの追加・削除、アタッチ、効果音、終了処理(アニメーション遷移)
などはアニメーションイベントで
ちなみに回転中に受け側の体が垂直になっていくのはゆで理論を参考にした
(画像は悪魔将軍のスピン・ダブルアームによって垂直になっていくジェロニモ)
最終的なモーション遷移
トリガを使った遷移が上手く行かなかったので、boolパラメータを多用している

・敵AI作成

AIは移動、投げをほぼランダムに動かしているのみ。立ち上がり時に確率で投げを発生させるなど多少調整はしている。

6日目-土曜日

・ゲーム処理作成

タイマとドライバー数のカウントをしているくらい。少し物足りなさを感じたので攻撃が当たるとタイマが増える仕組みとラリアットを追加した。

ラリアットはアニメーション中にイベントで手の位置のコリジョンを有効にして衝突判定
テキストアニメーションはDOTweenで再生

・リザルト作成

リザルトは「あの技モーション」の作者様が作成したEmote用モーションを複数の中からランダムで再生している。立ち位置までの移動は少し手数がかかっている。

待ち→振り向き→立ち位置移動などをステップ実行して最後にモーションを再生する
個人的に好きなYGKR Dance。元ネタは不明。

・音

効果音にも手を入れていて、ボリュームを大きくしたり、無音を削除してタイミングを合わせたりなど編集を行っている。使ったツールはAudacity

昔インストールした古いバージョンを使用している
ロシアの企業に買収されたとのことで最近のバージョンは少し懸念がある

7日目-日曜日

・タイトル作成

タイトル画面どうするか。。。とりあえずUIでタイトルを表示してみる。

これは...
収まりがいい!
なんかそれっぽい!
(どこかで見たことあるような気がする)

くらいの勢いでタイトルロゴと略称(UCDD)が決定した。

・観客追加

本当は試合中に応援したりしてにぎやかしになる予定だったが、そこまで実装できなかった。

礼儀正しく振舞う観客たち

どうしようもなくてプレイヤーと一緒に踊りだした観客だったが、静と動のギャップが出て結果的に良かったと言える。

個人的に好きなYGKR Dance。元ネタは不明。

・その他の要素

BGM選択や試合開始アニメーションなどを実装した。本当はレフリーも入れたかったが入らなかった。ちなみに音量調整スライダーはリリース後に入れた。(間に合わず)

入らなかったレフリー
横歩きモーション作成が面倒だったのと、リザルトで何をするかが問題になった

おわりに

・大変だったこと①

3日目までの迷走している状態が一番苦しかった。確信が持てるアイデアが出るまでは動かない方が良かった気がする。(まぁ良いアイデアが簡単に出るなら苦労しないが...)

・大変だったこと②

最後までモーション遷移のバグが出て苦労した。主な原因はモーション遷移開始後に、前のモーションのアニメーションイベントが発生して状態が変化してしまうことだった。モーション遷移についてはスクリプトを完全に分けてきちんと制御する必要を感じた。

・完走した感想

記事を書いて見返してみると全てが行き当たりばったりだったことが分かる。今回は運良く完成できたのかも知れない。もう少し安定したゲーム作りをしたいところ。

・反省点

コメントついてる~ 嬉しいなぁ~
ふむふむ...
あっ...!

モーション作ったところで満足してしまってゲーム性がシンプルになりすぎた模様(コメント付くまで気が付かなかった)。
爪が甘かったな...

まぁ何とか完成したのでヨシ!

ヨシ!

記事内の使用アセット(ゲーム内で使用していないもの)

mottainai.mp3 … 音声さん
②のイメージ図 … いらすとや
ベンチ … Bench
目玉焼き&トースト … Fried egg sandwich
ベーコン … Bacon
フライパン … Simple Object 7: Frying Pan
皿 … Elegant Empty Kitchen Dish - 3D Model
寿司下駄 … sushi
寿司 … (3Dモデル)お寿司
お盆 … 【3D素材_fbx】お盆
急須 … 南部鉄器 急須
ちゃぶ台 … 【VRC,3Dモデル】ちゃぶ台
テクスチャ … Hand Painted Seamless Wood Texture Vol - 6Textures FREE


この記事が気に入ったらサポートをしてみませんか?