18K Views
June 03, 23
スライド概要
講演アーカイブ:
https://youtu.be/b9Nw0LEhSUo
講演内容:
インディー開発をしていくにあたって経験した「ゲーム開発を続けていく生活」と「UEでの開発事例」についてお話しします。
モチベーション論や日々の過ごし方などの「日常編」と、実際に一人で開発する際の、設計やプロジェクト進行に関する具体的な失敗経験を交えた「プロジェクト事例編」の二段構えでお届けします。
講演者:
Sig(インディーゲームクリエイター)
3Dアクションゲーム『Link: The Unleashed Nexus RH』についてはこちら:
https://www.reminiscedev.com/
UNREAL FEST 2023 TOKYO 公式サイト:
https://unrealengine.jp/unrealfest/2023/
Unreal Engineを開発・提供しているエピック ゲームズ ジャパンによる公式アカウントです。 勉強会や配信などで行った講演資料を公開しています。 公式サイトはこちら https://www.unrealengine.com/ja/
インディーゲーム制作・しくじり事例紹介 &よきゲーム開発生活を続けるには? インディーゲームクリエイター Sig 1
インディーゲーム、開発してますか? 2
自己紹介 Sig インディーゲームクリエイター +フリーランスでいろいろ 3
自己紹介 ● UE+サウンドミドルウェアの活用例について電子書籍・記事を執筆 ● UEを使用したVtuberさんのモーションキャプチャ、シーン作成など 4
Link: The Unleashed Nexus RH ▲今回はこのプロジェクトを例にして開発事例をご紹介します! 5
Link: The Unleashed Nexus RH ● 開発体制 コアメンバー ゲストクリエイター キャラクターイラスト シロピーさん さま @L_shiro_p Sig 弦楽器演奏 磯村ショウノ さま 以上だ!! @shaunoisomura https://www.isomurabrothers.com 6
今回の講演は…… UE5.0時点での情報です 開発中の個人的な体験 &所感に基づきます 7
おしながき ● 第一章:インディーゲーム開発における精神論 ● 第二章:しくじり事例紹介(プロジェクト編) ● 第三章:しくじり事例紹介(技術編) 8
インディー開発における最大の恐怖 9
・ゲームデザインの破綻 ・チームの空中分解 ・致命的なバグ 10
心が折れてしまうこと 11
第一章: インディーゲーム開発における精神論 ● 開発、活動サイクルの話 ● モチベーションのお話 ● スケジュールのお話 ● 自己管理のお話 12
モチベーション、ありますか? ● 開発するため、行動するために必要なモチベーション ● 開発のすべては「行動力」があることが前提 ● 時間的なコストとは別に、 「行動力」というコストを考えてタスクを組もう 13
モチベーション、ありますか? 検証やバグ取りを ついつい後回しにしてしまう…… UEに追加された 新しい機能について勉強しなきゃ… と思いつつしてない ▲未リファクタリング状態のBP… 14
モチベーションを見つめ直してみよう! ● 異常を感じたらメンテナンスに入ろう 15
脳科学から見るモチベーション 作業は進むけど集中しきれず ケアレスミスするかも ドーパミン主体 注意力は向いているけど 気がのらない… ノルアドレナリン主体 集中力、注意力共に万全! 天才すぎるな… バランスが とれている状態 16
つまり、精神論とは精神論ではない ● すべては脳内で起こっている現象に過ぎない ● 「エラー」なので、取り除くことが可能 ● 作業環境を整えて、快適な開発を! ● それでもダメなら食べて寝よう!(栄養的、健康的な問題の可能性があるため) 17
デフォルトモードネットワーク! ● 休息中やぼーっとしている時の脳の状態 ● 脳内で情報整理が行われている ● これは脳の「問題解決能力」が高まっている状態 ● つまり、問題をDMNに持ち越せば勝手に脳が解決してくれる!!……はず! 18
脳のモード切り替えを把握する デフォルトモード ネットワーク サリエンス ネットワーク セントラルエグゼクティブ ネットワーク 休息・整理 注意・感知 思考・集中 問題の自動整理 問題の顕在化を 行っておく 19
行動記録の話 ● 行動したこと、学習したものの記録をつけておくとなにかと便利 ▲行動記録例 ● 仕事やタスクの記録は後々なにかと役立つ →開発ペースを把握して、マイルストーンを立ててみよう 20
イベントに出そう ● イベントへの参加でお尻に火をつけよう ● 自分では動かせない締切を作ることで、否応無しに手が動く ● 「強制力」を存分に利用しよう!(つらいけど) 21
第二章: しくじり事例紹介(プロジェクト編) 22
● 開発中のプロジェクト紹介 23
しくじりA-1: 思い描く作品に恋をしすぎた 24
思い描く作品に恋をしすぎた ● 「せっかく気合を入れて作るんだから、妥協のない作品にしよう!」 「ぼくのかんがえたさいきょうのゲーム」は完成するのか……? 25
思い描く作品に恋をしすぎた ● 理想は無限に高まる一方なので、妥協点を作ってあげる必要がある 26
思い描く作品に恋をしすぎた ● スクラップ&ビルドを繰り返しすぎて、プロジェクトが進まなくなる (画像) ▲ボツになったステージの数々 27
思い描く作品に恋をしすぎた ● 開発が進み技術力がついてくると、開発初期の要素が見劣りしてくる 結局アセットを作り直すことに…… (もちろん、クオリティは向上するので悪いことばかりではない) 28
思い描く作品に恋をしすぎた ● 開発が進み技術力がついてくると、開発初期の要素が見劣りしてくる アセットを製作する ゲームへ実装し、 他のアセットを製作 技術力が上がり、 以前作ったアセットに 違和感を覚える このループから抜け出せない……! 29
しくじりA-2: アセットをほぼすべて自家製で まかなおうとした 30
アセット、どこまで自分で用意する? ● アセットに対する「自分の哲学の余地」を考えよう 地面のテクスチャ 空の表現 亀裂表現のデカール 哲学度:低 →マーケットプレイスのアセットを 利用することも考える 31
アセット、どこまで自分で用意する? ● アセットに対する「自分の哲学の余地」を考えよう 瓦礫のモデル スキルのエフェクト ポストプロセス エフェクト 哲学度:中 →マーケットプレイスのアセットを改変して利用しよう 一部自作テクスチャを使ってオリジナリティも上げてみよう 32
アセット、どこまで自分で用意する? ● アセットに対する「自分の哲学の余地」を考えよう キャラクターモデル &アニメーション 立ち絵イラスト ステージBGM 哲学度:高! →1からフルスクラッチで自作しよう! もしくは発注して唯一無二のものを作ってもらおう! 33
第三章: しくじり事例紹介(技術編) 34
開発経緯 ● 開発初期動画~現在までのゲームプレイ動画、お見せします 35
しくじりB-1: 手当たり次第にレベルを作ってしまう 36
手当たり次第にレベルを作ってしまう ● モックは大事 ▲仮組み状態のステージ 37
手当たり次第にレベルを作ってしまう ● キャラクターの移動範囲をはかる「ルーラー」BPを作成 38
手当たり次第にレベルを作ってしまう Construction Scriptでステージ作成の補助! 敵キャラが地面に埋まっている…… このままでは不具合の元になる 「浮遊キャラである」というチェックボックスを 入れることで、 自動的に不具合の起きない高さを確保する 39
手当たり次第にレベルを作ってしまう Construction Scriptでステージ作成の補助! 40
手当たり次第にレベルを作ってしまう ● Editor Utility Widgetもとても便利! オリジナルのレベルデザインツールを作ってみよう 「Editor Utility Widget」の公式ドキュメントはこちら https://docs.unrealengine.com/4.26/ja/InteractiveExperiences/UMG/UserGuide/EditorUtilityWidgets/ 41
コードはすべてブループリント製 プレイヤーキャラ BP製! ステージギミック BP製! 敵キャラとその挙動 BP製! 42
しくじりB-2: BPクラスの設計が明瞭ではない 43
BPクラスの設計が明瞭ではない 継承イメージ BP_Enemy_Gazer BP_Enemy BP_Enemy_Gazer (強化タイプ) BP_Enemy_Angel 44
BPクラスの設計が明瞭ではない ● 機能をほどほどに分割するのが良い (多機能で肥大化した神クラスを作らない) ● 各クラスの機能を把握し、類似クラスを作らない (機能をドキュメント化しておくと良い) 45
BPクラスの設計が明瞭ではない ● サウンドマネージャークラスが別にサウンドマネージャーではなかった事例1 なんかここのBGM、 再生開始のタイミングがおかしいな…… BP_SoundManagerくん たしかBGM管理は「SoundManager」だったはず。 BGM流れるタイミング変えてくれる? 46
BPクラスの設計が明瞭ではない ● サウンドマネージャークラスが別にサウンドマネージャーではなかった事例1 そこ担当してるの私じゃないです… 私はステージ後半のBGMだけ流してます… BP_SoundManagerくん BP_BGMManagerくん なんで同じようなクラスが ふたつあるの?? 私がステージ前半のBGM 流してます! 47
BPクラスの設計が明瞭ではない ● サウンドマネージャークラスが別にサウンドマネージャーではなかった事例1 ここもBGMが鳴るタイミング 変えたいな……! …… BP_BGMManagerくん じゃあ「BGMManager」くん、 BGM流れるタイミング変えてくれる? 48
BPクラスの設計が明瞭ではない ● サウンドマネージャークラスが別にサウンドマネージャーではなかった事例1 えっ、特に仕事してないんですけど…… BP_BGMManagerくん BP_LevelManagerくん このステージでは 私がBGM担当です! じゃあなんで「BGMManager」 配置したの? じゃあ全部LevelManagerが 担当すればよくない? 49
BPクラスの設計が明瞭ではない ● 機能に対する主権を明らかにしておこう! BGMは私が管理します ステージ進行の 管理だけやります 音響エフェクトの ON/OFFだけやります BP_BGMManagerくん BP_LevelManagerくん BP_SoundManagerくん 50
しくじりB-3: アニメーションブループリントの設計 51
アニメーションブループリントの設計 ● 構造(スロット、ステートマシン) 52
アニメーションブループリントの設計 53
アニメーションブループリントの設計 ● キャラクターのボーン構造の変化 54
アニメーションブループリントの設計 ● キャラクターのボーン構造の変化 55
アニメーションブループリントの設計 ● キャラクターのボーン構造の変化 56
アニメーションブループリントの設計 57
アニメーションブループリントの設計 ● ABPは自分で触ってみないと全体の設計が難しい ● プロジェクトごとに最適な設計が異なる ● 何度か作り直すのもやむを得ないかも! ● とりあえず組んでみよう! 58
しくじりB-4: バージョンをまたぐ際に壁にぶつかる 59
壁に当たったらどうするべきか? ● 動画、ドキュメント、フォーラム総当り ● バージョン移行事例 60
まとめ ● しくじり上等! でも心は折れないように ● 上手な転び方をして次につなげよう 61
Steamストアページ公開! 62
Steam NextFestに出展! 63
開発頑張ろう! ご清聴ありがとうございました! 64
https://docs.google.com/forms/d/e/1FAIpQLSeDV82fexeTl9jgXWBFBjCzn8vseBMWpKgUxYzWhmEhFQT8aQ/viewform https://docs.google.com/forms/d/e/1FAIpQLSeDV82fexeTl9jgXWBFBjCzn8vseBMWpKgUxYzWhmEhFQT8aQ/viewform アンケートへのご協力をよろしくお願いします https://docs.google.com/forms/d/e/1FAIpQLSeDV82fexeTl9jgXWBFBjCzn8vseBMWpKgUxYzWhmEhFQT8aQ/viewform 65