
2021年8月24日から26日にかけて、国内最大のゲームカンファレンス「CEDEC2021」がオンラインで開催されました。本稿では、『BLUE PROTOCOL』のキャラクタークリエーションを例に、アニメ表現のキャラクタークリエーションを作るための知見を解くセッション「BLUE PROTOCOLにおけるキャラクタークリエーション ~誰でも簡単!異世界転生のお手伝い~」のレポートをお届けします。
アーティストの視点から見たキャラクリエーションの知見
講演の前半は、バンダイナムコスタジオ 第3スタジオのアーティストで、『BLUE PROTOCOL』のキャラクリエーションやフェイシャルの仕組みなどを担当する松尾行恵氏が行いました。
『BLUE PROTOCOL』は、バンダイナムコオンラインとバンダイナムコスタジオが共同で開発するPC向けオンラインアクションRPGです。2021年8月時点も開発が続行中で、2020年にクローズドβテストが開催されました。

同作のキャラクリエーションは、まず最初に性別を選び、次に3つの中から好きな顔タイプを選択。そして選んだ顔タイプに紐づけられたものの中から好きな体形を選びます。身長と肉付きはスライダーで調節でき、肉付きはスライダーで大きく変わるところとそうでないところの緩急が大きめになっているとのことです。
また、アートディレクター・奥村大悟氏のたっての希望で、キャラメイク画面はアニメのキャラクターの設定画のように全身図を正面と背後から、顔のアップもさまざまな角度から見たものが同時に表示されます。これにより、作っているキャラが自分好みに仕上がっているかどうかが、都度カメラを操作することなくひと目で確認できます。
こうしたレイアウトは、作成中のキャラを全身確認用に2体、顔確認用に3体の計5体を用意し、それぞれの前にカメラを配置。それを2Dテクスチャーとして画面に表示しています。


次に、キャラクリエイトを担当するチーム体制が紹介されました。チームは企画、エンジニア、アートディレクターを軸に、キャラクター班、モーション班、UI班の3班が編成されています。キャラクリエイトはすべてのプレイヤーが最初に触れる"ゲームの入り口"でもあるので、クローズドβテストテストまでは週1回の頻度で打ち合わせを実施。コロナ禍以降も、オンラインで打ち合わせを行っているとのことです。
1人のアバターのパーツは、髪、上半身、下半身、手、足、帽子、後頭部、顔パーツ群、アンダーウェアの全9部位とアクセサリで構成されています。このうち、衣装として交換できるのは上半身、下半身、手、足、帽子です。

本作のようにキャラクリエイトに力が入ったゲームでは、アバターの着せ替え、コーディネートも大きな楽しみのひとつです。それを存分に楽しんでもらうべく、衣装の各部位にはネイキッドパーツも用意して着脱可能になっています。これらを、体や顔の起点となるアセットに合わせてアバターが形作られます。
体型は男女ともにS、M、Lの3種類が用意されており、スライダーで身長を調節するとそれに合わせて頭の大きさや肩幅が適宜変更されます。これらは、奥村氏が用意した"理想の体型"を参考に、それに合わせて変わるようになっています。
また、S体型とM体型の違いはサイズ感が主となりますが、L体型は男女ともにやや筋肉質になるため、専用のモデルアセットが用意されています。

衣装の着合わせについては、差分のモデル作成と容量削減のため上下を1セットのアセットとして作成。グローブとシューズは装備によって4段階の長さが設定されており、上半身の装備、下半身の装備と干渉する部分は非表示にすることで対応。ただ表示を消すだけでは装備の太さの違いに対応できないので、接続部にしぼりを入れてモデル同士が干渉しないように調整しています。

作業が進むなか、松尾氏を悩ませたもののひとつは「ソックスを部位として独立したパーツにするか」というものでした。女性キャラにはソックスが豊富に用意されていますが、男性キャラ用のものはそこまででもないから…というのがその理由でしたが、下半身パーツに組み込むことで、"太ももに食い込むニーソックス"の表現やガーターベルトにも対応できたので、結果としてはやって正解だったと語りました。
髪型は、シルエットを大事にしたいとの理由で前後一体型となっています。また、どのような装備をしても破綻しないよう、ひとつの髪形につき、通常(≒頭装備なし)、帽子装備時用、フード装備用の差分モデルが用意されています。揺らし方については、Epic Games Japanのサポートエンジニア・おかずこと岡田和也氏が趣味で制作し、無償で公開しているUnreal Engine 4用の疑似物理ホネ揺れプラグイン「Kawaii Physics」を採用しています。松尾氏は「設定も簡単で使いやすく、オススメです」と太鼓判を押しました。


アバターの顔パーツは眉、目、鼻、口、輪郭の5部位で構成されており、各パーツにボーンが入っています。開発初期にフェイシャルをボーンで動かすか、ブレンドシェイプにするかを検討したところ、シェイプは頂点数が増えるほど負荷が大きくなるので、大勢のキャラが1画面内に登場しうる本作にはあまり向いていないとの結論を下してボーンを採用。手軽にコピーできるため、ストーリーで登場するNPCやモブキャラクターの作成にも転用されています。


