以下の内容はhttps://raspberly.hateblo.jp/entry/unity1weekOnlineMeetup20より取得しました。


【勉強会レポ】: unity1week online共有会 #20

勉強会のレポート(メモ)です。
参加したのはこちら「unity1week online共有会 #20

u1w-sharing.connpass.com

ハッシュタグ : #u1w共有会



 

アーカイブはこちら

youtu.be

 

unity1week共有会とは

unity1weekでいろんなゲームを遊んでいると
「どういう実装をしているんだろう」「どんな人が作っているのか」など気になることがいっぱい!

それら気になることを直接聞けばいいじゃん!というのがunity1week共有会の始まりで、
みんなで学んで成長することが趣旨です。

unity1weekについてはこちら

Unity 1週間ゲームジャム | フリーゲーム投稿サイト unityroom

今回は6人の発表者にトークしていただきました。

 

過去回はこちら

lycoris102.notion.site

 

 

以下各LTの感想とか簡単なまとめ

 

LT1 : 『汀の子』の地上と水中を行き来するメカニクスを支える技術とレベルデザイン

ゲーム内のメカニクスレベルデザインの紹介。(一部ゲームのネタバレを含む)

 

水中のメカニクス

水中はSRPとShaderGraphで実装。Unity公式のBoatAttackを参考に。

github.com

「水中にいる」という状態は「プレイヤーは常に地上にいる」として、
水面に触れたタイミングでカメラの追従対象を虚像・実像で切り替える。
プレイヤーは水上で跳ねている

 

「地上と水中のどちらかにある物体」は「全て地上にある」として扱う。
カメラのレイヤーで分ける。

 

背景の魚と鳥はVFX GraphとShader Graphで実装。

 

レベルデザイン

縦横XY軸の二次元だと普通の迷路ゲームにしかならなそうなので、次元を増やした
+水面を高さを変える要素(水面の高さ)、
+C(シアンのレバーを押しているか)、
+M(マゼンタのレバーを押しているか)、
+Y(イエローのレバーを押しているか)、


これにより6次元になり遊びの幅が増えた。
(各パラメータが特定の値の時のみ通れるようにするなど)

 

ただ絵に起こしにくいので、作ってみてからレベルデザインを考えた。
開発中に発生したバグから新しいアイデアにもつながった。

 

 

 

 

 

 

LT2 : unity1weekで、少しでも良く見せるための動きの小ネタ

実装コスト少なめなゲームのクオリティを上げる小技の紹介。

ボタンを動かす

初見だとゲーム画面のどこがボタンかわからない、どこが押せるかわからない。
ボタンの上にマウスを重ねた時に音を出して動かそう。

背景を動かす

マウスなどプレイヤーの操作に合わせて画面を動かそう。
動かすだけでも楽しいと思わせられる。やりすぎには注意。

UIの細かい調整

モーダルなど画面を閉じる時、閉じるボタンだけでなく画面外をクリックするだけでも閉じられるようにする。
ストレス軽減につながり、透明な閉じるボタンを大きく後ろに配置するだけで実装できる。

 

 

 

 

 

LT3 : うなぎを載せずにうな丼を作ってみた

ゲームを面白く見せるための話

 

ゲーム内容はただの運ゲーでも、見た目をよくすることで面白そうなゲームに見せることはできる。
ゲームを「うな丼」に例えると、うなぎがなくともタレの香りだけでおいしそうに感じてもらうことはできる。
そのアプローチ方法の紹介。

 

タレを豪華に

タレ(見た目と香り)の部分を豪華にしよう。

全35パターンの表情差分+アイテム画像+背景画像。
全96通りのセリフ、豊富な選択肢でシナリオの分岐を増やす。
BGMとSEも自前で用意。

 

丼ぶりの部分

プレイヤーに期待させない。

戦略性を煽るようなことはしない。(実際のゲーム内容と乖離しないようにしよう)
中身は運ゲーなので、駆け引きがあるかのような表現にはしない。

 

参加をして得られた知見

駆け引きに手を加えなくても面白くなる。
駆け引きが忙しいと会話を楽しむ余裕がない、かといって会話がメインだと退屈になる、
今回は丁度いい塩梅になってよかった。

 

 

 

 

 

 

