知識も経験も無いけど好きなゲームを作りたい!~知識ゼロからVRゲーム開発~

6K Views

March 18, 24

スライド概要

Unreal Engine Meetup in Nagoya Season2でLT枠での発表に使用した資料です。
UE何もわからんとこから、どんな感じでUEでゲーム開発してったかをさらっとまとめました。

profile-image

フロントミッションとかAC的なロボ系VRゲームが出るだろうと思ってたけど誰も作ってくれなかったので自分で作ってます。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

知識も経験も無いけど 好きなゲームを作りたい! ~知識ゼロからVRゲーム開発~

2.

■自己紹介 個人ゲーム開発者(?) ぷぷりげす(@pupurigess) 日頃の開発風景 死ぬまでにどうしても人型ロボットパイロットをやりたくて、その 実現の為にUEでVRを作り始めた人。 仕事,家事,育児の合間にVRゲーム「ギアズクロニカル」を開発中

3.

■作ってるもの

4.

■作ってるもの 【ゲーム名】ギアズクロニカル(開発中) 【ジャンル】VRシューティング 【コンセプト】 ロボット好きユーザーが憧れるエース ロボットパイロット体験をVRで実体験! 【開発メンバー】 1人(非エンジニア、非アーティスト) 2021年頃からUE4で開発開始(現在はUE5で開発中) 2023年に当タイトルの試遊版を複数のインディーゲームイベント (UEフェス、ゲームパビリオンjp、ぜんため)に出展して多くの方に体験頂けた!

5.

■開発開始当初 ロボット系のVRゲームやりたい! Unreal Engineていうのを使えば誰でも ゲームが作れるらしい! だがしかし...

6.

■開発開始当初 チュートリアルやったけどUE全くわからん... そもそもゲームって具体的にどうやって作っていけば...? ■開発知識、ノウハウ面 ・そもそも何からやればいい...? ・知識もまだ全然足らない... ■ゲーム素材面 ・ゲームに使うモデル,音声ってどうすれば... ・制作するスキル,ツールもない...

7.

開発知識・ノウハウ不足への対応

8.

■開発知識・ノウハウ面への対応① ・エディタ操作方法や基本知識は覚えたけど、ここからどうしたらいいかわからない... ‣作りたいもの・優先度を整理してタスク管理 ⇒タスク管理ツール(Todoist)でやることを明確化 (1)実装が必要な項目を出来るだけリストアップ (3)優先度の高い項目の内、 対応期間も加味して実際に着手するものを決める (2)リスト化したアイテムを優先順位付け ‣順位付けルール (最優先)ゲームの完成にどれだけ近づくか (第2優先)ゲームの体験の質がどれだけ上がるか (第3優先)ゲームの外観が良くなるか (4)上記1~3を都度見直し⇒リスト更新

9.

■開発知識・ノウハウ面への対応② ・アニメーション?ライティング?マテリアル?まだまだ知らないことだらけ... ‣開発しつつ学習✙知識のストックを増やす ⇒とりあえず手を動かして開発⇒わからなければ調べる ‣着手タスクで必要な機能に絞って調べながら開発 -項目を挙げる際、達成したい機能要件の要素を出来るだけ細分化、英語ソースも含めて調べれば、 多くのことはネットで情報収集、解決できた。 (例:射撃を実装したい⇒①弾丸を発生させる+②弾丸を前進させる+③発生場所に音を出す) -どうしてもわからなければ他の人に頼る(公式フォーラム・コミュニティなど) 但し、教えてくれる相手の時間を浪費させない為に、他人に聞く前には解決したいことしっかり を整理するのが大事(自分の環境、現在の状態、達成したい要件 など) ‣ 日々のスキマ時間で知識のストックを増やす -通勤時間などの隙間時間でUEなどの技術記事を読み漁った。 -最初は気になる技術記事を見つけてブクマしても読み返すことがまず無かった…。 はてなブックマークでタグ付け&コメントをつけて保存⇒後から読み返す様に変更。 ⇒記憶に残る+検索効率が上がるので情報が腐りづらくなった。 -開発に活かせそうな内容はタスク管理リストに追加⇒タスクの優先順位を見直しを適宜実施して 本作のベストな完成像を常にブラッシュアップ

10.

