ゲーム開発環境のオープン化や販路の整備によって切り開かれた、個人・小規模チームでゲームをつくって配信する「インディーゲーム開発者」という生き方。本連載は、日本でインディーゲーム開発者として活躍する人々を紹介し、どのようにしてゲームをつくり、どうしてゲームという表現を選んだのかを聞くシリーズである。
今回は第4回として、海洋アクションアドベンチャー『グレイシャード』を開発中のStudio Snowblindに話を聞いた。デザイナーとしてゲーム業界に入り、インディーゲームという文化に出会い、それを学ぶためにパブリッシャーに転職後独立したStudio Snowblind渋谷氏。UnityのHDRPというリッチな描画環境を用いて開発している水中アクションゲームについて、どのようなツールを使って制作したのかその制作過程に迫る。
インディゲームに魅了されパブリッシャーへ、その後独立し開発者の道に
CGWORLD(以下、CGW):自己紹介と開発タイトルの概要をお教えください。
渋谷:Studio Snowblindの渋谷と申します。現在、『グレイシャード』という海洋アクションアドベンチャーを開発しています。6500万年後の未来の海を舞台に、進化した鳥として戦うゲームです。タイトルの『グレイシャード』は造語で、氷河(glacier)という単語を動詞が変化した形容詞として使うニュアンスでつけました。
私のこれまでの経歴を説明しますと、まず受託開発のゲーム開発会社で10年ほど働いてました。2012年頃にインディーゲームの黎明期が来て、『Papers, Please』や『Hotline Miami』などのインディゲームが出はじめ、それらに触れてみた時に衝撃を受けました。今まで仕事で関わってきた大規模なゲームとは全然内容が違っていて、こんなに斬新な新しいゲームがあるんだっていう驚きがあったんです。
それからインディーゲームに対する興味が強く湧いたのですが、その頃はまだ日本国内にインディーゲーム開発に関する仕事が少なくて、パブリッシャーに転職しました。まずはローカライズやパブリッシングでユーザーにインディーゲームの世界をお届けしたいという気持ちがあり、パブリッシャーの立場からインディーゲームの文化に触れようと考えていました。その後、このゲームを作るために独立し、今ではフルタイムで開発をしています。
CGW:ゲーム作りのスキル、例えばUnityやDCCソフトの学習は、独学で進めていたのでしょうか。
渋谷:Unityに関しては、フルタイム受託開発から離れる頃にはまだ本格的に普及しておらず、当時は「Unity4」を触っていました。職種的にはインディーパブリッシャーではありましたが、技術ヘルプとしてプロジェクトに関わることも多く、プログラマ兼テクニカルアーティストとして参加していたので多少の知見があったんです。
CGW:ゲーム開発会社で働いていたころの職種を教えてください。
渋谷:もともとはプログラマーがメインだったんですが、趣味でアート系のツールを使っていたこともあり、アートチームの手が不足した時にアーティストからUIアニメーションを作ってほしい!、こういうの作れる?!みたいに頼まれることがあって、徐々に二足のわらじ的な業務内容になっていったんです。もともと色々触ってみたいなという風に思っていたので、ゼネラリスト的なスキルセットが活かせるインディー開発者の方が自分には合っているように感じています。
ワークフロー、制作環境に迫る
CGW:開発にはどんなツールを使用していますか?
渋谷:スカルプト、いわゆるハイポリ表現ではZBrushを使ってます。リトポロジとUVアンラップまで進めて、そこからテクスチャはSubstance Painterと、一部Substance Designerスマートマテリアルを使うパイプラインで進めています。モデルをfbxで書き出したら、Blenderでリギングとスキニングを行い、アニメーションを作り、最終的にfbxでUnityに持っていっています。LODに関してはBlender標準のDecimateモディファイアやLevel Of Detail Generatorなどを使用して一部を自動化しています。
CGW:ゲームエンジンとしてはUnityを使用していて、HDRP環境であるということですが、加えて背景制作やVFXなど色々とツールを活用されているということですね。
渋谷:はい。まず背景に関してはQuixelというフォトグラメトリ・ライブラリを使用しています。Epic Gamesのツールなんですけど、Unityもサポートしているので使っています。
CGW:Quixelを扱うにあたって、自分で作ったものとの調整など、難しいポイントはどこですか?
渋谷:色味が全然違うので、そのまま置いても全然色が合わないことがあります。そこで、基準となるテクスチャを一つ用意しておいて、Photoshopで色調を合わせています。アセットによると思うんですけど特に今回「海」という限定された環境に全て合わせていくので、テクスチャの調整は必須かなと思います。
エフェクトに関しては、フリップブックの制作に特化したVFXのツールEmberGenを使用していて、泡や気泡といった海中の演出に使っています。
CGW:負荷のことを考えてフリップブックを活用されているのですね。
渋谷:最近、リアルタイム向け流体シミュレーションとしてZibraというツールが出てきたりして、ボリュメトリックな泡の表現も現実的な選択肢になりつつありますが、やはり負荷的には高めです。本作はアクションゲームなので、60FPSは切りたくなくて。表現力も大事なんですけど、ゲーム性に悪影響がないというのが大前提なので、フリップブックを多めに使っています。
CGW:新しいツールも使われているのですね。
渋谷:ツールは新しめのものを使っていますが、出力結果は結局フリップブック、つまりは普通の静止画データです。途中でエンジンやツールを変えても使えなくなったりすることもない利点がありますね。新しいツールですが技術としては古いというか。
CGW:パーティクル周りは従来のシステムだけではなくて、VFXグラフを活用しているということなんですね。こういった3Dのツールを選んだ理由を教えてください。
渋谷:インディーゲームの開発って、パブリッシャーがつく場合、つかない場合など、状況によって変化が激しいので、あまりにも新しすぎるツールだと使える人がいなかったり、リソース確保が難しいので、業界標準のツールを使うというのが念頭にありました。
業界標準としてハイポリをやるならZBrushだよねっていう空気がありまして、じゃあ自分でもやってみようと思いまして。独立して1か月〜2か月ぐらいですかね。自分で触ってみて、メインキャラクターなど細々と作ってみたんです。そこでなんとなく作れるレベルになって、これならラーニングも早いし、業界標準のツールでツールセット、ブラシなど色々なものが入手しやすいということもあって採用しました。
CGW:パブリッシャーを経験したからこその発想ですね。
渋谷:アウトソースをお願いする時にツールによっては、下位互換がないものもあってバージョンによっては開けないこともあるんですよね。ツールを標準化しても、そのあたりは悩みの種です。
CGW:他には何を使用していて、なぜそのツールを選んでいるのか教えてください。
渋谷:テクスチャツールに関しては、もっとも業界でポピュラーなSubstance Painterをメインに使用していました。僕自身前職でSubstance Painterを使っていて本当に使いやすかったので、プロジェクトが始まる時点でテクスチャリングについてはSubstance Painterを使うことは決めていました。
CGW:Blenderを採用したのはなぜでしょうか?
渋谷:Blenderに関しては、僕がそこまでMAYAに詳しくなかったというか、テクニカルアーティストとしてツールやプラグインを作ったりはしていたんですけど、実際にそのモデリングツールとしてMAYAを使ったっていう経験もほとんどでなかったのでもう最初からBlenderで習熟してしまっても、大差がないなっていうところで決めました。
CGW:Substance Painterは本作のテーマである"海洋"の表現において、使い回しが効くそうですね。
渋谷:そうですね。Substance Painterのスマートマテリアル機能にはずいぶん助けられました。ハイポリから曲率やアンビエントオクルージョンなどのマップを自動生成し、影になっている箇所に自動的にウエザーをかけてくれるので、スマートマテリアルをいくつか作ってしまえば、ドロップするだけで質感周りは全部用意できるので、すごく使いやすいです。
CGW:BlenderとZBrushを活用されているとお聞きしたのですが、これは周囲に使ってる人が多かったからなのでしょうか。
渋谷:どちらかというとインディーゲーム制作者としてBlenderを使っている人が多かったのが理由ですね。パブリッシャーとして働いていた4~5年の間技術サポートとして実際にプロジェクトを拝見したり開発のヘルプに入ったこともあったんですけど、使われているツールがほとんどBlenderだったっていうところもあって。それであればBlenderを使うことでアウトソースに出す時も、多分スキルセット的に使える人を見つけるのは難しくないだろうなと思ったんです。
CGW:プレイヤーのPCスペックはどのくらいをターゲットにしているのですか。
渋谷:本作の必要環境としては、GeForce GTX 980やGeForce GTX 1060、GeForce GTX 1650くらいで遊べるようにしています。私が使っているノートPCがGeForce GTX 1650 Mobileなので、これで動くというのを一つの目安にしています。
メインの開発環境はGeForce RTX 3080を搭載したデスクトップです。自分である程度の動作チェックを行う必要があるインディー開発者として、手元に少しロースペックな環境も用意しておくのはお勧めです
CGW:後々コンシューマに移植することも考えるとそういう点も重要ですね。
渋谷:去年のBit Summitに出展する際にSteam Deckを扱うKOMODOさんから開発機をお借りして、もしデモ版が動くなら動かしてみようかな、ぐらいの感覚でやってみたらぬるぬるに動いたので最適化していて良かったなと思いました。製品版もSteam Deckに対応するかどうかはまだ未定ですが。
CGW:今からゲームを作りたいっていう人は、どれくらいのスペック買った方がいいですか?
渋谷:悩ましいですが、一つわかりやすい指針としてはVRAMはたくさんあったほうがいいなと思います。テクスチャーツールを使う場合、VRAMが足りなくなったらSubstance Painterが落ちちゃったりするので。僕は3080の10GBなんですが、実際、VRAM不足でよく落ちます。3090にしておけばよかったなとちょっと後悔してますね。あと、SSDはなるべく早い方がいいですね。SATA接続ではなくM.2のものが欲しいですね。
美しいビジュアル表現と、ゲームとしての機能性の両立
CGW:色々なツールを使って本作を構築する中で、特に大変だったところはどこでしたか。
渋谷:一番時間がかかってるのはアニメーションです。アクションゲームのアニメーションはゲームプレイの気持ち良さにも大きく関わってきますし、敵の攻撃のタイミングや読みやすさにも関わるので手が抜けないんですよね。
グラフィックの手作り部分については、まあ小規模開発だしなって許してくれる部分もあると思うんですけど、アクションゲームでアニメーションの品質が低くてカクカクした動きでは納得してくれないかなと。アニメーションにはプロの技術が必要で安く作れるものではないし、難しいですね。
そして本作ではキャラクターが人間ではないので、UnityのHumanoid Rigを使えないんですよ。それでGeneric Rigを使っている大変さもありますね。Humanoid Rigなら色々とUnityの便利機能が使えたり、Blenderでも様々な便利機能が使えるんですけど、Genericになった途端に機能が少なくなってしまう。まだ主人公キャラならいいんですけど、それ以外の魚などのキャラは全然ダメで……。アニメーションの反転すらできない。なので、自動的に反転バージョンを生成したりする自動化処理をBlenderで作っています。
CGW:Unityでもアニメーション周りをある程度自動的に作ってくれるプラグインも増えてきましたが、そういったものは使われていますか。
渋谷:Tail Animatorというアセットがすごく使いやすくて。敵キャラ、揺れモノなどに使用していますね。植物に関してはまた別のThe Visual Engineっていうツールを使っています。
例えばキャラクターが近づいたら草が倒れる、風によって木々が揺れるなどのインタラクションに対して草などのアセットを対応させることができます。このツールに含まれているアセット以外でも、大抵の3DモデルはThe Visual Engineに対応したアセットに変換できます。これを海中のサンゴやイソギンチャク、海草などが生えているところに使っています。これはGPUベースなのであまりCPUを使わないんです。動作が非常に軽いっていうのも利点ですね。
CGW:他に取り入れているシステム系のアセットはありますか。
渋谷:敵などのNPCキャラクターのAI制御にBehavior Designerを使い始めました。もともとはハードコードで作っていたんですけどやっぱり制作スピードが遅いっていうのと、あと敵がステートの間に落ちちゃったりしてデバッグのコストが高かったので、途中で乗り換えました。直感的でない部分もあってラーニングカーブは少し急ですね。
CGW:本作はUnity HDRP環境で制作されています。HDRPならではの演出などはありますか。
渋谷:「Adaptive Probe Volumes」という機能がHDRPに搭載されています。これはUnity版のUnreal EngineのLumenのようなもので、ワールド空間に配置されたプローブで間接光を表現する技術です。以前のワークフローでは手でシーンに置いたりしたのですが、この機能ではGPUパワーを使って網羅的に置くことができます。ライトの情報をプローブごとに焼いて、それによってピクセル単位でグローバルイルミネーションを計算するっていう技術なんですけど、動作が軽いんですよね。HDRPではライトを置けばボリュメトリックフォグによる光の散乱を表現してくれたりディレクショナルで頭上から光が差すような表現ができたりと、リッチな表現が可能です。
作り始めのころは、リアルタイムCGの中でも比較的新しめの表現、例えばSubsurface Scatteringのような、半透明なオブジェクトに対する光の処理をうまく使えばかなりリッチな表現できるんじゃないか…と思ったんですけど、開発を始めると制約が多くて大変でした。特に本作の舞台には人工物が存在せずかつ水中ですので、メタリックな質感のオブジェクトがない時点でPBRの利点のひとつがもう消えてしまっています。水中には水たまりやガラスがなく、反射で画を盛るといったある意味定番のテクニックが使えませんから、これはやらかしたかな?と思ったりもしました(笑)。その上、水中ってゲームの技術が進化してきても、リアルタイムCGはまだ実写と区別がつかないレベルにはなっていないなと思っています。本作ではリアルタイムで水中表現を行っているので、リアルタイムじゃない3DCGでよく使われる流体表現は負荷的には難しいので、その点でも制限がありました。
水中のビジュアル表現は未だに試行錯誤を続けてるんですけど、フォトリアルなカラーグレーディングに寄せていくとプレイヤーが疲れちゃうんですよね。水中が大きなゲームの中のおまけ程度であれば、短時間潜るだけなので極端な画作りをしても良いとは思うのですが、本作のように水中だけで何十時間となると、飽きてしまったり、目が痛くなってしまう。ある程度はフォトリアルなビジュアルを維持しつつも、ゲームプレイが快適になるように調整していますね。
CGW:そういった意見は、展示を通してフィードバックを受けたのでしょうか?
渋谷:それもあるのですが、どちらかというと同業者の方からフィードバックをいただくことが多いですね。本作はRedditなどの海外フォーラムで開発の進捗を上げることが多いのですが、たとえばカラーグレーディングについても、実際の海中のような青みがかった設定だとずっとゲームはできないと言われたりしました。それは目の色素が人によって違うことに関連しているかもしれなくて、虹彩の色素が薄い方にとっては青いビビッドな色は痛く感じるのかもしれないな、と思いました。
CGW:写実的な表現にこだわるだけではなくて、見やすくする調整をされたわけですね。その他でご自身の趣味・趣向で採用した色味などビジュアルデザインはありますか。
渋谷:グローバルフォグに対するライトの散乱の大きさを盛り気味にしてます。海中は空気中に比べると不純物が多いじゃないですか。なので、光が不純物によって散乱しやすいんですよ。それを加味して、空気中よりも少し高めの係数のパラメーターを入れたりしてます。フォグのボリューム自体も昼夜の変化に合わせて切り替えています。フォグの量は夜のシーンも同じですが、届く光を調整しています。また海洋生物の質感も少しリアルから離していて、ややギラついてるというかラフネスは盛ってます。こうするとアクションゲーム的に敵との距離感が掴みやすいので。
CGW:本作は魚群が印象的です。それについてはシミュレーションをかけているのでしょうか。
渋谷:魚群はGPUを活用しています。Compute ShaderでGPU側に座標の計算をさせて、グラフィックの描画だけVFXグラフでUnityのビジュアルエフェクトに流し込んでいます。そのシステムは自分でコードを書いて作りました。
これがその画面で、大体16,000匹ぐらいのシミュレーションしてるんですけど、Visual StudioでCompute Shaderを書いてVFXグラフにデータを渡しています。世間的にはUnity ECS(DOTS)のほうが主流かもしれません。Compute Shaderによる実装は高速で数が出せる反面、物体の検知や回避が難しいというデメリットもあります。
CGW:この魚群づくりは論文や文献などを参考にして作られたんですか?
渋谷:文献は参考にしていますが論文レベルではないですね。それっぽく見えるように作っています。とにかく処理負担を低くしたいので、非常に簡易的な三角関数レベルで作れる部分はそうしています。
CGW:ご自身で多くの要素を制作されていますが、その他の部分で制作を手伝っているパートナーさんや、会社さんはありますか。
渋谷:パブリッシャーと契約をした1年ほど前から、アセットの一部外注をお願いしています。キャラクター周りは作業が重いので、海洋生物や敵性生物の、ハイポリモデリングやリギング、アニメーションの一部をお願いしたりしています。音楽もプロのミュージシャンにお願いしてますね。
CGW:サウンド周りについて、海中世界という世界観を表現してもらう際に気をつけていることはありますか。
渋谷:まず、効果音は自作というか、音源のライブラリを購入して自分でミキシングやマスタリングをしています。UnityのAudio Spatializerプラグインを使ったり、リバーブや減衰率は海中の環境に近いものにして、効果音は3D再生設定にしてキャラクターが攻撃を当てた場所に音源を配置するなどしています。
音楽に関しては担当して下さっているミュージシャンの方が沖縄の民謡にインスパイアされた曲も手掛けられている方なので、そういった特色を生かし、自然の雄大さと共に怖さ、荒々しさも表現するような作曲をお願いしています。
「6500万年後の地球」壮大な世界観に秘められた戦略と想い
CGW:「6500万年後の地球で新たな生物を操作する」という壮大な世界観はどのように着想されたのでしょうか。
渋谷:私はインディーゲームの重要な点として、他のゲームとテーマが被っておらず独自性があることだと感じています。年間何千本というゲームが出る中でテーマが被ってしまったり、同じようなゲームになってしまうと、それだけでユーザーに手に取ってもらうのは非常に困難です。
たとえば「近未来」ってサイバーパンク、スペースオペラなどのメインストリームでもよく使われる題材ですよね。ところが「遠未来」となると、また手付かずな領域なのかなと。映画などでも滅多にないし、ゲームもそんなに作られていないというところで、このテーマでやってみようと考えました。現代から6500万年後にして、もはや人工物が残っていないような時代の設定としました。
CGW:これまでのパブリッシャーとしての活動を通じて、割と理論的に題材やキャラクターを選んでいるということでしょうか。
渋谷:おっしゃる通りですね。まず作りたいジャンルを考えたときに、私のスキルセット的に三次元空間を自由に移動できるアクションアドベンチャーがいいんじゃないかと最初に思い立ちました。そして、そういったゲームを作る場合に一番障害になるのは、「プレイエリア」をどう表現するかだったんです。例えば舞台が空中となると、無限には移動できませんから、ミッション領域的なものを作らなきゃいけないですよね。
あと前職で空中戦オンリーのロボットゲームに携わった際、操作キャラクターが人型ロボットだったんですが、足があるなら地面に降りたいという意見を結構目にしまして、自分のゲームではビジュアル的な納得感も重視したかったんです。海の中であれば、海の中を歩きたいという欲求はゲームデザイン的にもプレイヤー側にもないので解消できますし、海の中なのでプレイエリアは空中とは違って構造的かつ、視覚的に表現できる、という問題の解決から、舞台を海の中にしました。
CGW:今回のキャラクターは鳥がベースになっていますね。鳥がお好きなのですか?
渋谷:よく聞かれるのですが、最初は特にそうでもなくて.....。ただ、作ってるうちに愛着がわいてきましたね。文献を読んだり生体的な特徴などを調べたりしているうちに、すごく魅力的な生物だなと。
私は作家性の強いゲームが好きで、もちろんAAAも大好きなんですけど、作り手個人の顔が見えるようなタイトルが好きなんですよね。前職でポーランドのゲーム開発者が集うイベントに参加した際、向こうのコミュニティのパーティーでいろいろとお話を伺ったんですけど、彼らの中ですごくポーランドのアイコニックな作品、つまりポーランドのゲームと言えばこれというのは『This War of Mine』だと。ポーランドは歴史的に戦火に巻き込まれることが多かった土地で、多くの市民が犠牲となりました。私がお会いした開発者は当事者世代ではないかもしれないけれど、親やその上の世代から戦争体験を直接聞かされてきたからこそ作れたゲームだなと思うんですよ。
それで、自分だけの原体験をベースにゲームを作ることを考えました。私が北海道の極東の地で育った体験が落とし込めるのではないかと。知床の自然がすごく身近で冬はめちゃめちゃ寒いんですよね。マイナス30度にもなる。亡くなる方も多いです。同級生が雪や寒さで命を落としたりしたこともありました。一方でシマエナガやタンチョウといったファンタジーから抜け出してきたかのような生き物たちも同じ場所に息づいている。そういった大自然の、脅威と驚異が隣り合う感覚を表現したかった。
CGW:未開拓なジャンルに原体験という感覚を当てはめて、今の形になっていったのですね。
取捨選択がインディーゲーム制作の難しさ
CGW:インディーゲームクリエイターとしてゲームを作っていく大変さについてお聞かせいただければと思います。
渋谷:やはり、取捨選択の難しさはありますね。インディーと称するゲーム会社の中でも規模が大きいものだと億単位の予算、下手すると二桁億円っていうタイトルもあるなかで、本当に小規模な、例えば個人開発と比較すると、予算や人のスケールが100分の1、1000分の1くらい違うんですよね。
なので、大予算タイトルと同じことを低予算でやろうとするとどうしても劣ったものになってしまうので、リソースをつぎ込む部分を絞って「ここだけに突っ込む!」というポイントを見極めることは心がけてます。この作品だと、「海中アクション」にリソースを投じて、それ以外の部分については割り切っていますね。
CGW:パブリッシャーとしてPLAYISMからリリースされますが、これは早い段階で決まったのでしょうか?
渋谷:おかげさまで『グレイシャード』の制作発表をした際に、いろいろなパブリッシャーさんからお声掛けをいただいたり、こちらから声をかけたりしました。世界各国からお声がけをいただきましたが、PLAYISMさんに決めたのは、前職でそのローカライズの品質に感動したことが多々あったからです。また、時差が少ないというのも理由にあります。パブリッシャーと物理的に離れていたり、時差があったりっていうのは日本だと辛いし、海外パブリッシャーだと英語で契約書を締結しなければいけないのもリスクです。
CGW:この記事をご覧の方にメッセージをお願いします。
渋谷:もともとゲーム産業で仕事をしていましたが、私がちょうどゲーム業界に足踏み入れた2000年代のゲーム開発って一子相伝のような、先輩の技術を自力で学んで自分で覚えるみたいな部分があった様な気がしていて、もちろん座学などはあるんですけど、実践的なノウハウは業界に飛び込んで自分で経験しないと学べないみたいなのがありました。
しかしながら、現在はゲームエンジンも本当にオープンになり、誰でもすぐにゲーム開発を始められますし、アクセスできる教材も多いです。本当にすごい時代になったなっていう風に感じます。記事を読んでいただいた方の中に「こういうゲームを作りたい」というアイデアがあるなら、それをすぐに形にできるような時代になりつつあるので、ゲーム作ってみたいなっていう方は経験問わず自分の可能性を探ってほしいと思いますね。
CGW:ありがとうございました!