4.1K Views
December 16, 24
スライド概要
Unreal Engine Meetup in Osaka Vol.03にて弊社 長尾、山田、村嵜が登壇した際に利用したスライドです。
https://indie-us-games.connpass.com/event/332960/
株式会社Indie-us GamesのDocswell公式アカウントです。
新卒3⼈がMetaMe ワールドを作ってみた!
はじめに 内容 ● 本スライドは、Indie-us Gamesの2024年度新卒⼊社メンバーが OJTで経験した開発体験談をまとめたものです。 ● OJTでは、現在配信されているメタバースサービス「MetaMe」にて、新 しいワールドを1つ開発する課題に取り組みました。 ● その際の失敗談や知⾒について ゲームデザイナー、プログラマーの視点で発表させていただきます。 注意 ● ゲーム開発初級者向けの内容です。 ● UEの技術⾯はあまり触れられません。
⾃⼰紹介 株式会社Indie-us Games 2024年度新卒3名 ながお りょうご ⻑尾 亮虎 ● ● ● チームリーダー∕ゲームデザイナー UE歴:4年 X:@DHDNR やまだ ゆうき ⼭⽥ 裕貴 ● ● ● プログラマー UE歴:5年 X:@yu4ki20 むらさき まさし 村嵜 征⼠ ● ● ゲームデザイナー UE歴:1年未満
MetaMeとは? 「MetaMe(メタミー)」とは 株式会社NTTドコモが技術提供し、株式会社Relicが運営 している、メタバース(仮想空間)を活⽤したメタコミュ ニケーションサービスです。 特徴 ‧プラットフォーム:スマートフォン、PC ‧基本プレイ 無料 ‧クラウドレンダリングなのでブラウザ上で どこからでも遊べます!
On The Job Training(OJT)課題 新卒3⼈を主体にMetaMeの新しいワールドを作ろう! Indie-us Gamesの先輩社員と密に連携を取って、 「少し無理をしないとできないこと」に挑戦しよう! ※On The Job Training(OJT)とは 職場での実務を通じて知識やスキルを習得する⼈材育成⼿法のこと
⽬次 発表テーマ①:ワールド∕体験の構築 発表テーマ②:AI∕複雑なAI作成の苦戦と学び 発表テーマ③:ユーザーと環境を意識したコンテンツ開発
発表テーマ① ワールド∕体験の構築
コンセプト メタバースの企画は初めて…。メタバースっぽい体験って? メタバースのイメージ ● ライトユーザーが多い ● 誰でも楽しめるコンテンツ ● ⼈との交流が多い ● みんなで体験を共有 体験のベース =「交流」 交流が⽣まれやすい空間が作れれば 良いワールドが出来そう!
コンセプト 最初のコンセプト:つい交流してしまうワールド 公園のように 中⼼に広場があって… 誰でも簡単に遊べて… 様々な遊びで 囲まれてて… 互いの⼲渉から 交流が発⽣する ワールドを…
プロトタイプ プロトタイプができました! ● 開発期間1か⽉ ● ミニゲームは7種類! ● 誰でも簡単に遊べる! できました!
プロトタイプ 早速、先輩社員に遊んでもらいます 遊んでみてください! 新卒 先輩社員
プロトタイプ ⾯⽩くない! 新卒 先輩社員
失敗点 失敗点 ● ● ● 遊びがシンプル過ぎて⾯⽩くない リプレイ性がない ワールドに特徴がなく、 どんなワールドなのか分からない 交流しそう…?なそれっぽいワールドは出来たが 中⾝の⾯⽩さが全く出来ていなかった… 「遊び」「交流」「世界観」の観点から企画を⾒直す
企画修正:「遊び」の設計 はい … ⾯⽩くない!リプレイ性がない! 先輩社員 誰でも楽しめる ≠ シンプルで簡単に遊べる = 直感的で分かりやすい 直感的で分かりやすいミニゲームを研究しよう!
企画修正:「遊び」の設計 社内で好きなミニゲームを募集 ⇒ MetaMe環境に合う遊びを抽出 ⇒ ミニゲームを分解‧再設計 ⇒ スコアを競う体験を追加 7種のミニゲーム 何度も遊びたくなる体験に改善!
企画修正:「交流」の設計① ユーザー同⼠を「交流させる」のは難しい ⇒ ⼈が繋がるキッカケが⽣まれやすいコンテンツを⽤意 ⾶んできてたボールの⾏⽅を辿ると遊んでいる⼈を発⾒! 気になるモノを追いかけたら、その先で出会いが! ⼈が出会いやすい環境を構築!
企画修正:「交流」の設計① 実例:ワールドを動き回る特殊なAIを⽤意 ① ⼈の注⽬を集める ● 動いているモノに注⽬が集まりやすい ● ⼈を集め、出会いやすい状況を作る ② 常に動きのあるワールドに カニロボ ゴミラ ● 常に空間に変化を与え、飽きづらく ● プレイヤー以外をターゲットにして動くように設計 ワールド上のプレイヤー数に関わらず動作 ③ 追いかけた意味があるAIに ● AIにリアクションとストーリーを実装 ● 追いかけるだけでも楽しめるAIに
企画修正:「交流」の設計① AIの⾏動概要 (ぜひワールドで観察してみてください!) ココナッツを回収 ココナッツを⽣成 ココナッツを捧げる ワールドにばら撒く ココナッツが⼀定数溜まると プレイヤーに嬉しいイベント発⽣
企画修正:「交流」の設計② ワールドはなるべく⼩さく、⾒通し良く! 障害物がなく、開けた空間を設計 ● ⾒渡せば誰かが⾒える ● 少し歩けば誰かに会える ● コンテンツがすぐ⽬に⼊る ⼈を⾒つけやすいレベルデザイン!
企画修正:世界観 はい … ワールドに特徴がなくて⾯⽩くない! 先⾏して作って貰った3Dモデルどうしよう… 使わないわけにはいかないし… カニロボ カニ ⇒ 海 ⇒ 島… 南国! カニに合いそうな【南国】をテーマにするなら…?
企画修正:世界観 【南国】をテーマの世界にするならコンテンツはどう合わせる? バッティングセンターで 野球ボールを打たず ココナッツを打たせたら…? ピッチングマシーンは ココナッツを投げて来て… VS レーンバトルでプレイヤーが守る物が ココナッツなら、敵はヤシガニ… ココナッツを回収する カニロボvsヤシガニの対⽴構造…
企画修正:世界観 構想した世界観を 先輩社員に相談&デザイン依頼 結果、⼤量のアイディアが創出 世界観に特徴やバックストーリーを作ることで アイディアを出す取っ掛かりが⽣まれた ⇒ デザイン制作がスムーズに進⾏
企画修正:世界観 特徴的な世界観が出来た!
プロトタイプから2か⽉… 先輩社員に遊んでもらいます 遊んでみてください! 新卒3⼈ 先輩社員
めっちゃ良い!⾯⽩い! 何度も遊びたくなる! etc. 新卒3⼈ 先輩社員
まとめ 失敗①:「メタバース」っぽい体験を⽬指した メタバース = 分野‧体験する環境 体験するコンテンツのエンタメ性とは関係がない Point!! 先に、⾯⽩いコンテンツ∕体験を考える ⾯⽩さを維持して環境に合わせた仕様に落とす 失敗②:プロトタイプに時間を掛けすぎた 出戻りが⼤きく、リカバリーが⼤変だった Point!! ⾯⽩いかの検証は、シンプルなプロトタイプで検証可能 ザックリ作ってすぐに先輩に遊んでもらおう! まずは⾯⽩さを追求! 簡単なプロトタイプで検証しよう!
発表テーマ② AI∕複雑なAI作成の苦戦と学び
AI∕複雑なAI作成の苦戦と学び 1. 作成したAIの概要 2. 動かなくなるAIたち 2.1. 原因 2.2. 対策 3. より良いAI作成のために 3.1. BTの分割 3.2. EQSの活⽤
作成したAIの概要
作成したAIの概要 カニロボ ゴミラ
作成したAIの概要 カニロボ ● ココナッツをフィールドのある場所に 運ぶロボット。 ● フィールドに落ちている ココナッツを集める。 ゴミラ ● ココナッツが⼤好きな⽣き物。 ● フィールドに落ちている ココナッツを集める。
作成したAIの概要 カニロボとゴミラの関係 ● カニロボは⼀定数以上ココナッツを持ったゴミラを ⾒つけると追いかける。 ● 追いかけられているゴミラは、⼀定時間おきに持っているコ コナッツを落とす。
作成したAIの概要:フロー図 カニロボ ゴミラ
作成したAIの概要 思ったより複雑!
・・・ ・・・ 動かなくなるAIたち
動かなくなるAIたち AI開発中に1番悩んだこと AIたちが動かなくなる!
動かなくなるAIたち:原因1 原因1:NavMeshがない場所にAIが向かおうとする。 ココナッツに向かおうとするが NavMeshが敷かれていない!
動かなくなるAIたち:原因2 原因2:特殊パターンでのバグ ● カニロボとゴミラが同じココナッツを 同時に拾おうとする。 ● ココナッツを拾っている最中に対象の ココナッツが消える。 ● ⽬的のココナッツへの移動中に対象の ココナッツが消える。 ● 原因不明の問題で移動に失敗する。
動かなくなるAIたち:対応策1 NavMeshのない場所にAIを向かわせない ● プレイヤーが⼊れてAIが⼊れない 場所は要注意! ● NavMeshを敷かないだけでは 不⼗分な可能性がある。 ● AIの移動⽬標がNavMeshのない 場所にならないように気をつける。
動かなくなるAIたち:対応策1 NavMeshのない場所にAIを向かわせない 具体的には ● ⽬標となるオブジェクト(ココナッツ)を削除する ボリュームを作成。 ● プレイヤーが⼊れてAIが⼊れない、NavMeshのない 場所に配置 ● AIの移動失敗によるスタックが改善された。
動かなくなるAIたち:対応策2 Nullチェックや⾏動ロジックの遷移条件の⾒直し ● 特定のオブジェクトに対する処理 (ココナッツを拾うなど)ではNull チェックを⾏う。 ● ある動作中に別の動作に遷移しても 問題ないか、⾏動ロジックの 遷移条件を再確認する。 検知 遷移条件 次動作へ
動かなくなるAIたち:対応策3 定期的なロジックリセット ● 定期的にAIのステートを通常状態に 戻す。 ● ⻑時間動き続けるAIであるため、 動かなくなった時のセーフティーと して有効。 ● 体感的に動かなくなったまま⽌まり 続けることが減った。
より良いAIを作るために
より良いAIを作るために ビヘイビアツリーを分ける:Run Behavior ● 別のビヘイビアツリー(サブツリー) を実⾏できるタスク。 ● UE標準で準備されているタスク。 ● 複数のAIでビヘイビアツリーの 使いまわしが可能になり、汎⽤性が ⾼くなる!
より良いAIを作るために BTを分ける:Run Behavior Dynamic ● 実⾏中に別のビヘイビアツリー (サブツリー)を割り当てることが できる。 ● BehaviorTreeコンポーネントの SetDynamicSubtree関数を利⽤する ことでサブツリーを割り当てることが できる。 ● AIの⾃由度が広がる!
より良いAIを作るために EQS(Environment Query System)の利⽤ ● 環境からのデータの収集を⾏える。 ● 収集したデータを元にスコア化を ⾏い、⽬的地の決定ができる。 ● 状況に合わせて⾏動する臨機応変な AIを作成することができる。 ● 実はまだExperimental (実験的機能)
より良いAIを作るために 意外と使いやすい! ● スコア化の設定がシンプルで 分かりやすい。 ● スコア化の基準となるもの (コンテキスト)を複数登録できる。
より良いAIを作るために 意外と使いやすい! ● EQSTestingPawnを利⽤すれば、スコア化結果が 可視化され、簡単にテストが可能。
より良いAIを作るために 意外と使いやすい! ● BTに簡単に取り込むことができる。 ○ サービスとして実⾏ ○ タスクとして実⾏
より良いAIを作るために EQSの可能性 ● 「スクエア‧エニックスにおけるUNREAL ENGINE 4を ⽤いた⼈⼯知能技術の開発事例」 ○ UNREAL FEST 2016 OSAKAでの講演。 ■ Youtubeで公開 ○ EQSを拡張することでもっと⾃由度の⾼いAIの作成を 可能に。 参考:https://youtu.be/BV2GTGbSjq8?si=oGlKL33avJLk4uBj
まとめ ● 複雑なAIの作成は難しい! ● AIが動かなくなった時の対応策。 ○ NavMeshを確認。 ○ ⾏動ロジックの遷移条件を⾒直し。 ○ 定期的なロジックリセット。 ● BTを分割して汎⽤性の⾼いAIの作成を! ● EQSを利⽤して⾃由度の⾼いAIの作成を!
発表テーマ③ ユーザーと環境を意識したコンテンツ開発
私たちが届けたい体験って? IUG-Resortのコンテンツの⼀つ バッティングセンターの体験って? ● ● 投げられたボールを タイミングよく打ち返す ➡ 「ボールを打った、打てなかった」の 結果がシンプルでわかりやすい ホームランを打つ ➡ 打った打球が遠くの的に直撃する ‧ ‧ ‧ IUG-Resortで提供するコンテンツ= 誰でも直感的に遊べて、繰り返し遊びたくなるコンテンツ
プロトを遊んでもらって‧‧‧ ⾯⽩くない! ⾯⽩くない理由 ● ● 打てない→すぐにゲームが終わってしまう 難しい →タイミングが合わない タイミングゲームはMetaMeに向いていない コンテンツで体験してもらいたいことが、何も体験できない状況…
改善するために①ユーザーを知る MetaMeをプレイするユーザーって? 誰かとゆるーく コミュニケーションを取りたい シンプルな操作で遊びたい 様々な体験を求めている 1つのコンテンツだけではなく、多くの物事に触れたい =次々と別コンテンツへ移ってしまう
プロトを遊んでもらって‧‧‧ ⾯⽩くない! ⾯⽩くない理由 ● ● 打てない→すぐにゲームが終わってしまう 難しい →タイミングが合わない タイミングゲームはMetaMeに向いていない ユーザー⽬線:遊べないなら別のコンテンツに移ってしまう
改善するために②プレイ環境を知る クラウドレンダリングを利⽤したマルチプレイで繋がれる環境って? Webブラウザ上で 気軽に誰かとコミュニケーション可能 クラウドレンダリングを利⽤しているため、 ⼊⼒遅延(ラグ)が⽣じてしまう https://www.unrealengine.com/ja/blog/pixel-streaming-deli vering-high-quality-ue4-content-to-any-device-anywhere 気軽にマルチプレイ可能だが、 シビアな判定や細かい操作には適していない環境
プロトを遊んでもらって‧‧‧ ⾯⽩くない! ⾯⽩くない理由 ● ● 打てない→すぐにゲームが終わってしまう 難しい →タイミングが合わない タイミングゲームはMetaMeに向いていない 環境:厳密な判定は難しく、ユーザーに不快感を与えてしまう
ユーザーや環境を意識した設計① ユーザー層や環境に合わせた適切な設計を 実現するためのアイディアとは? 課題:環境による操作性とコンテンツの難易度
ユーザーや環境を意識した設計② 実現可能なもの(今対応できる改善策)で 体験をより向上させるものはどれかで判断する ● Hitの判定を広くとる →ラグに対応、プレイ時間増加 ● スイングする⼿前でボールがスローになる →ボールを打つ難易度は下がるが、 体験への影響が⼤きい
実際に完成したコンテンツ 改善策を取り⼊れたコンテンツ ぜひIUG-Resortに遊びに来てください!!
まとめ ユーザーや環境を意識したコンテンツ開発 =届けたい体験を 「より向上させるために必要なモノ」を考えること ● ユーザーがコンテンツに触れる最中だけでなく、コンテンツに触れた前後も重要 ➡「難しい」や「遊べない」と感じるとユーザーはすぐに離れてしまう ➡ まずはコンテンツ(体験)を⾯⽩いと思わせる設計を! ● クラウドレンダリング環境でのコンテンツ開発の課題(⼊⼒遅延) ➡ 判定を広くとる、投球をスローにするなど改善策はいくつかある 体験をより向上させる策を実装し、コンテンツの質の向上も図った ➡ いかなる環境でも、設計次第でコンテンツの体験はより良いものにできる
宣伝 IUG-Resort 配信中です! ぜひ遊びに来てください! https://official.metame.ne.jp ご清聴ありがとうございました