LT4 : VFX Graphを活用したコスパ重視のグラフィック作り

VFX Graphと利用例の紹介。

VFX Graphとは

ノードベースでビジュアルエフェクトを作れるUnityの機能。
Unity 6からWebGLでも動かせるようになった。
ノードベースなので複雑なイベント制御などなんでもできる。
ShaderGraphとの連携もできる。
ParticleSystemとは違いGPUで動くので大量に出しても軽い。

 

利用例

  • 敵のグラフィック
  • 撃破時のエフェクト
  • 背景アニメーション

 

いい所

意外と手軽、ParticleSystemよりもカジュアルに組める。
色を変えるだけの再利用もしやすい。
複雑な計算をしているノードのまとまりをSubGraphとして使いまわせる。

 

 

 

 

 

LT5 : ちょっと変わった間違い探しを作った話~Editor拡張・Timeline拡張奮闘記~

 

2つの画面を見比べて間違い探しをするゲームを作った時に、
発生した課題をEditor拡張&Timeline拡張で解決したというお話。

間違い選出候補の設定

Editor拡張で必要なコンポーネントを付与したGameObjectを自動生成するツールを作成。
”間違い”の種類によって必要なスクリプトやアニメーションも違うので、
それらも自動で判別して付与している。

 

シーン内のオブジェクトをインスペクターに参照設定する時、
自動で検索して参照設定するボタンも作成。(手動でやるとミスが出る上に大変)

 

同期再生するドラマにランダムな間違いを含める

間違いではないセリフは同期して再生し、"間違い"のセリフのみ別々で再生する必要がある。
Timeline拡張でこれを実現。

 

クリップの見た目変更や、フォントサイズ変更も行う。

 

まとめ

Editor拡張とTimeline拡張によって、演出の設定が楽になった。
ミスも減る。

 

 

 

 

 

 

LT6 : Gemini CLI+UnityのMCPサーバー(uLoopMCP)を利用して一切コードを書かず、Unity Editorも操作せずにゲームを作る

MCPサーバーを利用してゲームを作るお話。

 

MCPとは

AIが何か他のツールを操作する時に経由する共通規格。
今回はuLoopMCPを使用。

github.com

AIの指示によってビルド・テスト・ログ解析、
Unity Editorの操作(シーン操作、オブジェクト操作など)ができる。
一度指示すれば後は待つだけ。
利用したAIエージェントはGemini CLI

 

開発方針

まず最低限動くものを作る
そこから「1つ」ずつ欲しい機能を指示して作る。
「1つ」作られるたびに自分が手動で動作確認を行う。

 

開発のTips

  • ジェミニの暴走
    デバッグが長引いた末にコード全てを破壊し始めた。
    →困ったことが起こるたびにプロンプトを更新しよう。
  • コンテキストの定期的なリセット
    LLMはある程度コンテキストが溜まると性能が落ちるので定期的に手動でリセット。
  • テスト
    自動テストは一応できるが、今回は手動テストオンリー。
    結局触ってみないとわからないことが多く、今回は手動の方が早いと判断。
    ただし毎回確認するのはしんどいので自動テストは今後の課題に。

 

 

 

感想

どのLTも素晴らしいですが、
個人的に印象に残ったのが「LT2 : unity1weekで、少しでも良く見せるための動きの小ネタ」ですね。
プレイヤーの操作に対してなんらかのフィードバックを返すというのはとても大事。
動かしているという実感が得られます。

 

画面を動かす方法は共有会#18でnattuhanさんが紹介していました。
歴代最速の1分LTなのでこちらもどうぞ。

youtu.be

 


ちょっと近い話に、
共有会#2-AのゆーじさんのLTで出ていた「死んだ画面を作らない」というのがあります。

youtu.be

プレイヤーが操作していない時間も画面のキャラクターや背景は動かし続けるとよいというもので、
背景をUVスクロールさせたり何らかのエフェクトを出し続けるだけでも、
見栄えは大きく変わるのでこちらもオススメですよ。

 

 

 

 

以上です。




以上の内容はhttps://raspberly.hateblo.jp/entry/unity1weekOnlineMeetup20より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14