【レポート】AIを活用したスクリプト制作支援機能に学ぶ、成功するAI支援機能の開発と導入のポイント #CEDEC2023 #classmethod_game

CEDEC2023の『AIを活用したアドベンチャーパートスクリプト制作支援:台詞に応じたモーション/表情の推薦』を聴講して、成功するAI支援機能の開発・導入をどのようにして進めるとよいかの事例を学びました。
2023.08.30

データアナリティクス事業本部 機械学習チームの鈴木です。

CEDEC2023に参加してきました。 聴講したセッション『AIを活用したアドベンチャーパートスクリプト制作支援:台詞に応じたモーション/表情の推薦』についてレポートします。

ゲーム開発の現場において、台詞からキャラクターのモーションや表情を推薦する支援機能について、その裏側の推薦システムの仕組みと現場への導入経験を通して得た成功のヒントについてご紹介頂きました。

セッション概要

本セッションでは、ゲームのアドベンチャーパート(以下、ADVパート)の制作におけるスクリプターの工数削減のために開発した、AIを活用したスクリプト制作支援システムについて紹介します。

これまでADVパートの制作時には、スクリプターが人手で設定しなければならない項目数が多いという課題がありました。特に、モーションや表情は基本的には台詞の数分どれを付与するのが適切かを検討せねばならず、負担が大きいといえます。

そこで、本取り組みではある台詞に対して、複数あるモーション/表情の候補から適切なものをAIによって予測し、予測結果をスクリプトへ反映させる推薦システムを開発しました。さらに、プロダクトで利用しているスクリプトエディタへの導入も実施しました。

本セッションでは、推薦システムの機能の紹介や予測手法の詳細に加えて、開発体制や導入までの流れ等についてお話しします。

※ 『AIを活用したアドベンチャーパートスクリプト制作支援:台詞に応じたモーション/表情の推薦』セッションページより引用

課題設定の仕方から、開発した支援機能の機械学習システムによる具体的な設計までご紹介頂きました。開発・導入を行なった際の組織体制やポイントについても解説頂き、組織作りや導入プロセスの面でも非常に参考になりました。

ポイントと感じた点

課題の設定方法について

今回はスクリプト制作の作業を効率化する機能を深層学習を使ったシステムについて実現する例をご紹介頂きました。この作業を対象に選んだ理由は以下とのことでした。

  • 設定項目が多く、工数を要する
  • 運用中も継続的に・高頻度で発生する

作業イメージ

余計な工数をかかってしまうことのリスクを考えてしまい、着手が後回しになりがちなAIによる改善活動について、現状かかっている工数を踏まえて実現可能性とインパクトを考慮して決定した過程は、これから導入を検討している方は参考になると思います。

支援機能の導入影響と効果測定の観点について

タイトル非公開のものと『IDOLY PRIDE』の2タイトルへ導入した、以下の2つの支援機能とその効果についてご紹介頂きました。

  • コマンド挿入機能:指定された台詞に対して、モーションコマンドと表情コマンドを推定して自動で挿入する。
  • 候補推薦機能:コマンド設定済みの台詞に対して、モーションの候補を複数推薦する。

機能1

機能2

導入前後の作業フローについてもご紹介頂き、フロー変更による現場への影響が考慮されており素晴らしいなと思いました。ツール導入の際の観点として押さえておくべき重要な点であることを再認識しました。

導入前後のフロー

また、導入効果として、頻度・削減工数・ユーザーの具体的な意見と課題について簡潔に紹介頂きました。効果測定の観点として参考になりました。

導入効果

モーション予測の手法について

モーション予測の目的と手法についてご紹介頂きました。

モーション予測の目的

ポイントとしては以下がありました。詳細にモデル学習時の設計や課題がイメージでき、非常に勉強になりました。

  • モデルはRoBERTa(事前学習モデルはrinna/japanese-roberta-base)を使用した。
  • 分類問題として、モーションにスコア付けをした。
  • 学習データは過去のスクリプトとモーションのペア(約3万ペア)を利用した。
  • 同じセリフでも文脈によって選ばれるべきモーションは異なることがあるため、直前のセリフも文脈として入れる形とした。
  • 分類が多すぎると性能が落ちるので、似たようなモーションはまとめることで、数十種類の分類問題にした。
  • 推薦されたモーションがキャラクターの性格に合わないこともある。キャラクターの性格や過去に使ったモーションの情報を使い、フィルターとなる実装を入れることで解決した。

モーション予測のフロー

同じセリフでも適したモーションが異なる

