メンテナンスが難しくなった内製アニメーションツールをSpriteStudioへリプレース株式会社B.B.スタジオの事例

1994年に創業した『バンプレ企画』を起点に、30年近い歴史を持つ老舗ゲーム会社『B.B.スタジオ』 長年続くシリーズ作品の開発を担ってきた同社は、実はある時期から OPTPiX SpriteStudio をご採用いただいています。

なぜ、SpriteStudio を採用されたんでしょうか?
今回のインタビューでは、その採用の背景に迫ります。

株式会社B.B.スタジオの皆さん

  • 河野 明敏氏(テクニカルユニット ユニットマネージャー)
  • 黒岩 勝人氏(テクニカルユニット プログラム課 マネージャー)
  • 望月 敏行氏(テクニカルユニット プログラム課 エキスパート)
  • 田中 信行氏(制作ユニット VA3課 リーダー)
  • 狩野 明広氏(テクニカルユニット プログラム課 チーフ)
  • 田端 紀行氏(元プログラム課 リーダー)

* 2023.4.1現在

OPTPiX SpriteStudio の製品カスタマイズご相談の背景についてお聞かせください

黒岩氏:
B.B.スタジオは、長年手掛けるシリーズ作品を、自社のアニメーションツール『AnimEdit』というエンジンで開発してきました。かなり長い間、このAnimEdit とエンジンのメンテナンスを望月が専任で担当していたのですが、ある時期から望月がゲーム本体の開発も兼務することになり、ツールのメンテナンスを並行で行うことが困難になっていたのです。

望月氏:
ゲーム本体の開発に加えて、AnimEdit と自社エンジンのマルチプラットフォーム対応をするのはとても困難でした。過去にもマルチプラットフォーム対応はやってきた経験はありますが、あまりにも長い間メンテナンスを続けてきたので…このあたりで一度リセットしたいとも考えていた時期でした。

実はSpriteStudio は経験していた

AnimEdit と自社エンジンの開発・運用はいつ頃からされてきたのでしょうか

(ここでB.B.スタジオの皆さんが騒然)

河野氏:
DirectX9 のころに大規模なバージョンアップをした記憶が…

望月氏:
プレイステーション2 用に本格的な対応をする必要があって、それがDirectX9 対応でした。

狩野氏:
でも初版は初代プレイステーションの頃だから…1998年ごろ? つまり…

25年前…!

田中氏:
20年以上の間、その時その時のシリーズタイトル毎に、グラフィックチームが『表現したかったこと』ひとつひとつのために追加されてきた機能が積み重なってます。

望月氏:
しかも、既に使われなくなっている機能も大量に…

一同:
(笑)

望月さんは、この25年の間に、AnimEdit とエンジンのメンテナンスだけでなく、ゲーム開発の方にも参加されることになったんですね

黒岩氏:
ですので、ゲーム本体の開発に軸足を移してもらう代わりに、せめてAnimEdit のメンテナンスだけでもどうにかできないかと。そこで当時のプログラム課のマネージャに相談した所、『いっそ、アニメーションツールを外部に委託するのはどうか』というアイデアが出てきました。

狩野氏:
最初は海外製のアニメーションツールも検討に挙がりました。

ところが当然ですがサポートとのやり取りは英語なので、細かなニュアンスを伝えるのが困難だったこと、またB.B.スタジオが積み上げてきたAnimEdit は、キャラクターだけでなく背景やエフェクトなど、大量のレイヤーを含んだシーン全体を制作するものです。海外製のアニメーションツールのサポートページには、そこに近づけるようなカスタマイズを引き受けてくれるような窓口もありませんでした。

田端氏:
ならば、と以前使ったことがあった SpriteStudio に相談してみることにしたんです。

SpriteStudio をお使いになったことがあったんですね

田端氏:
はい。シリーズの特典でつけた『初代作品のリメイク』で、開発は協力会社に全面的にお願いすることにしたんですが、AnimEdit を協力会社にご提供するのは…

望月氏:
自分としては、社内のグラフィックチームからの問合せで手一杯ですから、協力会社のサポートまでは難しいです。なのであの当時は、SpriteStudio を試しに使ってみようということになりました。

