開発者を対象とし、ゲーム技術・知識の共有を目指す国内最大級のカンファレンス「CEDEC2024」が開催された。数多くのセッションが行われた中、本稿では株式会社ACT-AGE株式会社バンダイナムコスタジオによるセッション「『鉄拳8』 カスタマイズキャラクターのための多重リグシステム ~複雑な筋肉表現と大量生産の両立」を紹介する。

記事の目次

    膨大な数のプレイアブルキャラクターに対応したカスタマイズ機能

    今年リリースされた、バンダイナムコエンターテインメントの人気3D対戦格闘ゲーム『鉄拳8』。本作はオンラインで世界のプレイヤーと対戦できるだけではなく、自分が使用するキャラクターを自由にカスタマイズできる機能も魅力だ。

    こうしたカスタマイズは昨今の対戦格闘ゲームでは珍しくないが、『鉄拳8』の場合、カスタム要素の豊富さが特長だ。

    しかも『鉄拳8』には膨大な数のプレイアブルキャラクターが存在する。キャラクターの数だけカスタマイズ機能も対応しなくてはならない。おまけにグラフィックがハイレベルで、品質を下げにくい。こういった状況に、現場はどう対応したのだろうか。CEDEC 2024で行われた本講演は、そんな『鉄拳8』のカスタマイズ機能への対応に着目した内容だ。

    講演ではACT-AGEのリードキャラクターリグアーティストである大橋英樹氏と、バンダイナムコスタジオのテクニカルアニメーター兼リガーの近藤直樹氏が登壇した。大橋氏が講演のはじめに「量産に関わる泥臭い内容になっている」と言った通り、膨大な作業量に対応できるシステムを、いかに構築したかの手法が語られた。

    カスタマイズ機能の裏にあった、想像を絶する作業工数の問題

    ▲左から大橋英樹氏(ACT-AGE)、近藤直樹氏(バンダイナムコスタジオ)

    まず『鉄拳8』のカスタマイズ機能を他の対戦格闘ゲームと比較した際、そのちがいとしてディテールの細かさが挙げられる。

    他の対戦格闘ゲームでカスタマイズ機能と言えば、コスチュームの色替えや別のコスチュームを用意するのが主流だ。対して『鉄拳8』では、上半身や下半身のほか、帽子やメガネといったアクセサリもコーディネートでき、全身を好きにカスタムできる。

    ▲『鉄拳8』のキャラクターカスタマイズの一例、眼鏡や猫耳などでアレンジできる

    大橋氏は『鉄拳8』の特長として「キャラクターカスタマイズは、キャラクタークリエーションではない」と語る。クリエーションの場合は、何らかのエディタを使い、1からキャラクターをつくっていくが、『鉄拳8』の場合は元キャラクターの身体的な個性をベースにカスタマイズするということだ。

    そのため、『鉄拳8』ではキャラクターごとに筋肉の形状や刺青、傷といった特徴、ロボット系のキャラクターには機械的なギミックなどの仕様があるが、カスタマイズではその個性を崩さないようにしつつ、プレイヤーに全身をコーディネートしてもらうことになる。

    こうしたカスタマイズ機能は前作『鉄拳7』でも実装されていたが、当時の開発現場ではいくつかの課題を残したそうだ。

    1つは「アイテム関連アセット数が増加し、管理工数が増大化した」こと。2つめは「アイテムが全キャラクター対応仕様の場合、修正するコストが高い」こと。3つめは「アップデートによる追加キャラクターや追加アイテムの実装コストが高い」ことが挙げられた。

    結果、作業コストは指数関数的に増加していった。大橋氏は「キャラ数×アイテム数×アイテム部位」という具体的なコスト計算式を提示して、作業量を説明した。

    『鉄拳7』では全51人のキャラクターが登場する。そのため、全キャラクター共通アイテムの修正やチェックに1時間かかるとなった場合、なんとひとつのアイテムだけで51時間もの作業工数がかかる。これは作業員ひとりが1週間かけて行う工数だそうだ。しかも、アイテムが増えれば、この工数はさらに増大してしまう。

    このような状況でカスタマイズのクオリティを上げようとしても、レギュレーションや作業工数の問題によって一定以上のものが制作できず、コストの問題から新しいアイテムを実装しづらい。『鉄拳7』の段階でこうした課題を残したまま、新作の開発に挑むことになった。

    『鉄拳8』の膨大な作業工数を解決する多重リグシステム

    そんな課題に対して、『鉄拳8』では開発方法を大幅に変えることで対応した。まずカスタマイズアイテムの制作を個別のキャラクターごとでなく、大きく男性キャラクター・女性キャラクター・動物やロボなどの特殊キャラクターというように、素体を3つのカテゴリに分けることにした。

    そして高クオリティな特殊コスチュームを異なるキャラクター同士で交換可能にした他、1つのコスチュームのアセットを全キャラクターで共有できるようにした。これは、キャラクターごとにアイテムを調整するコストを減らすやり方を採用し、実現できたという。

    では、どのようにして1つのアセットを全キャラクターの共有コスチュームにすることができたのか。それが「多重リグシステム」である。

    このシステムは主に、キャラクターの体格調整用リグとなる「Proportion Rig」と、インゲーム用の「Muscle Rig」という2つのリグで構成されており、専用の多重リグ管理ツールによって運用されている。

    多重リグシステムは主にボーンの変形を活用。これはボーンとウェイト情報は汎用的で扱いやすいことが大きいそうだ。このシステムにより、今回のカスタマイズ機能開発の作業負担を大きく軽減している。

    多重リグシステムを導入した背景は、主にグラフィックの表現力が向上したことによる、補助のボーンと体格変更用のボーンの両立が難しくなったためだ。その他にスキニング作業も困難になったことも理由にあるという。

    「Proportion Rig」では、体格変更用のプロポーションジョイントにウェイトを設定し、スケーリングや移動をかけることで、コスチュームのアセットごとに体格の変更ができるようにしている。

    まず、コスチュームは基本的に全キャラクター共通の標準体格に合わせて作成する。そこへ、各キャラクターのボーンの移動や回転、スケール情報をリスト化した体格情報を読み込ませることで、コスチュームをキャラクターそれぞれの体格に合わせて着せることができるわけだ。

    Proportion Rigの構造は複数のパラメータで構成されている。

    主に体格の各部位を調整する「Base Parameter」と、各部位の太さや肉付きといった形状を変更する「Deform Parameter」の他、『鉄拳8』のキャラクターならではの細かい筋肉の設定を可能する「Advanced Parameter」だ。

    Proportion Rigへの体格情報の入出力は、上記の各キャラクターの全体格パラメータをJSON方式で保存・利用する方法を取っている。体格パラメータの値はMayaのドリブンキーによって有効値の幅や増減する係数を設定し、体格変更に使われるボーンの移動、回転、スケールに値が渡される。このドリブンキーは男性キャラクターと女性キャラクターで異なる設定を使っているという。

    続いて「Muscle Rig」は、インゲームでのアニメーションに対応したリグである。キャラクターのモーションや動きに筋肉を合わせたものだ。これらのボーンでスキニングに使われるものはMascle Jointと呼ばれている。

    Proportion Rigで受け取った体格の情報は、上記のような流れでMuscle Rigに転送され、Muscle Rigのボーンの位置とメッシュの形状が変更される。

    そこで重要になるのがP2M(Proportion to Muscle)とSync Mesh Groupだ。

    まずP2MとはMuscle Rigを模したボーンの階層である。このP2Mを使い、Proportion Rigでつくった体格に合わせてMuscle Rigのボーン位置を変更するほか、補助ボーンの移動値を調整する。

    続いてSync Mesh Groupは、Proportion Meshの形状をMuscle Meshに転送して体格変更を行うものだ。この機能は階層や形状からシーン内を自動で検索し、メッシュの転送元と転送先を決定する。

    コスチュームなどのカスタマイズアイテムは、キャラクターの読み込み時に、先述した体格のパラメータ情報に合わせ、Unreal Engine 5(以下UE5)のランタイム機能で各キャラクターの体格に変形する。

    UE5でProportion Rigを適用させるとき、まず標準体型のProportion Meshを各キャラクター固有の体型に変更させる。続いてそれをMuscle Rigに適用させると、そのProportion Meshの形状をMuscle Meshに転送し、Muscle Rigのボーンの位置を各キャラクター固有の体型に合わせて調整する。

    Mayaを通した詳しい体格調整処理のながれは上記にまとめられている。

    なぜUE5のランタイム機能を利用し、カスタマイズ機能を調整するようになったのかも解説された。

    現在、ベースとなるアイテムはMayaからProportion Rig用FBXと、Muscle Rig用FBXに加えて各キャラクターの体格情報をUE5に送り、各キャラクターの体格に合わせたアセットに変換することで管理している。

    もしランタイムを使わなかった場合、1つのアイテムから不具合が発生したとき、キャラクター数分のFBXやUE5のアセットをチェックしなくてはならず、膨大な手間がかかる。『鉄拳7』で生じたのと同じ問題と言えよう。

    そこで、ランタイムを利用することでFBXとUE5のアセットの2つをチェックするだけで済むようにし、作業工数の大幅な削減を実現した。

    また、アイテムのコーディネートにおける服の着こなしなどにもランタイムが役立った。例えば上半身の服の裾をパンツやスカートにタックインするか、タックアウトするかの着こなしがあるが、これをインゲームで実現しようとすると、Mayaまで戻ってアイテムを調整しなければならない。しかしランタイム機能を使うことで、UE5上で形状を変えることができたという。

    アセット管理について

    多数のコスチュームアイテムといったアセットはどのように実装されているのか。

    Maya内にProportion Mesh用とMuscle Mesh用それぞれのアイテムを作成し、FBXをUE5に出力する。そしてアイテムのメッシュは個別の管理情報としてUE5内に格納されており、FBXを受け取ってキャラクターのブループリントに出力される。

    同時にProportion RigとMuscle Rigの体格情報ファイルもキャラクターのブループリントへ転送することで、各キャラクターが自分の体格に合わせたアイテムを装着した姿で出力されるわけだ。

    また、各キャラクターのフェイシャルとボーンはUE5のリファレンスシーンとして参照し、仮にフェイシャル情報が更新された際でも、作成済みのアイテムのシーンに反映されるよう構成している。これは、キャラクターの制作を複数のスタッフで行なっていることと、制作中にボーンの構造が変わってしまうリスクを抑えるためだという。

    こうしたUE5によるリファレンス管理は、非常に複雑なフローとなったため、バッチ処理によるシーン作成を行なっている

    キャラクターの顔とフェイシャルリグが完成すると、キャラクターの顔つきのProportion Rigのリファレンスシーン作成→Muscle Rigのリファレンスシーン作成→体格変更済みのProportion Rigなしのシーンをアニメーター用に作成する、までをバッチ処理によって実行する。

    その他揺れものなどはキャラクターの固有体型に変更し、Muscle Rigに揺れるボーンをアサインして出力することで対応した。マントのような揺れものにも多重リグシステムが利用されており、自社開発したClothシミュレーションシステムを活用することで、Proportion Meshの計算用メッシュと表示用メッシュの情報をMascle Meshに渡し、自然にマントを着こなした表現を実現している。

    このように多重リグシステムを活用することで、クオリティを保ちながら膨大な作業量を捌ける体制ができた。しかし、そこにはデメリットもあったそうだ。

    ここまでのレポートを見てもわかるように、そもそもシステムの仕様が複雑すぎることや、メッシュが多い場合の管理が煩雑であること、頂点情報の取り扱いがデリケートであることなど難しさもあると言い、今後の課題のようだ。

    以上が、セッション「『鉄拳8』 カスタマイズキャラクターのための多重リグシステム ~複雑な筋肉表現と大量生産の両立」の解説である。クオリティを担保しながら、プレイヤーがキャラクターをカスタムする楽しみの裏側として、大変な苦労と工夫が窺える内容だった。

    『鉄拳8』に限らず、現在、自分のキャラクターをカスタマイズできるゲームがジャンルを問わず数多く存在する。本講演で紹介されたテクニックも、様々な現場のヒントになるかもしれない。

    TEXT_葛西祝 / Hajime Kasai
    EDIT_小村仁美 / Hitomi Komura(CGWORLD)、山田桃子 / Momoko Yamada