感情的なモーションの推薦は結果が良かったものの、汎用的なモーションについてはあまり良くなかったそうです。

モーション予測の結果

仮説としては、「データサンプルが偏っていたため、学習が上手くできていなかった」「腕組みのような非常に便利でセリフに沿わなくても使っているペアが学習データ中に多かった」ということを挙げられており、モーション設定ならではの課題が分かり参考になりました。

表情予測の手法について

表情予測の目的と手法についてもご紹介頂きました。

表情予測の目的

ポイントとしては以下がありました。モーション予測と同様の枠組みではあるものの、セリフに対して感情予測をしてから表情予測を行うなどの工夫がありました。

  • 一度感情予測を行い、その後に表情予測を行うようにした。
    • 感情予測は別プロジェクトでも使い回せるようにして、導入コストを軽減することを目指した。
    • 表情予測はプロジェクトごとに感情アノテーションをする前準備を行った。
  • 感情ラベル付与済みのテキストに対して、類似度計算を実施し、感情ラベル候補として上位5件を取得した。
  • 感情アノテーションスコアについては、各表情のキャラクターについて、どんな感情か人手でアノテーションした。複数人でアノテーションし、メンバー数で平均した。
  • 類似度計算手法については、Sentence-BERTを使用した。表情クラス数は64、感情ラベルが付与されたセリフは53536、感情ラベルは9種類だった。

表情予測のフロー

感情予測のイメージ

表情アノテーションのイメージ

結果としては人間によるものと全く同じかかなり近いものを推薦することができたそうです。

表情予測の結果

ただし、予測結果には偏りがあり、評価データ中の傾向とも異なるという課題も紹介頂きました。

表情予測の結果の分析

プロジェクトの振り返りから学ぶ、AI支援機能の導入のヒント

AIによる改善活動は、余計な工数をかかってしまうことのリスクを考えてしまい、着手が後回しになりがちです。このセッションの事例では、複数プロダクトで起きている共通した課題を設定し、横断組織にて対応したことをご紹介頂きました。

開発体制についても解説して頂きました。機械学習エンジニアだけではなく、ゲームエンジニアやスクリプターを交えて組織横断で取り組まれたことが分かりました。元々はUnityエンジニアで立ち上げたプロジェクトだったためUnityに詳しいゲームエンジニアメンバーも参画しており、機械学習機能の開発からプロダクトとの仲介も担われたそうです。機械学習の専門性は重要ですが、導入するプロダクトに対する知識や、そのプロジェクトのメンバーとコミュニケーションを取って協力をお願いすることができるメンバーの存在は非常に大きかったのではないかなと思います。

開発体制

開発フェーズとしてはいくつかに分かれており、途中で機械学習の専門知識があるメンバーも巻き込みつつ進めたことを紹介頂きました。

開発のフェーズ

やって良かったことも2点紹介がありました。

まずヒアリングと改良を丁寧に実施したことです。スクリプターに対するアンケート・ヒアリングを繰り返し通して、課題の本質がなんなのか把握し、より適切な解決策を把握することで、支援機能として押さえるべきポイントを明らかにしたそうです。具体的には機能のUI部分での工夫などがあり、ユーザーの意見を吸い上げて機能がよりよくなるようにする重要性を改めて感じました。

やって良かったこと

2つ目は積極的に社内での発表活動です。ユーザーに発表を聞いてもらい、「自分のプロダクトだとどう使えるだろう」とか「成功しているなら取り入れてみようかな」と、身近な実課題に落とし込んで考えてもらいやすくなったことが大きなポイントだったのだろうなと思いました。この点については改善活動を実施している多くの方で、参考になる点だと思います。

プロジェクト内容の発表

このような動きは、例えばデータ分析基盤構築などでもよく求められるもので、社内で横断して活用してもらうためにはシステムが優秀なだけではなく、それを使ってもらえるように社内に広報をして使い方を説明し、空気を醸成していくことが重要です。このポイントをしっかり押さえてプロダクト間で横展開を進められているのはすごいなと思いました。

最後に

CEDEC2023の『AIを活用したアドベンチャーパートスクリプト制作支援:台詞に応じたモーション/表情の推薦』セッションについてのレポートでした。スクリプターの業務負担を軽減するためのAI支援機能の導入について、その目的や課題設定から具体的な実装、プロジェクトを通しての学びについてご紹介頂きました。AI支援機能を使って業務を改善したいと考えている多くの開発者にとって非常に気になる部分が網羅されており、プロジェクトの際にぜひ参考にさせて頂きたい事例でした!