エピック ゲームズ ジャパンが主催するUnreal Engine(以下、UE)の公式イベント「UNREAL FEST 2023 TOKYO」が、6月2日(金)3日(土)の2日間にわたってベルサール秋葉原(東京・秋葉原)で開催された。

初日は開発規模や分野を問わないUnreal Showcases、2日目はUNREAL FEST初となる、インディーゲーム開発者にスポットを当てたIndie Focusという構成だった。記事では、2日目にスペシャルトークステージ(STAGE A)行われたセッション「「LinkRH」インディーゲーム制作・しくじり事例紹介&よきゲーム開発生活を続けるには?」の模様をレポートする。

記事の目次

    イベント概要

    UNREAL FEST 2023 TOKYO

    日時:6月2日(金)~3日(土)
    場所:ベルサール秋葉原
    unrealengine.jp/unrealfest/2023

    開発過程で経験した「しくじり」を共有し、開発を続けるためのノウハウを伝授

    本講演を担当したのは、フリーランスのインディーゲームクリエイターであるSig氏@sleepyslowsheep)。

    現在まで約5年間、ゲーム『Link: The Unleashed Nexus RH』(以下、『LinkRH』)の開発中に経験した失敗談をに、インディーゲームの開発を続けるために必要なノウハウを伝えるという内容だ

    ※本講演内容はUE5.0時点での情報です。

    『Link: The Unleashed Nexus RH』

    『 Link: RH 』/ 個人開発 3Dアクションゲーム PV【 Steam ページ公開 】
    www.reminiscedev.com

    『LinkRH』の開発はSig氏がひとりで行なっており、ゲストクリエイターとしてキャラクターイラスト・シロピーさん(@L_shiro_p)氏、弦楽器演奏・磯村ショウノ(@shaunoisomura)氏が参加している。

    数年前に独学でUEを使い始め、気がつけばインディーゲームクリエイターになっていたというSig氏

    インディーゲーム開発のほかにも、フリーランスとしてUEを利用したVTuberのモーションキャプチャなどの活動もしており、UEにサウンド機能を拡張するミドルウェア「CRI ADX2」使い方を解説した電子書籍『CRI ADX2でつくるUnreal Engine 4サウンドエキスパンション』(無料公開中)も執筆している。

    ▲Sig氏の自己紹介に使われたのは、開発中のLinkRH画面

    インディー開発における最大の恐怖は、「心が折れてしまうこと」

    ンディーゲーム開発には、いくつもの恐怖が存在する。ゲームデザインの破綻に途中で気いてしまったり、直せないような致命的なバグが出たり、開発チームが空中分解したりなど、怖いものを挙げるとキリがない。だが、Sig氏がもっとも恐れているのは「心が折れてしまうこと」だという

    「インディーゲームはやめてしまったら、何も完成しないんです」(Sig氏)

    プロジェクト上の失敗やミスはよほどのことがない限りは原因を特定でき、解決法が見つかるものだ。しかし、モチベーションの低下はもちろん、生活が破綻してしまうと、開発が止まるという最悪な結果に終わ。では、モチベーションを低下させないためにはどうすればいいのか?

    Sig氏の場合、自身のモチベーションが保たれているのかどうかは、頻繁に確認するようにしているという。これをUEのBlueprint(以下、BP)に例えると、モチベーションが下がっている場合、解決策として「作業環境を見直す」または「休憩する」などの処理を実行することで、自身のモチベーションを回復させるのだ。

    ▲自身のメンタルケアをするためのBPを組んでみるとすると?

    これは無理やり「モチベーションを上げろ」という精神論ではなく、やる気が出ないのは「脳内で起きているエラー」だと考え、除去可能なエラーとして捉えることで気持ちを楽にするという、心が折れないためのノウハウのひとつである

    それに加えて、脳の「デフォルトモードネットワーク」を利用するのもオススメしているデフォルトモードネットワークとは、休息時やぼんやりしているときの脳の状態のことだ。人間はリラックス時や眠っている間に脳が自動的に行なっている情報整理によって、解決法が見つかることもあるという

    「煮詰まったら、寝思える心の余裕をもつことも、開発者のモチベーションを保つためには必要なことだとSig氏は語る。

    ▲人間の脳は優れているので、困ったら寝てしまうのもひとつの解決策

    毎日の行動記録を残すのも、何かと役立つというアドバイスもあった。日付ごと何を開発したか、何を学んだかや、仕事用連絡、休息娯楽などの行動日々記録しておくのである

    開発ログを残せば「今日は頑張った」と認識でき、仕事用連絡は仕事の履歴として活用できる。休息や娯楽の記録も、自身の生活の充実を見返せるため有効だという

    形式はExcelでもGoogleドキュメントでもいいので、ひと言ずつでも毎日の行動記録を残すことをオススメしている。達成感を得るための記録なので、多少盛って書いても大丈夫だ

    Sig氏が最後にオススメする、究極のモチベーション向上方法が「イベントへの出展」

    イベントは開催日が決まっているため、その日までに出展用ソフトを完成させなければならないという、甘えの効かない締め切りがあるイベントへの出展を決めては、当日の朝までつくり続けているという経験をするインディーゲーム開発者も多いという。

    しかし、「そうした締め切りがあることで通常時よりも早い進捗が得られるし、生きている実感も感じられる」とSigは語った。

    面イベントが復活し始めている中、UNREAL FESTのように自作のゲームを遊んでいるプレイヤーのリアクションを目の前で見られるイベントに参加することは、大きなモチベーションの向上に繋がる

    「あるイベントで、私のゲームを試遊した小学生くらいのお子さんから、『なぜこのゲームはジャイロに対応していないの?』と指摘されたことがあって、かなり衝撃を受けました。そのゲームをめて見て遊んだ人が先入観なしの感想をくれることは、計り知れないメリットです」(Sig氏)

    ▲イベントへの出展を決めて、締め切りからくる「強制力」を活用する方法もある

    「思い描く作品に恋をしすぎる」という、あるあるしくじり

    講演の後半は、実際のゲーム開発に関するしくじりの紹介となった。最初に挙げられたしくじりは、「思い描く作品に恋をし」ということ。「せっかくつくるのだから、妥協のないゲームにしよう」という想いが、規模を大きくし、要素を増やし、気がつけばゲームが完成しないという悪循環を生むことがよくある

    過去に開発した2作品は、自身が開発の初心者だったこともありボリュームを抑えて完成させたものの、今作は悪循環の発生により、開発期間が長くなる一方だという

    「理想は無限に高まる一方なので、妥協点をつくらなければ、作品は永遠に完成しない」と、Sig氏は『LinkRHボツにしたステージの数々をお披露目した。「イメージとちがう」「難易度デザインが望ましくない」などの理由でボツにしたステージ数は2桁に達するという。

    ステージ内に配置したギミックやキャラクターは、採用されたステージで再利用しているものの、ボツになってしまえばステージ自体やギミックの配置作業は無駄になる。この二度手間が、開発期間をさらに延ばす原因のひとつになったとのこと

    ▲制作後にボツになった『LinkRH』のステージの一部

    ステージのほかにも、開発が長期化することで序盤から中盤につくったアセットが見劣りするように感じてきて、つくり直しをしたくなるも弊害のひとつだという

    これを始めてしまうと、初期につくったものを中期につくり直し、中期につくったものを後期につくり直すというループに陥る。また、古いアセットと新しいアセットが同じ画面内に映ってると、画風などの統一感もなくなってしまうため、さらにつくり直したくなるという弊害も発生するという。

    このループから脱出するカギは2つあるひとつは、「アセットを外注してしまう」ことだ。資金的に厳しいのであれば、思い切って「開発終盤になってから、アセットを一気につくる」ことも解決策となる。

    ▲左開発初期につくった主人公の旧モデルで、右現在の新モデルかなりクオリティに差が出ているのがわかる。キャラの頭身が変わり、ボーン構造も変化したため、全てのアニメーションおよびアニメーションBPを組み直した

    また、Sig氏はゲーム内に登場する全てのアセットを自作しようとした結果、膨大な時間をアセット制作に使うことになったことを後悔しているという。何を自作して、どこに既製のアセットを使うかの判断基準(こだわりの強さ)を決めておくと、切り分けがしやすくなると経験からアドバイスした

    例えば『LinkRH』では、地面のテクスチャSubstance 3D Painterのサブスクで入手したマテリアルを組み合わせて使ってい。空には天候や時間の変化をつけられる有名なアセット「Ultra Dynamic Sky」を編集して使用した。ただし、作品の設定により独特な空などが必要になる場合自作するべきだと付け加えている。

    つまりこだわりの度合いが低い部分は既存のアセット、高い部分は自作という切り分けを行うことで、適度に自分の作業量を減らすのだ。このようなルールづくりをしておかないと、自分の作業量がなかなか減らせない。

    キャラクターモデルや2Dイラスト、BGMなどは作品の方向性を決める部分のため、自作か外注にこだわり、既存アセットの流用はしないというのが『LinkRH』開発におけるルールだったという。

    ▲人の「行動力」には限度がある。ゲームを完成させるためには、あらかじめ各アセットに対するこだわりの強さ(哲学度)を決めておき、自作するものと既存のアセットを活用するものを切り分けて、作業量を調整しよう

    事前にモックをつくり、レベルデザインすることが大事

    2桁に達するステージをボツにした経験から、Sig氏はグレーボックスやモックを用いてレベルデザインをすることの大切さを説いた。

    手当たり次第にステージをつくってしまうと、ステージの難易度曲線がバラバラになってしまう恐れがある。これを解決するのが、グレーボクシングやモックという工程だ。

    初めからアセットをつくり込むのではなく、シンプルなキューブやメッシュなどを配置して、ステージの難易度や設計をおおまかにデザインしていくのである。Sig氏は当初「モックなんていらない」と思っていた時期もあったが、この工程があるのとないのでは、全然ちがったという。

    ▲開発初期はダミーのオブジェクトを配置してステージを仮組みし、まずはゲームとして成立するステージになっているを検証する。このとき、敵などに関するメモも空間上に添えておくと、なぜそこに配置したのかを忘れずに済むのでオススメだという。画面中央の「StageMock_Shrine」がその例だ

    レベルデザイン時にはモック制作の効率を上げるためキャラクターの移動範囲を測るBP「ルーラー」を作成した。キャラクターの移動可能距離を視覚化してくれるので、足場の配置にかなり役立ったという。「レベルデザインを支援するツールは、早めにつくっておくといいです」(Sig氏)。

    配置したアクタなどの展開には、BPで使用できるConstruction Scriptを用いた。例えば、地面から少し浮いている敵キャラの場合、地面との距離が近ければプレイヤーに踏まれた際に地面に埋まってしまう。

    このような不具合が発生しないよう、Construction Scriptを使用して、敵キャラから下方向にレイを飛ばすことで地形を感知し、地面との距離が一定以下であれば座標を修正する、という機能を作成した。これによって敵キャラが地面に埋まるのを防ぎ、最低高度が保てるようになっている。

    ▲浮遊している敵キャラのGazerが地面に埋もれる不具合を避けるため、Construction Scriptを使用してキャラと地面の距離を一定以上に保つ設定を作成した

    BPクラスはルールを設けて機能ごとにつくる

    LinkRHのコードは全てBP書いているという。キャラクターの挙動やステージギミック、敵キャラとその挙動まで、BPで作成している。しかしBPクラスの設計ルールにばらつきがあったため思わぬ不具合が発生したこともあるという

    例えば、BGMのタイミングを調整するためにBPのイベントを編集しても、修正が反映されないという問題が発生したことがある。調べたところ、「BP_SoundManager」と「BP_BGMManager」という類似したBPクラスが混在していることが原因だった。これをSig氏が把握しておらず、修正に大変時間がかかってしまったという。

    Sig氏が得た教訓は「似たBPを乱造しない」ことだ同時に、「様々な機能を盛り込んだ神クラスを制作しない」ことも強調した。何でもできるクラスは便利な一方で、メンテナンスが困難になり、致命的なエラーが発生する可能性が高くなる。

    BPクラスを作成する際には、各クラスの役割をしっかりと把握し、その役割の仕事だけをさせることがベターであると、Sig氏はアドバイスした。

    似たBPクラスが混在してしまうと、問題の解決が難しくなる。事前にBPの命名ルールや役割分担を決めておくことが大事だ

    バージョンアップで起こる不具合への対処法

    UEは随時バージョンアップが行われているため、ゲーム開発時にはバージョン移行を視野に入れておく必要がある。『LinkRH』はUEバージョン4.15の時代から開発を始め、その後4.22、4.25、4.26、4.27を経て、現在5.0.3になった

    ほとんどの場合は問題なく移行できるが、UE5.0へのバージョン移行ではエラーが発生して、途方に暮れたと話すSig氏。おそらくプラグインなどの影響で、外部ファイルの参照ができなくなったことが原因なのではないかと予想された。

    このときは英語版のフォーラムを片っ端から調べたほか、Visual Studioで手動ビルドを行い、なんとかUE5に移行できたという

    ▲UE本体がバージョンアップすると、それに伴うトラブルが発生することもある。解決しないトラブルはないので、言語を問わず、ネット上の文献を探しまくるのがオススメ

    心さえ折れなければ大丈夫

    自身の経験から、特に開発を始めたばかりの人に多いしくじりを、包み隠さず紹介してくれたSig氏。インディーゲームを開発していれば、手探りでやらなければならないことも多いので、大なり小なりのしくじりは付きものだという。

    でも、心が折れなければ、それらのエラーは必ず修正していけます。心身を健康に保って開発してください」と、Sig氏は伝えた。

    開発者が諦めてしまえば決して完成しないのが、インディーゲーム。だからこそ、開発の進捗以上に、モチベーションを維持して開発を継続することが、ゲームを完成へと導くカギとなる。

    「今回の講演内容を頭の片隅において、同じようなシチュエーションに遭遇したとき、同じしくじりを未然に防いでもらえたら嬉しいです」(Sig氏)。

    講演動画

    「LinkRH」インディーゲーム制作・しくじり事例紹介&よきゲーム開発生活を続けるには? | UNREAL FEST 2023 TOKYO

    講演資料

    © 2004-2023, Epic Games, Inc.
    © 2014-2023 Reminisce
    ​ © Mediascape Co., Ltd. / Reminisce

    TEXT_岩井浩之/Hiroyuki Iwai
    EDIT_李 承眞/Seungjin Lee(CGWORLD)、小村仁美/Hitomi Komura(CGWORLD)