田端氏:
せっかくなので、そのSpriteStudio を使って開発した『初代作品のリメイク』では、自社アニメーションツールではやらないような、UI 部分もSpriteStudio で作るチャレンジもしました。とはいえ当時のSpriteStudio Ver.4 のSDKはお世辞にもあまり出来が良くなくって。

SpriteStudio 開発チーム:
たくさんお問合せを受けた記憶があります(笑)

一同:
(笑)

それでも今回、SpriteStudio にご相談いただいと…

河野氏:
相談からのレスポンスが早かったのと、初回の打ち合わせから相談内容への理解があったこと。SpriteStudio が『ゲーム会社で内製ツールを作ってきた経験者が作っているツール』だということが分かった安心感が決め手でした。

B.B.スタジオならではのカスタマイズ要素

さて、OPTPiX SpriteStudio について、B.B.スタジオさんからはどんなご要望をいただいたんでしょうか。

望月氏:
SpriteStudio という柱を、どれだけAnimEdit に近づけられるかがテーマでした。代表的なのはカスタムシェーダーで、AnimEdit では各世代のコンシューマ機ごとにシェーダーを使ってきた歴史があります。プレイステーション3からかな? それでも複雑なシェーダーは組めませんでした。

狩野氏:
プレイステーション2では、まだでしたね。"アルファブレンド"は使えるようにしていました。初代プレイステーションだと、半透明は1ピクセルごとにCPUで描画する構造になっていて。

望月氏:
他にも、PSP(プレイステーションポータブル)ではシェーダーは使えないけどアルファブレンドは使えるなど、自社のアニメーションツール側もエンジン側も、コンシューマ機の世代交代に都度対応するようにしてきました。しかし、今となってはシェーダーは無くてはならない機能だったので、SpriteStudio にカスタマイズの相談をする際に、最初に出したのがシェーダー機能の追加でした。

カスタムシェーダー機能

この『カスタムシェーダー』は、B.B.スタジオさんのご厚意で、SpriteStudio Ver.6.4.0 から標準搭載。一般ユーザーに開放するにあたり、Unity にも対応しています。

SpriteStudio 開発チーム:
シェーダーとセットでご依頼いただいた『オフスクリーンレンダリング』というご要望も頂きました。古くからある家庭用ゲーム機らしいテクニックでしたね。

望月氏:
AnimEdit では長年当たり前の機能として持っていましたが、正直SpriteStudio のような汎用ツールに載せるには特殊な機能かもしれない、と思いながら相談しました。AnimEdit では、このオフスクリーンレンダリングをPSP のころに初めて実装したんです。当時は、疑似的な被写界深度を実現するために使っていました。

オフスクリーンレンダリング:画面上に直接描画(フレームバッファレンダリング)せず、一旦画面外のメモリ空間やテクスチャに描画すること。描画処理負荷の軽減を目的とするほか、シェーダーなどによるポストエフェクトを処理するための一時処理としても利用される。

SpriteStudio 開発チーム:
オフスクリーンレンダリングは、シェーダー機能を生かす、必須な機能だと理解しています。まだ開発中の機能なのですが、もう少しお待ちください。

B.B.スタジオさんらしいご相談といえば、演出のバリエーションを編集する機能のご要望もあったようですが

望月氏:
AnimEdit では『イベント機能』という名前で、各アニメーションの切り替えや、演出タイミングを制御するための機能を用意していました。

SpriteStudio 開発チーム:
SpriteStudio にも類似の用途で『ユーザーデータ』や、アニメーションの連続再生や切り替えに使える『インスタンス』という機能を搭載していたのですが、使い勝手の面で不足がありました。そこでB.B.スタジオさんのご要望に沿うべく新たに搭載したのが『シーケンス機能』『シグナル』アトリビュートです。

シーケンス機能

望月氏:
B.B.スタジオが開発するタイトルでは、複数のアニメーションそれぞれを様々なバリエーションで1つのシーンとして動的に使い分ける必要があります。動的というのは、ゲームの進行やパラメータがシーンに影響するということです。

パラメータというのはどのようなものでしょうか

