Slide 1

Slide 1 text

膨大なシナリオから 該当シーンを一瞬で検索! IDOLY PRIDEの シナリオ補助ツール開発 2023/08/24

Slide 2

Slide 2 text

ゲーム・エンターテイメント事業部(SGE) 子会社制をとっており、 ゲーム・エンターテイメント事業に 携わる10社の子会社が 所属しています。 ゲーム・エンターテイメント事業部(SGE)

Slide 3

Slide 3 text

田中 一馬 (タナカ カズマ) 株式会社サイバーエージェントに2011年新卒入社。 入社当初から一貫してゲーム開発に携わり、 現在は株式会社QualiArtsでシナリオ制作に従事。 複数タイトルの立ち上げ、運用を経て 『IDOLY PRIDE』ではシナリオディレクターをつと める。 シナリオ職新卒採用の立ち上げなど、ゲーム事業部の シナリオ組織づくりも行う。 自己紹介

Slide 4

Slide 4 text

簗瀬 拓弥 (やなせ たくや) 株式会社サイバーエージェント 2013年新卒入社 株式会社QualiArts所属 バックエンドエンジニア 「IDOLY PRIDE」ではインフラ構築から 通信基盤やマスタデータ基盤などの基盤開発、 ゲーム機能開発やチーム内向けツールの開発など 多岐に渡る開発に携わる。 自己紹介

Slide 5

Slide 5 text

Contents 1. IDOLY PRIDEとは 2. シナリオ・セリフ音声の運用と課題 3. ツール開発による課題解決方針 4. シナリオ補助ツール 5. シナリオ補助ツール導入による効果 6. インポート処理実装時の工夫 7. まとめと今後の展望

Slide 6

Slide 6 text

IDOLY PRIDEとは 1

Slide 7

Slide 7 text

『IDOLY PRIDE』とは 2021年1月〜3月にアニメが放送され、 2021年6月にリリースされた スマホ向けゲーム。 アイドル事務所のマネージャーとして アイドルの育成・マネジメントができる。 先日2周年を迎え、 幕張メッセ2daysでライブも行われた。

Slide 8

Slide 8 text

シナリオ・セリフ音声の 運用と課題 2

Slide 9

Slide 9 text

すべてのシナリオはスプレッドシートで管理し、 ファイルもGoogle Drive上にて管理 シナリオと音声の運用・管理手法

Slide 10

Slide 10 text

音声データのIDは 「シナリオのID」 「キャラクター」 「シナリオ中の発話回数」 などから自動で生成される。 また、収録した音声ファイルも driveにて管理。 シナリオと音声の運用・管理手法

Slide 11

Slide 11 text

シナリオ 開発当初よりすべてのシナリオ/音声をGoogle Driveにて細かく管理 音声 シナリオと音声の運用・管理手法 シナリオ 第1章 第2章 第3章 本編 星見編 番外編 月スト編 第1章 第2章 第3章 ボイスデータ 本編 星見編 番外編 月スト編 長瀬琴乃 第1章 xx01.wav xx02.wav xx03.wav

Slide 12

Slide 12 text

シナリオ・音声それぞれにおいては適切に管理されていたため、 探したい特定のシナリオや特定の音声を容易に検索できた。 一方で、特定キャラにおける検索性、内容が不透明な状態での 検索など、網羅性を求める検索に難があった。 ※2023年8月現在、シナリオの総物量は約800話以上(約8万セリフ) 例えば…… シナリオと音声運用時の課題

Slide 13

Slide 13 text

・キャラAってキャラBに対してXXXが好きって言ってたっけ? ・キャラAってキャラBに対しての言葉遣いどうなってたっけ? ・そもそもこの言葉ってひらがなか漢字どっち表記だっけ? ・イントネーションどうなってたっけ? シナリオと音声運用時の課題 などの特定のキャラ、特定の言葉の検索難易度が高かった。 また、キャラクターのセリフをまとめて閲覧することができず、 新規参画者の学習コストが高かった。

Slide 14

Slide 14 text

課題解決方針 3

Slide 15

Slide 15 text

前項の課題に対しては、Drive上を検索し、1ファイルごとに探すな ど、かなり非効率的な検索をしていた。 ・キャラ名+セリフを検索したら一括表示してほしい ・音声も一緒に聴きたい…… ・セリフを入れたら誰が発言したかすぐにわかったら…… ・該当のシナリオファイルにも飛べたら…… 課題解決方針

Slide 16

Slide 16 text

【Before】 あのキャラのあのセリフ どこだっけ・・・ このセリフの音声 イントネーション確認したいな ボイスIDを確認して・・・ フォルダを辿って探して・・・ シナリオファイル1つ1つを見ていく やっと再生 【After】 キャラクターとワードを条件に検索しよう! セリフの音声を再生してイントネーションを確認しよう! シナリオ補助ツール 元ファイルへも直接アクセス ツール上で検索、セリフ検索・参照、音声再生 課題解決方針 課題の整理

Slide 17

Slide 17 text

シナリオ補助ツールの説明 4

Slide 18

Slide 18 text

システム概要 台本化ツール 収録 シナリオ入稿 音声ファイル保存 既存入稿フロー 元々Google Spreadsheetを中心とした シナリオ入稿/収録のワークフローで運用していた

Slide 19

Slide 19 text

