>100 Views
February 19, 25
スライド概要
2024年度修士論文発表 林龍星
日本大学 文理学部 情報科学科 北原研究室。 「Technology Makes Music More Fun」を合言葉に、音楽をはじめとするエンターテインメントの高度化に資する技術の研究開発を行っています。
ゲームとシーンの特徴を考慮する BGM検索エンジンの開発 日本大学北原研究室 林龍星,北原鉄朗 1
はじめに > 背景 背景 ● BGMはゲームとシーンの特徴を表現できる ● シーン:オープニングやダンジョンなどゲームの状況 GRANBLUE FANTASY: Relink / Cygames UNDERTALE / Toby Fox オープニング ● 忘れられた空 / 成田勤 ● Once Upon a Time / Toby Fox 戦い ● 大星晶獣との戦い / 成田勤 ● Enemy Approaching / Toby Fox 2
はじめに > 背景 背景 ● BGMはゲームとシーンの特徴を表現できる ● シーン:オープニングやダンジョンなどゲームの状況 GRANBLUE FANTASY: Relink / Cygames UNDERTALE / Toby Fox オープニング ● 忘れられた空 / 成田勤 ● Once Upon a Time / Toby Fox 戦い ● 大星晶獣との戦い / 成田勤 ● Enemy Approaching / Toby Fox 3
はじめに > 背景 背景 ● BGMはゲームとシーンの特徴を表現できる ● シーン:オープニングやダンジョンなどゲームの状況 GRANBLUE FANTASY: Relink / Cygames UNDERTALE / Toby Fox オープニング ● 忘れられた空 / 成田勤 ● Once Upon a Time / Toby Fox 戦い ● 大星晶獣との戦い / 成田勤 ● Enemy Approaching / Toby Fox 4
はじめに > 背景 背景 ● ゲームとシーンの特徴を考慮してBGMを準備することは難しい 忍者のゲームを 作ろう! 5
はじめに > 背景 背景 ● ゲームとシーンの特徴を考慮してBGMを準備することは難しい 忍者のゲームを 作ろう! 忍者が戦う BGMを発見! 6
はじめに > 背景 背景 ● ゲームとシーンの特徴を考慮してBGMを準備することは難しい 忍者のゲームを 作ろう! 忍者が戦う BGMを発見! 忍者の恋愛 BGMがない... 7
EgGMAn - Engine of Game Music Analogy 8
はじめに > 目的 目的 ● 目的:ゲームとシーンの特徴を考慮してBGMを検索 ● 前提:開発中のゲームに使うBGMが1つは準備済 ● 検索 ○ 準備済のBGMが持つゲームの特徴を維持 ○ 準備済のBGMが持つシーンの特徴を変更 ゲームの特徴 シーンの特徴 シーンの特徴 9
はじめに > 課題 課題 ● ● ゲームとシーンの特徴が曖昧な状態 ○ 準備済のBGMが持つゲームの特徴を変更してしまう ○ 準備済のBGMが持つシーンの特徴を維持してしまう ゲームとシーンの特徴を明瞭にする ゲームの特徴 維持してしまった シーンの特徴 変更してしまった 10
はじめに > 課題 課題 ● BGMを以下の仮説を満たすベクトルに変換 ● 仮説 ○ BGMのベクトルが各シーンでクラスタを作る ○ あるゲームの各シーンの BGMのベクトルと各シーンのクラスタの中心の差は一定 シーン S zhs cs zgs シーン T zht ct zgt 11
はじめに > 課題 課題 ● BGMを以下の仮説を満たすベクトルに変換 ● 仮説 ○ BGMのベクトルが各シーンでクラスタを作る ○ あるゲームの各シーンの BGMのベクトルと各シーンのクラスタの中心の差は一定 シーン S zhs cs zgs ゲーム GのBGM シーン T zht ct zgt 12
はじめに > 課題 課題 ● BGMを以下の仮説を満たすベクトルに変換 ● 仮説 ○ BGMのベクトルが各シーンでクラスタを作る ○ あるゲームの各シーンの BGMのベクトルと各シーンのクラスタの中心の差は一定 シーン S zhs cs zgs シーン T zht ct zgt 13
はじめに > 関連研究 関連研究 ● ● ● ● ゲームシナリオと感情状態に合わせて BGMを選曲するシステム ○ 山内拓真,根本さくら,長野恭介,中村祥吾,斉藤勇璃,宇田朗子,村井源,迎山和司,田柳 恵美子,平田 圭二 ○ 自動生成されたゲームシナリオから各ゲームシーンの感情状態に合致した BGMを選択するシステムを開発 CycleGANを用いたゲーム音楽のシーン別変換 ○ 星雄輝,清雄一,田原康之,大須賀昭彦 ○ CycleGANを用いたドメイン変換によってクラシック音楽からシーン別のゲーム音楽を生成する手法を提案 Efficient Estimation of Word Representations in Vector Space ○ Tomas Mikolov,Kai Chen,Greg Corrado,Jeffrey Dean ○ 大規模なデータセットから連続な単語のベクトル表現を計算するために 2つの新しいモデルアーキテクチャを提案 A Neural Representation of Sketch Drawings ○ David Ha,Douglas Eck ○ RNNを用いてスケッチ描画をベクトル表現することで新しいスケッチを描画する手法を提案 14
提案手法 > 入力と出力 入力と出力 ● ● 入力 忍者が戦うBGM ○ Source Music:開発中のゲームに使う準備済の BGM ○ Source Scene:Source Musicを使うシーン ○ Target Scene:Target Musicを使うシーン 戦う 出力 ○ Target Music:開発中のゲームの Target Sceneに合うBGM 忍者の恋愛BGM 恋愛 EE gg GG M M AA nn 15
提案手法 > 検索システム 検索システム ● Source MusicをVAEでベクトルzpに変換 ● Source Sceneと同じシーンで使うBGMのベクトルの中心cpを計算 ● Target Sceneで同じシーンで使うBGMのベクトルの中心cqを計算 zp cp cq 16
提案手法 > 検索システム 検索システム ● Target Musicのベクトルをzqとする ● zgs - cs = zgt - ct ● z p - cp = z q - cq ● z p - cp + cq = z q zp cp zq cq 17
提案手法 > 検索システム 検索システム ● Target Musicのベクトルをzqとする ● zgs - cs = zgt - ct ● z p - cp = z q - cq ● z p - cp + cq = z q zp cp zq cq 18
提案手法 > 検索システム 検索システム ● Target Musicのベクトルをzqとする ● zgs - cs = zgt - ct ● z p - cp = z q - cq ● z p - cp + cq = z q zp cp zq cq 19
提案手法 > 検索システム 検索システム ● ベクトルzqとBGMのベクトルの距離を計算 ● 距離を基準にBGMを昇順ソート Title Vector 1 BGM1 z1 2 BGM2 3 : BGM3 Title Dist 2 BGM2 d2 z2 3 BGM3 d3 z3 1 : BGM1 z2 z3 d2 d3 zq d1 d1 z1 20
提案手法 > BGMのベクトル BGMのベクトル ● VAEの潜在変数 ○ KLDが連続性を緩やかに保証 ○ 仮説を満たす可能性が高い Encoder KLD MSE z Decoder 21
提案手法 > BGMのベクトル BGMのベクトル ● VAEの潜在変数 ● 音響特徴 ○ KLDが連続性を緩やかに保証 ○ テンポ:そのまま用いる ○ 仮説を満たす可能性が高い ○ 音量:そのまま用いる ○ 音高:中央値を用いる ○ 調性:五度圏表の座標を用いる Encoder KLD MSE z テンポ 音量 音高 調性 Decoder 22
提案手法 > BGMのベクトル > エンコーダ エンコーダ ● 畳み込みで実装 ● 複数の経路を実装 周波数の畳み込み 1. BatchNormalization 2. Conv2D ● Kernel: 1025×1 ● Stride: 1×1 3. ReLU 周波数:1025次元 時系列:256次元 時系列の畳み込み 1025×256×32 1025×1×32 1×256×256 1×1×256 1. BatchNormalization 2. Conv2D ● Kernel: 1×8 ● Stride: 1×4 3. ReLU 128 23
提案手法 > シーンの中心 シーンの中心 ● ● シーンデータを作成 ○ 1列目にBGMを使うシーンのタグを格納 ○ 2列目にBGMのベクトルを格納 指定されたシーンと同じシーンで使うBGMのベクトルの中央値を計算 Scene Tag Vector 1 オープニング z1 2 ラスボス/戦い z2 3 オープニング /街 z3 : 24
提案手法 > シーンの中心 シーンの中心 ● ● シーンデータを作成 ○ 1列目にBGMを使うシーンのタグを格納 ○ 2列目にBGMのベクトルを格納 指定されたシーンと同じシーンで使うBGMのベクトルの中央値を計算 Scene Tag Vector 1 オープニング z1 2 ラスボス/戦い z2 3 オープニング /街 z3 : 25
提案手法 > シーンの中心 シーンの中心 ● ● シーンデータを作成 ○ 1列目にBGMを使うシーンのタグを格納 ○ 2列目にBGMのベクトルを格納 指定されたシーンと同じシーンで使うBGMのベクトルの中央値を計算 Scene Tag 1 2 3 オープニング ラスボス/戦い オープニング /街 Vector Vector z1 z2 z3 抽出 1 z1 3 z3 : : 26
提案手法 > シーンの中心 シーンの中心 ● ● シーンデータを作成 ○ 1列目にBGMを使うシーンのタグを格納 ○ 2列目にBGMのベクトルを格納 指定されたシーンと同じシーンで使うBGMのベクトルの中央値を計算 Scene Tag 1 2 3 オープニング ラスボス/戦い オープニング /街 Vector Vector z1 z2 z3 抽出 1 z1 3 z3 中央値 Center c : : 27
DEMO 28
評価実験 > 目次 目次 ● ● ● 仮説検証 ○ BGMのベクトルのクラスタに関する仮説の検証 ○ BGMのベクトルとクラスタの中心の差に関する仮説の検証 客観評価 ○ EgGMAnのベクトルを予測する精度の評価 ○ EgGMAnのBGMを検索する精度の評価 主観評価 ○ EgGMAnが検索したBGM妥当性をアンケートで評価 ○ EgGMAnが検索したBGMの実用性をゲームジャムで評価 29
評価実験 > 仮説検証1 仮説検証 1 ● BGMのベクトルが各シーンでクラスタを作るか検証 ● BGMのベクトルを単純ベイズで分類したときの正答率を計算 ○ 正答率が大きい:仮説を満たす ○ 正答率が小さい:仮説を満たさない Source Sceneと Target Sceneを選択 各シーンで使うBGMの ベクトルを100個ずつ抽出 抽出したベクトルの75%で 単純ベイズを学習 抽出したベクトルの25%で 単純ベイズの正答率を計算 Src Scn Tgt Scn 30
評価実験 > 仮説検証1 仮説検証 1 ● 全ての場合の正答率を計算 ● シーンごとに平均 ● 数直線に表示 31
評価実験 > 仮説検証1 仮説検証 1 ● ● 結果 ○ 正答率大:ヒロイン,オープニング ○ 正答率小:街,夜 考察 ○ 出現する回数が少ないシーンの正答率が大きい ○ 出現する回数が多いシーンの正答率が小さい 32
評価実験 > 仮説検証2 仮説検証 2 ● BGMのベクトルと各シーンのクラスタの中心の差が一定か検証 ● zp, zq, cp, cqが成す図形と平行四辺形の類似度を計算 ○ 類似度が大きい:仮説を満たす ○ 類似度が小さい:仮説を満たさない あるゲームからSource Music, Traget Musicを選択 Src Mus 提案手法に従って zp, cp, cqを計算 zp Tgt Mus 自動で定まる VAEでTarget Musicの 実際のベクトルzqを計算 zp 式1でzp, zq, cp, cqが成す図形と 平行四辺形の類似度を計算 zp Tgt Mus zq zq 提案手法 平行四辺形 VAE Src Scn cp Tgt Scn cp cq cp cq cq 33
評価実験 > 仮説検証2 仮説検証 2 ● ● 結果 ○ 類似度大:UNDERTALE ○ 類似度小:テイルズ, ELDEN RING 考察 ○ 楽器やジャンルが共通した BGMが多い ゲームの類似度が大きい ○ BGMの楽器やジャンルをシーンごとに 使い分けるゲームの類似度が小さい 34
評価実験 > 仮説検証2 仮説検証 2 ● ● 結果 ○ 類似度大:街,ラスボス ○ 類似度小:遺跡~砂漠 考察 ○ 出現するゲームが多いシーンの類似 度が大きい ○ 出現するゲームが少ないシーンの類 似度が小さい ○ 戦いのシーンの類似度は例外的に小 さい 35
評価実験 > 客観評価1 客観評価 1 ● EgGMAnのTarget Musicのベクトルを予測する精度を評価 ● EgGMAnが予測したベクトルと実際のベクトルの誤差を計算 ○ 誤差が小さい:予測精度が高い ○ 誤差が大きい:予測精度が低い あるゲームからSource Music, Traget Musicを選択 Tgt Mus Src Mus 自動で定まる EgGMAnでTarget Musicの ベクトルzqを予測 Tgt Mus VAEでTarget Musicの 実際のベクトルztを計算 VAE zt zp zq zq ベクトルzq, ztの誤差を計算 zt 誤差 zq EgGMAn Src Scn cp Tgt Scn cq 36
評価実験 > 客観評価1 客観評価 1 ● ● 結果 ○ 誤差小:モンハンワールド ○ 誤差大:テイルズ, ELDEN RING 考察 ○ 楽器やジャンルが共通した BGMが多い ゲームの誤差が小さい ○ BGMの楽器やジャンルをシーンごとに 使い分けるゲームの誤差が大きい 37
評価実験 > 客観評価1 客観評価 1 ● ● 結果 ○ 誤差小:雪~森林 ○ 誤差大:遺跡 考察 ○ 場所に関係するシーンの誤差が小さい ○ 場所に関係ないシーンの誤差が大きい ○ 遺跡のシーンの誤差は例外的に大きい 38
評価実験 > 客観評価2 客観評価 2 ● EgGMAnのTarget Musicを検索する精度を評価 ● EgGMAnがTarget Musicを検索した順位を割合で計算 ○ 順位が小さい:検索精度が高い ○ 順位が大きい:検索精度が低い ゲームGからSource Music, Traget Musicを選択 Tgt Mus Src Mus 自動で定まる EgGMAnでTarget Musicの ベクトルzqを予測 VAEでTarget MusicとゲームG の全てBGMのベクトルを計算 Tgt Mus zt 2個 0.6 zq z2 zq z2 z3 2.0 cp Tgt Scn zt zp EgGMAn Src Scn zqとの距離がzqとztの距離より 小さいベクトルを数える cq z1 zn z1 0.4 zq 0.3 z3 1.1 zn 39
評価実験 > 客観評価2 客観評価 2 ● 結果 順位小:UNDERTALE,モンハンワー ○ ルド 順位大:ペルソナ 5 ○ ● 考察 ○ ジャンルが共通した BGMが多いゲー ムの順位が小さい ○ BGMのジャンルをシーンごとに使い 分けるゲームの順位が大きい 40
評価実験 > 客観評価2 客観評価 2 ● ● 結果 ○ 順位小:オープニング ○ 順位大:街 考察 ○ 出現回数が多いシーンの順位が 小さい ○ 出現回数が少ないシーンの順位 が大きい 41
評価実験 > 主観評価1 主観評価 1 ● EgGMAnが検索したBGMの妥当性をアンケートで評価 ● EgGMAnが上位で検索したBGMが適切と判断された割合を計算 ○ 割合が大きい:妥当性がある ○ 割合が小さい:妥当性がない ゲームGのTarget SceneのBGM を検索して上位/下位4曲を抽出 ゲームGを遊んだ被験者が8曲 からゲームGに合う4曲を選択 別の被験者が8曲から Target Sceneに合う4曲を選択 選択したBGMの中に上位の BGMが何曲あるか割合を計算 Title BGM 1 1,3,4,7がゲームGに合う 1,2,7,8がTgt Scnに合う 選択 割合 ゲームG 1,3,4,7 に合う 0.75 Tgt Scn に合う 0.50 1 : 4 : n-4 : n-1 上位 BGM 4 BGM n-4 下位 BGM n-1 1 : 8 Title BGM 1 BGM n-1 ×10 1 : 8 Title BGM 1 BGM n-1 ×10 1,2,7,8 42
評価実験 > 主観評価1 > ゲーム ゲーム ● ● 結果 ○ 割合大:ペルソナ 5 ○ 割合小:FINAL FANTASY VII 考察 ○ 新しいゲームの割合が大きい ○ EgGMAnの妥当性ではなく BGMの思 い出しやすさの評価 43
評価実験 > 主観評価1 > ゲーム ゲーム ● ● 結果 ○ 割合大:戦い ○ 割合小:オープニング 考察 ○ 出現回数が多いシーンの割合が 大きい ○ 出現回数が少ないシーンの割合 が小さい 44
評価実験 > 主観評価1 > シーン シーン ● ● 結果 ○ 割合大:ペルソナ 5 ○ 割合小:モンハンワールド 考察 ○ シーンに合うと判断される割合のゲー ムごとの平均は狭い範囲に分布 ○ シーンに合うと判断される割合にゲー ムは関係ない 45
評価実験 > 主観評価1 > シーン シーン ● ● 結果 ○ 割合大:戦い,ラスボス ○ 割合小:街 考察 ○ 戦闘に関係するシーンの割合が 大きい ○ 戦闘に関係ないシーンの割合が 小さい 46
評価実験 > 主観評価2 主観評価 2 ● EgGMAnが検索したBGMの実用性をゲームジャムで評価 ● EgGMAnでゲームを開発してEgGMAnが検索したBGMを評価 ○ 評価が高い:実用性あり ○ 評価が低い:実用性なし EgGMAnをウェブサイト として実装 ゲームジャム前に EgGMAnを配布 ゲームジャム中はEgGMAnを 自由に利用して頂く EgGMAn EgGMAn ゲームジャム後に アンケートに回答して頂く 意図したBGMを検索したか ゲームに合うBGMを検索したか シーンに合うBGMを検索したか 47
評価実験 > 主観評価2 主観評価 2 Global Game Jam 2025 EgGMAn ● 会場:東京工科大学 ● PythonとStreamlitで実装 ● 時間:48時間 ● Streamlit Cloudにデプロイ ● 参加者:59名 ● EgGMAnの利用者:6名 ● アンケートの回答者: 4名 アンケート:以下の項目を5段階評価 ● EgGMAnは意図したBGMを検索したか ● EgGMAnはゲームに合う BGMを検索したか ● EgGMAnはシーンに合う BGMを検索したか 48
評価実験 > 主観評価2 > 結果 結果 ● 評価は3点から5点の範囲に分布 ● 項目ごとの評価の平均は全て4点 ● 回答ごとの評価の平均は3.3点から4.7点の範囲に分布 49
評価実験 > 主観評価2 > 考察 考察 ● ● ● 評価の考察 ○ 提案手法が検索した BGMは概ね高評価 ○ 特殊なゲームを開発したチームが他のチームと比較して低評価 自由回答の考察 ○ 適切なBGMと不適切なBGMが混在していた ○ 適切なBGMを検索するためには試行錯誤が必要だった EgGMAnが検索したBGMを収録したゲームが初めて開発された ○ Title:SpeechBubbleMaker ○ URL:https://globalgamejam.org/games/2025/paoxiaochuikichushichuikifeihashi-1 50
おわりに > まとめ まとめ ● 目的:ゲームとシーンの特徴を考慮してBGMを検索 ● 手法 ● ● ○ Source MusicのベクトルzpとSource SceneとTarget Scene中心cp, cqを 計算 ○ Target Musicのベクトルzqをzp - cp + cq = zqで予測 考察 ○ 類似したBGMが多いゲームを開発する場合に適切な BGMを検索 ○ Target Sceneが多くのゲームに複数実装されるシーンの場合に適切な BGMを検索 今後 ○ BGMのベクトルやシーンの中心の計算方法を再検討 ○ シーンの入力方法やインタフェースの実装方法を再検討 51
おわりに > 謝辞 謝辞 本発表あたり,ご協力いただいた皆様に心より感謝申し上げます. ● 平#重行先生 / 京都産業大学 ● 小島健二様 / 株式会社カプコン ● 岸智也様 / 株式会社カプコン ● 一條貴彰様 / 株式会社ヘッドハイ ● 伊藤彰教先生 / 東京工科大学 ● 三上浩司先生 / 東京工科大学 ● 土田善紀様 / 株式会社スクウェア・エニックス 52
ゲームとシーンの特徴を考慮する BGM検索エンジンの開発 日本大学北原研究室 林龍星,北原鉄朗 53