■開発知識・ノウハウ面への対応③ ・それでもやっぱりUEわからん!相談できる相手欲しい...。 ‣生成AIに手伝ってもらう ⇒生成AI(ChatGPT)をメンター替わりにして、開発をサポートしてもらう ‣どんな相談にもいつでも答えてくれる! -(質問)このノードってどういうこと? -(技術記事要約,掘下げ)この英語チュートリアルについて教えて -(企画)セリフ案10個出して -(デザイン)部隊章の仮デザイン案を5案出して -(機能要件,仕様検討)こういう機能作りたいけど、どう作ればいい? -(コーディング)このBPをC++で出して -(トラブルシューティング)エラー出た。何で? ‣無料版はチャットのみだが、有料版はスクショ,ドキュメントが 投げれたり、画像生成が出来る様になる。強い! ‣過去の文脈も蓄積しているので、自分のプロジェクトに寄り添った 回答を出してくれる。 ‣事実と異なることが出力されることも結構あるので、自分で 裏どり+検証が大事!

11.

ゲーム素材不足への対策

12.

■ゲーム素材への対応① ・ゲームの素材ってどうすれば...? ‣市販アセット活用 ⇒まずは極力既存アセットを活用 ‣マーケットプレイス -公式のアセットストア -毎月の無料配布アセットを貯めつつ、大型セール時(5,11月)にまとめ買い (買った物:建物、BGM,SEパック、パーティクルパックなどなど) -公式ページは人気順での並び替えが出来ないので、以下サイトが 探しやすくて結構良かった! 【orbital-market 】https://orbital-market.com/search ‣Mixamo -Adobe社が提供する3Dキャラクターのカスタマイズや アニメーション割当が簡単にできるWebサービス(無料・商用利用可) -幅広いアニメーションが配布されており、ここでかなりのアニメーションを入手できた

13.

■ゲーム素材への対応② ・ゲーム内音声、やっぱりボイスも欲しい... ‣音声読み上げソフト✙スキルマーケットサイトで外注 ‣音声読み上げソフト -思った以上に自然に読み上げてくれる。調整すればかなり違和感少ない。 -収録し放題+セリフをいつでも自由に差し替え・修正できる! -弊作では二つのソフトを場面によって使い分け+ボイスチェンジャーソフトで声質の バリエーション出しを実施。 ‣VOICEPEAK(有償ソフト) -声の感情・イントネーションを細かく調整できるが絶叫系などは苦手。商用利用可 ‣COEIROINK(無償ソフト) -ボイスピ程微調整できないが、絶叫系も対応できるボイスデータが有志で公開あり。 権利関係はボイスデータごとに指定されているので要確認 ‣スキルマーケットサイト -ゲーム・CMなど商業案件実績が多数ある方も多く、そういった方に依頼することができた! -一発撮り(修正は追加料金)が条件とされることも結構多かったりする為、発注時にイメージの すり合わせが重要。自分でセリフを読み上げたガイドボーカルを送付したらイメージ通りの ボイスを納品頂けた!

14.

■ゲーム素材への対応③ ・ゲームに使うロボットモデルだけど、イメージにぴったりのものが無い... ‣頑張って自分でつくった ⇒Blender,SubstancePainterを覚えてモデリング。大変ではあったけど何とかなった! ‣Blender -無料かつ参考情報が非常に多かったので選定 -少しでも作業効率を上げる為に、いくつか有償・無償アドオンも導入 -Pinterest等でリファレンス画像を収集して、それらを参考にデザイン 起案⇒モデリング -3D関係の周辺知識を学習できた事で、その知識がその後の開発に かなり役立った!やっぱり自分でアセット作れるのは強い! ‣SubstancePainter -非常に強力なテクスチャーソフト、こちらも参考情報多い。 -Steamでセール時に買い切り版を購入 -マテリアル選択+パラメータ調整だけで作成モデルの質感が大埴に向上した! -パフォーマンス対策としてハイポリベークも対応できた。

15.

■ゲーム素材への対応④ ・基本的なアニーメーションは揃ったけど、もっといろんな動きが欲しい... ‣UEエディタ内でアニメーション生成 ⇒UEのControlRigを使ってエディタ内でアニメーション生成できる様に ‣学習、実装はそれなりに手間が掛ったけど、一度構築すれば UE内でかなり自由かつ容易にアニメーション生成ができる! ‣移動速度などのパラメータがアニメーションに反映する仕組み も合わせて実装 ‣例示の映像は、ベースの中腰静止ポーズにリグで以下の効果を追加 -手足などの位置をIK,FKで修正 -移動速度に応じた体の姿勢変更 -アニメーションに疑似的な慣性がはたらく ‣動きのバリエーション・自然さが増し、プレイ感が大きく向上!

16.

■そんなこんなで出来た試遊版をイベント出展 ゲームパビリオンjp UNREAL FEST 2023 ぜんため 累計で約100人の方に試遊体験頂けた! 始めてプレイする人の姿を間近で見てかなり多くの気づきがあった。 収集したフィードバックをもとにブラッシュアップしたアルファ版公開に向けて鋭意開発中!

17.

ご清聴ありがとうございました!