また、本作のようなアニメ系のモデリング絵は眉で感情表現をすることになるので、それもボーンで制御した方が適していた、と語りました。こだわりのひとつとして、ホクロに関する技巧も紹介されました。「ホクロはキャラクターの見た目のアイデンティティを構成する重要な要素のひとつ」という認識のもと、キャラがカメラから遠ざかって小さく表示されるときも円形を保てるようにポリゴンで作成。さらに、カメラから遠ざかるほど大きめに表示され、ホクロをしっかり視認できるシェーダーが採用されているそうです。


社内テスト時に起きた、ちょっとしたアクシデントも紹介されました。いざテストプレイを開始すると、メイキングにあまり興味がない層がボタン連打でゲームを開始してしまったため、「クリエイトするキャラの初期状態は裸(アンダーウェアのみ)である」という初期シーケンスが仇となってスタート地点に半裸のアバターがあふれかえる"裸祭り"になってしまったとのこと。これを避けるため、初期シーケンスはプリセット装備を身につけさせ、任意で衣装を非表示にできるように変更されました。
最後に、リアル系キャラクリエーションとの違いが語られました。年少のキャラ、特に幼さを残す少女系の顔は目以外のパーツの"正解"の幅が狭く、バリエーションを用意しづらいことを実感したとのことです。その代わり、まつ毛を含むメイクを微調整できるなど、目の情報量をたくさん詰め込むことで差異を出せるようにしました。


男性、とりわけ中年のキャラはそれとは反対に、輪郭、眉、鼻のデザインの"正解"の幅が広い代わりに、目が小さいので目での差別化が難しいと実感。アニメ系のモデリングは性別、年代で特色を出せるパーツが異なるため、両方の性別、すべての年代で同じ数のパーツを用意するのは非常に困難であると感じたと語り、講演の前半を締めくくりました。
エンジニアの視点から見たキャラクリエーションの知見
講演の後半は、バンダイナムコスタジオ 第3スタジオのエンジニアである金田直隆氏が登壇。前述したクローズドβテストの最終日は、負荷を測るためにひとつの街に100以上のプレイヤーキャラが集まってエモートでダンスに興じたことを挙げ、その負荷にどのようにして耐えたかなどが紹介されました。

本作のアバターは、顔が5つのパーツ、体が8つのパーツで構成されているので、まずはパーツ数を減らすため、キャラクリエーション完了時に非同期でスケルタルメッシュのマージを実行しています。
非同期メッシュマージはオブジェクト数を減らせるので、処理負荷や移動処理の低減に寄与しますが、一方でマージ処理自体の負荷が発生する、使用メモリが増加する、キャラクリエーション完了時に多少の時間がかかってしまうなどのデメリットも発生します。




キャッシュや非同期処理の調整でそうしたデメリットに折り合いを付けたら、100体のアバターを同時に登場させたときの負荷が30fpsから50fpsに向上したとのことです。
さらに負荷を減らすため、キャラクリエーション部分はサーバーから除外。顔のメッシュは標準のLODに加えて、LODのレベルがある程度上がると男女ごとに共通のStaticMeshの顔にすり替えられます。
キャラクリエイトのデータは数字や文字列だけで管理できるので、ユーザー情報を管理するサーバーとやり取りする際は、パーツ名を参照してそのパーツデータのテーブルにアクセスすることでクリエーションを実行しています。パーツの部位に少しでも依存する情報をパーツのデータに紐づけて管理することで煩雑さを減らし、アセットのロードの制御をよりシンプルなものにしているとのこと。
そして、アセット管理を少しでも楽にするため、Pythonスクリプトを活用して作業を効率化。Pythonを使うメリットは、「ビルド環境がなくてもコーディングできる」こと、「C++やBlueprintに比べて見通しがよいコードを書ける」こと、「さまざまなPythonモジュールの恩恵を簡単に受けられる」ことが挙げられました。


また、ゲーム本編冒頭のキャラクリエーションとは別に、もうひとつ簡易的なビューワーを作成して運用。パーツデータ作成時の確認や、資料を作成するためのスクリーンショット、NPCのキャラデータ作成などはこちらの簡易ビューワーで行っています。

物理揺れに関しては、当初はUE4標準のRididBody NodeとClothの2つを考えたものの、現在はKawaii Physicsも採用。RididBodyはボーンが多くなるにつれ挙動が安定しづらくなりますが、別途スキンボーンを設定すると設定コストがかかりすぎため、直接Kawaii Physicsを設定することで安定をもたらしました。
RididBodyはボーンの階層が少ないものや、胸揺れ、アクセサリーの挙動。Kawaii Physicsはボーンの階層が深いもの、一部のアクセサリー、髪の毛、Clothは布まわりの挙動……と使い分けをしているとのことです。



ファンタジー作品らしく"転生"と呼称された、汎用化による負荷軽減も紹介されました。カメラから遠く離れて画面に映らなくなったNPCをプールしておき、キャラクリエイトデータを適宜書き換え。見た目を変えて別のキャラクターとして使いまわすことで、キャラ生成、破棄の処理負荷を低減しているとのことです。
開発初期は不具合が発生して、平和な街に住む町人がなぜか武器を手にしている("転生"前のキャラが所持していたものがそのまま残ってしまった)…という物騒な絵面が完成したコミカルなハプニングにも見舞われたそうです。



金田氏は最後に、「今回発表した範囲では技術的な新しいチャレンジなどはありませんが、こうした工夫を紹介することでみなさんの開発のヒントになるものがあれば幸いです」と講演をまとめました。