狩野氏:
例えば、一つの攻撃アニメーションを親として、そのアニメーションの特定のフレームに子となるアニメーションを再生するパラメータを入力します。

そうすると親アニメーション再生時に、そのフレームに達したところで、子のアニメーションを呼び出し重ねて再生するなどが実現できます。また、このパラメータを変数化することで、ゲームの進行状況に応じて変数次第で別のカットインアニメーションを表示することを可能にしていました。

パラメータでアニメーション内容を変化させる
* 画像のロボットも含め、このイメージはCRI・ミドルウェアのデザイナーが制作したものです

望月氏:
他にも、効果音や音声などの演出もパラメータですし、ゲーム内の状態パラメータなども対象としています。自社のアニメーションツールでは、ゲームシステム側で定義したパラメータをツール内で選択できるUI を用意することで、管理しやすいように工夫していました。

SpriteStudio 開発チーム:
前述の通り、SpriteStudio にもそれに似たイメージで使う『ユーザーデータ』というフリー文字列を入力できるアトリビュートがありました。

しかし、このアトリビュートは用途を限定しておらず、文字通り自由過ぎてしまうので、アーティストの入力ミスで思わぬバグを生んでしまうなどのリスクがありました。これをAnimEdit にならって入力できるコマンドやパラメータを事前に定義しておき、アーティストはその中から選択、制限を超えた数値を入力できない仕様にしたのが『シグナルアトリビュート』です。

また、タイトルごとにコマンドやパラメータの定義を自由に拡張、変更できるよう、定義ファイルをツールの外に配置しました。B.B.スタジオさんの方でメンテナンスしやすくなるな工夫も行っています。

シグナル設定の編集ダイアログ(表示データはサンプルです)

シグナルの編集(表示データはサンプルです)

『シーケンス機能』『シグナルアトリビュート』はSpriteStudio Ver.6.4 でβ機能として一般ユーザー向けにも開放、Ver.7.1 で正式機能になった

その他にも、SpriteStudio 自体の使い勝手を改良する要望も多くいただいたようですね

田中氏:
『ルーラー・ガイドライン』などのAnimEdit に搭載されていたUIを追加してもらえるようにお願いしたりだとか、アトリビュートのコピー&ペーストなど、繰り返し実行する手順を少しでも減らせるような改良をお願いしたりだとか。

望月氏:
誰もが作りやすいことを目指した SpriteStudio の良さを維持しながら、B.B.スタジオに馴染むものにできるかでしょうか。

河野氏:
B.B.スタジオにとってもSpriteStudio に慣れていく大変さはありますが、このあたりは徐々に解消されると思っています。

最後に

OPTPiX SpriteStudio の製品カスタマイズを振り返って、いかがでしたか?

望月氏:
先ほど河野からもありましたが、お互いゲーム会社で自社ツールを作った経験者であることが相談しやすさが大変良かったです。

田中氏:
もう随分長い間、自社のアニメーションツールに対して要望を投げては実装してもらい…

狩野氏:
自社のエンジン側に組み込んでみて、ここをこうして欲しいなどの要望をやはり(望月氏に)投げて…

望月氏:
みたいなやりとりを、何よりも自分でもう作らなくて良い…のがね。

一同:
(笑)

SpriteStudio 開発チーム:
SpriteStudio で、B.B.スタジオさんの開発を全力でフォローしていきたいと考えています。今後ともよろしくお願いいたします!

本日はありがとうございました!

OPTPiX SpriteStudio 開発チームから

SpriteStudio は、定期的なマイナーアップデートの他に、固有のカスタマイズのご相談もお受けしております。今回のインタビューのような大規模なプロジェクトはもちろんのこと、ごくごく小さなご相談もお聞きしたいと考えていますので、お気軽にご相談ください。

『クリエイターを笑顔に』
OPTPiX SpriteStudio 開発チーム

取材日:2023年2月9日

事例公開日:2023年3月31日

所属組織、業務内容、写真、インタビュー内容は取材当時のものです。

関連リンク

株式会社B.B.スタジオ
https://www.bbst.co.jp/

OPTPiX SpriteStudio の製品カスタマイズ、機能追加のご相談は
下記フォームよりお気軽にお問い合わせください。