台本化ツール 収録 シナリオ入稿 音声ファイル保存 既存入稿フロー システム概要 アプリケーション (Cloud Run) シナリオSpreadSheet への遷移 音声ファイルの再生 シナリオツールの使用 セリフ検索 / シナリオテキストに紐づく音声ファイル参照 収録 シナリオデータと音声ファイル情報の データベースへの取り込み 既存のシナリオ入稿作業+フローには手を加えず、 あくまで補助的なツールとして導入 既存入稿フロー シナリオ補助ツール シナリオデータ キャラ情報保存/参照 MySQL (Cloud SQL)

Slide 20

Slide 20 text

ツール画面説明

Slide 21

Slide 21 text

ツール画面説明 セリフ検索ワードを指定して検索 ・キャラクター ・セリフが含まれるファイル名 で絞り込みが可能

Slide 22

Slide 22 text

ツール画面説明 セリフが含まれるシナリオの SpreadsheetおよびSheetに遷移が可能

Slide 23

Slide 23 text

ツール画面説明 セリフに紐づく音声ファイルの再生が ツール上で可能。 また音声ファイルが格納されている Driveフォルダへ遷移することができる。

Slide 24

Slide 24 text

ツール画面説明

Slide 25

Slide 25 text

シナリオ補助ツール 導入による効果 5

Slide 26

Slide 26 text

シナリオ補助ツール導入による効果 導入前: 1セリフあたり10分近く記憶を頼りにファイルとセリフを探している。(3回/1日) ↓ 導入後: 1セリフあたり2分ほどでシナリオを網羅的に検索/閲覧。(3回/1日) → 1回あたり8分 × 1日3回 × 20営業日 = 480分 = 8時間/月 の作業時間削減

Slide 27

Slide 27 text

シナリオ補助ツール導入による効果 ● シナリオや音声ファイル管理の精度向上 ● 特定のワードに対してのキャラクターのイントネーション確認の効率化 ● 過去のセリフを瞬時に抽出できることによるシナリオの整合性の向上 ● 特定のキャラ同士の会話やシーンの事象把握や時系列把握の効率化 ● チームへの新規メンバー参加時の過去データの参照精度・学習効率の向上

Slide 28

Slide 28 text

インポート処理 実装時の工夫 6

Slide 29

Slide 29 text

インポート処理実装時の工夫 本ツールでは 複数のフォルダを 「シナリオ管理フォルダ」 として登録することができる。 登録されたフォルダに対し インポート処理を行っている。 Secret

Slide 30

Slide 30 text

インポート処理実装時の工夫 インポート処理は 以下の2つの手法を使い分けることで 効率的に行っている。 ここが シナリオ管理フォルダ • 指定フォルダ内のファイル/フォルダを 再帰的に読み取るトップダウン型インポート • GoogleDrive内の更新がかかったファイルが 指定フォルダ配下にあるかチェックする ボトムアップ型インポート

Slide 31

Slide 31 text

インポート処理実装時の工夫: トップダウン型インポート Drive APIの files.list Method を利用して 指定したフォルダ配下のファイル/フォルダを 再帰的に読み込んでいく方法 ▼ メリット • 指定フォルダ配下を網羅的に読み込むことができる。 ▼ デメリット • フォルダに対して再帰的にAPIを実行して読み込むため フォルダ構成によってはAPIコール数が多くなり、 所要時間が長くなる。 またAPIのQuota(上限)でエラーとなる場合がある。 ▼ 利用シーン • シナリオ管理フォルダ全体の初期/再インポート • シナリオ管理フォルダの追加を行った場合のインポート

Slide 32

Slide 32 text

インポート処理実装時の工夫: ボトムアップ型インポート Drive APIの changes.list Method を利用して 前回インポート時から現在までの Drive全体のファイル更新履歴を取得することで、 更新されたファイルがシナリオ管理フォルダ配下に 属しているかチェックをする方法 ▼ メリット • 必要最小限のファイルに対して処理をすることで 高速にインポート処理をすることが可能。 ▼ デメリット • 特定の時点以前に追加/更新されたファイルに対して 処理をすることができない。(検知ができない) そのためシナリオ管理フォルダの追加時のインポートには 向いていない。 ▼ 利用シーン • シナリオファイル更新検知のための定期自動インポート 更新されたファイル

Slide 33

Slide 33 text

まとめと今後の展望 7

Slide 34

Slide 34 text

まとめ • IDOLY PRIDEシナリオチームでは 過去のセリフ検索に課題があり マンパワーで頑張っていた • ツールを導入することで 網羅的かつ柔軟なセリフ検索 スピーディーなシナリオ/音声ファイル参照が可能になった • 既存のシナリオ入稿/収録のワークフローを完全に維持したまま 補助的なツールを目指したことで、開発/導入において シナリオ/エンジニアチーム双方にメリットがあった • GoogleDriveで管理するシナリオファイルのインポート処理を トップダウン型 / ボトムアップ型 2つの手法 で効率的に行った

Slide 35

Slide 35 text

現在機械学習を用いた機能の追加 ▼ 意味的に近いセリフを検索する「あいまい検索機能」 今後の展望

Slide 36

Slide 36 text

現在機械学習を用いた機能の追加 ▼ セリフがキャラクターの特徴からズレていないか検知する「キャラクターらしさ検証機能」 今後の展望 • キャラクターとセリフが一致していないことに気が付きにくい • 不一致のまま音声収録まで進むこともあり、大きな手戻りにつながる といった問題の解決 今、この胸すっごい ドキドキしてるから ○ ×

Slide 37

Slide 37 text

Thank you