イベント
「遊戯王 マスターデュエル」のマルチプラットフォーム開発における数々の工夫。多言語×1万種以上のカードを実装するために
吉川貴彦氏 |
松本一也氏 |
Unity採用のきっかけ,URP/ShaderGraphの活用
「遊戯王 マスターデュエル」は,1999年に発売されたTCG「遊戯王オフィシャルカードゲーム」のノウハウを注ぎ込んだデジタルカードゲーム。コンセプトは「対戦者も観客も楽しめるオンライン遊戯王」である。
本作はクロスプラットフォームに対応し,PCやPlayStation,Xbox,Switch,iOS,Androidといった異なるデバイス間での対戦が可能。また,プラットフォーム間のデータ連携により,自宅ではPC,外出先ではスマートフォンといったように楽しめる。
「遊戯王 マスターデュエル」のゲームエンジンにはUnityが採用されている。開発を始めた当初はUnity 2019を使っていたが,「シェーダーを用いた表現」と,UIの制作において当時の主流だった「複数カメラによるレイヤー処理」という課題があったそうだ。
シェーダーを用いた表現では,可能な限りミドルウェアの機能に頼る方針を立てたという。マルチプラットフォームが大前提だったため,各ハードに特化したシェーダーを大量に作成すると,品質の保証が困難になるという懸念があったからだ。対応プラットフォームの中には,まだ世の中に出ていないものもあり,SDKのバージョンアップのたびに全部のシェーダーをチェックしなければならなかった。
結果として,「遊戯王 マスターデュエル」のシェーダーの作成には,Unityに組み込まれ始めていたShaderGraphを採用したという。これはUnityのエンジニアから,Universal Render Pipeline(URP)を使えば,すべてのプラットフォームでShaderGraphによるシェーダー作成が可能になるとアドバイスを受けたからだそうだ。
一方,複数カメラによるレイヤー処理は,Unity 2019.3のURP 7.2でカメラスタッキングが使えるようになったことで課題を解消できた。
URPおよびShaderGraphを採用したメリットも紹介された。エンジニアがシェーダーのプログラムを1つ1つ書いていると,全プラットフォームでの品質を保証するためにチェックコストが大きくなり,またデザイナーがアイデアを試そうにもエンジニアの手が必要になってしまう。これでは開発速度が上がらない。
しかし,ShaderGraphを採用したことで,デザイナーの手元で試行錯誤が可能になり,その場でアイデアを試してグラフィカルに影響を確認できるようになったため,開発速度が一気に上がったという。
多言語×1万種以上のカードを実装するための工夫
「遊戯王 マスターデュエル」は8種類の言語に対応し,かつ1万枚以上のカードが登場するタイトルだ。カード画像の作成に関しては,「テキストをすべての言語で読みやすくすること」「多言語における文字列の処理」という課題があったとのこと。
カード画像の作成では,可能な限り大きなフォントサイズと,読みやすい改行の実現を目指した。とくに改行は,すべてのカードテキストを手作業で成形できれば最も綺麗に仕上がるのだが,8言語かつ1万枚以上のカードに対しては現実的ではない。
そこで,テキストエリア内で最適なフォントの大きさを計算し,さらに行の先頭に句読点などが来ないようにする禁則処理を行ったとのこと。しかし,最初の手札5枚を表示するのに10秒以上かかるほどの処理負荷が発生してしまった。
これを解決したのが,TextMesh Proだった。それまでカード画像の確認ツールに,カードの全言語バージョンを表示させるのに10秒以上かかっていたところが,TextMesh Proでは半分以下の時間で表示できるようになった。また,禁則処理パターンを登録できるため,各言語での禁則処理も問題なく行える。
異なるプラットフォームで制作を進めるための工夫
「遊戯王 マスターデュエル」の開発にあたっては,「対戦者も観客も楽しめるオンライン遊戯王」というコンセプトを実現するために,各プラットフォームの最適な表現やグラフィックス解像度を模索したという。
具体的には,圧縮設定や解像度設定が決まったら,インポーターを制作してどの環境でも一定の設定が入るようにしているとのこと。これは,Unityのインストール環境によってはビルドサポートのプラグインが入っていない場合があり,その状態ではテクスチャがデフォルトの設定になってしまうことが理由である。大量のアセットを扱う場合,メタファイルが作成されてしまうと追跡が困難になるため,共通設定のインポーター作成は必須だという。
また,プロジェクト独自のアセット管理に関しては,プログラマーとデザイナーの作業を完全に分離し,それぞれがある程度自由に作業できる環境を作るために「エレメントシステム」を作成している。
たとえばUI制作では,同じプレハブをプログラマーとデザイナーが触るため,バージョン管理におけるコンフリクトを起こしやすいという問題がある。そこで制御と表示を完全に分離して,プログラマーとデザイナーが独立して動けるようにした。
具体的には,遷移などのロジックを作る制御プレハブ,表示を行うUIプレハブを用意し,プログラマーとデザイナーの作業範囲を分離した。これは,ヒエラルキーの下層にあるオブジェクトをラベルで管理・結合するシステムによって実現している。
ラベルを使っていることで,階層が移動した場合やゲームオブジェクトの内容が変化した場合でも,大きな問題が発生しないという。また,UIプレハブでは自由に階層の移動やゲームオブジェクトの追加・削除ができるため,手戻りが少なく,表現の修正がしやすくなったそうだ。
続いて,入力系の課題を解決する「セレクターシステム」が紹介された。これは,UIに関連付けるゲームパッドのボタン設定,ショートカット入力の反応,反応時のアニメやサウンド設定,方向キーに対してどのUIに移動するかといった部分をシステム化したものだという。連続したコマンドの入力などの拡張性も高い。
「プロパティオーバーライダー」は,PCおよびゲーム機向けとスマートフォン向けの画面レイアウトを,1つのプレハブで扱うために各種設定をオーバーライドする仕組みだ。これにより,画面レイアウトの同じ項目をPCおよびゲーム機向け,スマートフォン向けで切り替えながら作業を進められる。
最後に紹介された「プラットフォームデバッグ」は,とくにプロパティオーバーライダーで作ったプレハブの確認のために作成したもの。各プラットフォームの作成基準を満たすための表示制限や,ゲームパッドのボタンのテクスチャを確認するにも用いられている。複数のプラットフォームのROMを毎回作り,実機で確認して,それをもう1回手直しするという手間がなくなり,開発効率が上がったとのことだ。
セッションの最後に,吉川氏は「遊戯王オフィシャルカードゲーム」が長い歴史を持つ一方で,ルールが複雑になっていると言及した。そこで「遊戯王 マスターデュエル」はデジタルで気持ちよく遊べるように,ルールを分かりやすく,アシスト機能やUI表現に力を入れたという。
また,心地よくデュエルを進められるように,テンポを損なわず,かつ迫力のある演出を心がけていると語った。その実現のためにはデザイナー主体で細かく演出やUIを調整する必要があり,さまざまな工夫を盛り込んだ開発体制を構築してきたそうだ。
マルチプラットフォームにもかかわらず,スピード感を持って開発を進められたという「遊戯王 マスターデュエル」は,「遊戯王」ファンを中心に大きな反響があったとのこと。吉川氏は「『遊戯王 マスターデュエル』を通じて,『遊戯王』の素晴らしさを全世界に発信し続けていきたい」と意気込みを見せていた。
「遊戯王 マスターデュエル」公式サイト
- 関連タイトル:
遊戯王 マスターデュエル
- 関連タイトル:
遊戯王 マスターデュエル
- 関連タイトル:
遊戯王 マスターデュエル
- 関連タイトル:
遊戯王 マスターデュエル
- 関連タイトル:
遊戯王 マスターデュエル
- 関連タイトル:
遊戯王 マスターデュエル
- この記事のURL:
キーワード
(C)スタジオ・ダイス/集英社・テレビ東京・KONAMI
(C)2022 Konami Digital Entertainment
(C)スタジオ・ダイス/集英社・テレビ東京・KONAMI
(C)2022 Konami Digital Entertainment
(C)スタジオ・ダイス/集英社・テレビ東京・KONAMI
(C)2022 Konami Digital Entertainment
(C)スタジオ・ダイス/集英社・テレビ東京・KONAMI
(C)2022 Konami Digital Entertainment
(C)スタジオ・ダイス/集英社・テレビ東京・KONAMI
(C)2022 Konami Digital Entertainment
(C)スタジオ・ダイス/集英社・テレビ東京・KONAMI
(C)2022 Konami Digital Entertainment