公立はこだて未来大学 2023 年度 システム情報科学実習
グループ報告書
Future University Hakodate 2023 Systems Information Science PracticeGroup Report

プロジェクト名
クリエイティブ AI

Project Name
CreativeAI

グループ名
システム班
物語班
視覚班
音響班

Group Name
SystemStory
VisualAudio
プロジェクト番号/Project No.

07

プロジェクトリーダ/Project Leader
山本拓摩

Takuma Yamamoto

グループリーダ/Group Leader
村岡広海, 西口優太朗, 松下瑚南, 時永空侑Hiromi Muraoka, Yutaro Nishiguchi, Konan Matsushita, Kuu Tokinaga

グループメンバ/Group Member村岡広海

Hiromi Muraoka

田中良磨

Ryoma Tanaka

中村慶琉

Keiryu Nakamura

山崎雄太

Yuta Yamasaki

西口優太朗

Yutaro Nishiguchi

山本拓摩

Takuma Yamamoto

大柳裕士

Hiroto Oyanagi

関谷天希

Takaki Sekiya

松下瑚南

Konan Matsushita

佐藤玲

Ren Sato

森正樹

Masaki Mori

時永空侑Kuu Tokinaga

尾崎陽彦

Haruhiko Ozaki

鈴木壱

Hajime Suzuki

長瀬悠太

Haruta Nagase

指導教員
村井源 迎山和司 田柳恵美子

平田圭二 吉田博則

AdvisorHajime Murai Kazushi Mukaiyama Emiko Tayanagi Keiji Hirata Hironori Yoshida

提出日
2024 年 1 月 17 日

Date of Submission
January 17, 2024

-2-

概要
本プロジェクトでは、人工知能を用いてゲームの制作を行う。ゲームには、物語、音楽、視覚的要素、ゲームシステムなど創造的な活動を行うフィールドが多くある。そのようなゲームの制作を通して、人工知能を実際の開発現場でどのように活かし、人工知能を用いてどのように創造性を生み出すかを追求する。
各グループは、物語・音響・視覚・システムに分かれ、それぞれ人工知能の利点を活かし、問題に向き合いながら作りあげたパーツを一つのゲームとして統合した。
キーワード

人工知能, 創造性, 自動生成, プログラミング（※文責: 山本拓摩）-i-Abstract
In this project, we create a game using artiﬁcial intelligence. Games have many ﬁelds
for creative activities such as story, music, visual elements, and game system. Throughthe creation of such the game, we pursue how artiﬁcial intelligence can be used in actual
development sites and how creativity can be generated using artiﬁcial intelligence.
The team was divided into the Story, Sound, Visual, and System groups, and each group
created parts while taking advantage of artiﬁcial intelligence and facing problems, andwe have integrated it into one game.
Keywordartiﬁcial intelligence, creativity, automatically generation, programming（※文責: 山本拓摩）- ii -

目次
第1章

はじめに

1

1.1

背景 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1

1.2

目的 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1

1.3

課題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1

プロジェクト概要

3

2.1

課題の設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

2.2

到達目標 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

2.3

班ごとの課題の割り当て . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

2.3.1

物語班 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

2.3.2

視覚班 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

2.3.3

音響班 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

2.3.4

システム班 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

第2章

第3章

3.1

3.2

3.3

3.4

3.5

物語班

5

はじめに . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

3.1.1

シナリオ生成の方針 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

3.1.2

生成系 AI の基本概念と定義 . . . . . . . . . . . . . . . . . . . . . . . . .

5

3.1.3

ループものの概要と定義 . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

生成系 AI について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6

3.2.1

使用した生成系 AI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6

3.2.2

生成系 AI の選定理由と特徴 . . . . . . . . . . . . . . . . . . . . . . . . .

6

3.2.3

生成系 AI 使用例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6

ループものについて . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7

3.3.1

ループものを選んだ理由 . . . . . . . . . . . . . . . . . . . . . . . . . . .

7

3.3.2

ループもの作品の隆盛 . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7

3.3.3

ループものの特徴と魅力 . . . . . . . . . . . . . . . . . . . . . . . . . . .

7

3.3.4

ループの原因と仕組み . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8

世界観とキャラクターの設定. . . . . . . . . . . . . . . . . . . . . . . . . . . .

8

3.4.1

世界観の設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8

3.4.2

キャラクターの設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9

分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9

3.5.1

分析の目的 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9

3.5.2

分析対象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

3.5.3

手法

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

3.5.4

ループ間構造分析の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

3.5.5

ループ間構造分析の結果 . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

3.5.6

ループ間構造分析結果の解釈 . . . . . . . . . . . . . . . . . . . . . . . .

12- iii -

3.6

第4章

3.5.7

イベント分析の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13

3.5.8

イベント分析の結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13

3.5.9

イベント分析結果の解釈 . . . . . . . . . . . . . . . . . . . . . . . . . . .

14

シナリオと各種データの作成. . . . . . . . . . . . . . . . . . . . . . . . . . . .

16

3.6.1

準備

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16

3.6.2

プロンプトの作成とあらすじの生成 . . . . . . . . . . . . . . . . . . . . .

16

3.6.3

セリフ文自動変換システム . . . . . . . . . . . . . . . . . . . . . . . . . .

18

3.6.4

執筆

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18

3.6.5

各種データの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19

視覚班

20

4.1

はじめに . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20

4.2

生成 AI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20

4.2.1

Stable Diﬀusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20

4.2.2

ControlNet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20

4.2.3

DALL-E3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

アニメーション制作における AI の活用 . . . . . . . . . . . . . . . . . . . . . . .

21

4.3

4.4

4.5

4.6

第5章

4.3.1

背景

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

4.3.2

手法

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

4.3.3

手法の有用性を検討 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23

4.3.4

追加学習 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23

4.3.5

アニメーション制作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

26

4.3.6

アニメーション制作における今後の展望. . . . . . . . . . . . . . . . . .

26

マップデザイン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

27

4.4.1

マップの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

27

4.4.2

遠景の制作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

27

4.4.3

近景の制作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

28

4.4.4

マップギミックの制作 . . . . . . . . . . . . . . . . . . . . . . . . . . . .

31

UI デザイン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

37

4.5.1

UI の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

37

4.5.2

UI の制作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

38

敵キャラクターデザイン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

40

4.6.1

敵キャラクターの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . .

40

4.6.2

3D モデルの制作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

41

音響班

42

5.1

目標 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

42

5.2

方針 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

42

5.3

先行研究 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

43

Russell と Hevner の音楽の感情分析 . . . . . . . . . . . . . . . . . . . .

43

音響特徴量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

43

5.4.1

BPM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

43

5.4.2

スペクトル重心

44

5.3.1
5.4

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- iv -

5.5

5.6

5.4.3

クロマ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

44

5.4.4

ZCR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

44

5.4.5

RMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

44

使用したソフトウェア・Python ライブラリ. . . . . . . . . . . . . . . . . . . .

45

5.5.1

Librosa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

45

5.5.2

TensorFlow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

45

5.5.3

Pydub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

46

5.5.4

Demucs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

46

5.5.5

FFmpeg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

47

データセット作成システム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

47

5.6.1

音響特徴量抽出. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

47

5.6.2

One-Hot ベクトル化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

48

5.6.3

データセット作成システムの統合 . . . . . . . . . . . . . . . . . . . . . .

49

5.6.4

データセット作成システムの運用方法 . . . . . . . . . . . . . . . . . . . .

50

5.7

作品の分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

51

5.8

学習モデル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

53

5.9

選択用音源 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

54

5.10

音源選択・合成システム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

56

5.10.1 音源選択システム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

56

5.10.2 音源合成システム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

57

システム班

59

6.1

方針 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

59

6.2

マップの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

59

6.2.1

連続バトルイベント . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

60

6.2.2

移動システム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

60

6.2.3

落下する床 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

61

6.2.4

移動する床 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

62

6.2.5

レバー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

62

6.2.6

破壊可能な地形. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

62

6.2.7

アイテム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

63

6.2.8

スイッチ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

63

6.2.9

アニメーションのついた消える壁 . . . . . . . . . . . . . . . . . . . . . .

64

6.2.10 鍵のかかった壁 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

64

6.2.11 体力を増減させる場所 . . . . . . . . . . . . . . . . . . . . . . . . . . . .

64

6.2.12 背景の自然な移動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

64

マップデザイン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

65

6.3.1

チュートリアルエリア . . . . . . . . . . . . . . . . . . . . . . . . . . . .

65

6.3.2

セーフエリア . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

66

6.3.3

正面玄関と廊下エリア . . . . . . . . . . . . . . . . . . . . . . . . . . . .

66

6.3.4

ボスキャラクターエリア . . . . . . . . . . . . . . . . . . . . . . . . . . .

66

6.3.5

ジャンプエリア

67

第6章

6.3

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
-v-

6.4

6.3.6

2 段ジャンプエリア . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

67

6.3.7

書庫エリア . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

67

6.3.8

毒エリア . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

68

6.3.9

レバーエリア . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

68

主人公の制御 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

68

6.4.1

操作・動作環境

6.4.2

移動. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

69. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

69

6.4.3

近距離攻撃 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

70

6.4.4

遠距離攻撃 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

71

6.4.5

攻撃の威力の変化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

71

6.4.6

体力・残機の管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

71

システム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

72

6.5.1

BGM システム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

72

6.5.2

会話システム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

72

6.5.3

メニュー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

74

6.5.4

体力と残機の表示 UI . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

76

6.5.5

ボスキャラクターの体力表示 UI . . . . . . . . . . . . . . . . . . . . . . .

76

6.5.6

フラグ管理システム . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

77

6.5.7

オブジェクトの消去と出現システム . . . . . . . . . . . . . . . . . . . . .

77

敵キャラクター概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

78

6.6.1

敵1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

78

6.6.2

敵2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

78

6.6.3

敵3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

79

6.6.4

敵4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

79

6.6.5

敵5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

79

6.6.6

ボスキャラクター 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

80

6.6.7

ボスキャラクター 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

80

6.6.8

ボスキャラクター 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

81

6.6.9

強化学習について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

82

6.6.10 主人公のエージェントについて . . . . . . . . . . . . . . . . . . . . . . .

83

6.6.11 最終ボスキャラクター . . . . . . . . . . . . . . . . . . . . . . . . . . . .

83

6.6.12 隠しボスキャラクター . . . . . . . . . . . . . . . . . . . . . . . . . . . .

86

統合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

87

中間発表

88

7.1

概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

88

7.2

成果物 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

88

7.2.1

ポスター . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

88

7.2.2

発表用スライド. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

90

評価 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

91

成果発表

94

概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

94

6.5

6.6

6.7
第7章

7.3
第8章

8.1

- vi -

制作物 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

94

8.2.1

ポスター . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

94

8.2.2

発表用スライド. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

95

8.2.3

デモ

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

96

評価 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

97

まとめ

99

9.1

全体 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

99

9.2

各グループ成果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

99

9.2.1

物語班 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

99

9.2.2

視覚班 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

9.2.3

音響班 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

9.2.4

システム班 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

8.2

8.3
第9章

第 10 章 反省・今後の展望

10.1

101

物語班 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

10.1.1 反省 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
10.1.2 展望 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
10.2

視覚班 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

10.2.1 反省 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
10.2.2 展望 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
10.3

音響班 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

10.3.1 反省 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
10.3.2 展望 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
10.4

システム班 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

10.4.1 反省 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
10.4.2 展望 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
10.5

全体 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

10.5.1 反省 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
10.5.2 展望 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
参考文献

108

- vii -

CreativeAI

第 1 章 はじめに
1.1

背景

近年，人工知能に創造性を持たせる研究が数多く行われている，例として「きまぐれ人工知能プ
ロジェクト作家ですのよ」が挙げられる [1]．このプロジェクトは，人工知能にショートショートを創作させることを目標としており，2016 年には星新一賞の一次審査を通過したことで話題を集めた．その他にも画像，音楽など様々な分野に渡って人工知能で自動生成を行う研究が進んでいる．
ゲームにはゲームシステム，視覚要素，音響システム，BGM，ゲームシナリオなど様々な創作的な要素が含まれている．そこで，本プロジェクトでは，それらの制作に人工知能を利用すること
で，人工知能を実際の開発現場でどのように活かし，人工知能を用いてどのように創造性を生み出すかを追求する．
今年度は，ChatGPT や StableDiﬀusion 等の生成系 AI ツールの台頭により，昨年度までと状況が変化した．我々は，それら生成系 AI ツールも利用しながらプロジェクトに取り組む．
（※文責: 山本拓摩）

1.2

目的

本プロジェクトは，様々な創作的要素を持つゲームの開発を通じて，人工知能による創造性の再
現と自動生成の可能性を追求することを目的とする．今年度は，アドベンチャーゲームの制作を目標として開発を行う．特に，繋がった広いマップを持ち，スタートに対して明確なゴールがないという特徴を持つ探索型 2D アクションゲームを開発する．
（※文責: 山本拓摩）

1.3

課題

目的を達成するために以下の課題を解決する．

• 自動生成する要素の決定• 自動生成の実装• キャラクターや世界観などゲームの設定の決定• ゲームのシナリオの制作• ゲームの音響システムの開発• BGM や SE の選択，制作• ゲームのマップの制作• ゲームギミックの実装• キャラクターや背景などゲームの視覚要素の制作• それぞれの成果物のゲーム基盤システムへの統合
Group Report of 2023 SISP

-1-Group Number 07

CreativeAI（※文責: 山本拓摩）Group Report of 2023 SISP

-2-Group Number 07

CreativeAI

第 2 章 プロジェクト概要
2.1

課題の設定

プロジェクトが開始して，まずゲームのジャンルを決定した．その結果，2D アドベンチャー
ゲームというゲームジャンルに決定した．特に，繋がった広いマップを持ち，スタートに対して明確なゴールがないという特徴を持つ探索型 2D アクションゲームを目指すこととなった．そして，人工知能を用いた創造性の再現やゲームの完成のために，「ループものシナリオの自動生成」，「曲の自動アレンジシステムの実現」，「キャラクターアニメーションの自動化」，「ギミックやキャラク
ターアクションなどゲームのクオリティを上げる要素の実装」を主な課題に設定した．
（※文責: 山本拓摩）

2.2

到達目標

本プロジェクトでは，ゲームを構成する要素ごとに物語・音響・視覚・システムの 4 つのグルー
プに分かれ，自動生成システムの開発や AI を利用した素材制作など各グループで設定した課題に取り組み，それぞれの成果物を統合して 1 つのゲームを完成させることを目標とする．
（※文責: 山本拓摩）

2.3

班ごとの課題の割り当て

2.3.1

物語班

物語班は，ゲームシナリオの制作を担当する．今年度は，ループものシナリオの自動生成を目標として活動を行う．その目標を達成するために，キャラクター情報と世界観の設定，ループもの作
品の分析，分析結果を元にし，生成系 AI を用いたシナリオの制作，セリフ文自動変換システムの開発を主な課題として取り組んだ．近年，OpenAI の ChatGPT を代表とする生成系 AI の台頭により，文章を生み出すという活動に大きな変化が現れた．シナリオ制作においても例外ではなく，単純な物語であれば生成系 AI を使用して生み出すことができる．しかし，複雑な物語の生成など
生成系 AI が苦手とする分野も多く存在している．そのため，生成系 AI の利点をどのように生かすかや欠点を人の力でどこまで補うか検討しながら生成系 AI を活用していくことが重要であり，
それがうまくできれば，生成系 AI をシナリオ制作など創作の場でも有効に利用することができ，工数の削減も可能になる．そこで，我々は chatGPT などの生成系 AI を利用して，シナリオ制作の過程の一部を効率化して工数を削減できないかや，生成系 AI にうまく創造性を引き出させる方法はないかなどを試行錯誤することも課題として取り組む.
（※文責: 山本拓摩）Group Report of 2023 SISP

-3-Group Number 07

CreativeAI

2.3.2

視覚班

視覚班は主にゲームのビジュアル要素の制作を担当する．ゲームはストーリーやキャラクター
の魅力や没入感のある体験を人に伝えなければならない．人間の五感による知覚の割合は，視覚が 83% を占めているため，強い印象を効果的に与えるためにはビジュアル要素が必須要素となる．
そこで，キャラクターや背景，その他の必要素材の制作に加え，特に歩きや攻撃といったキャラク
ターの映像を AI を用いて自動生成させることを目的とする．この目的の有意性は，AI によるアニメーションの制作により，1 フレームごとに 1 つの絵を制作するという最も負荷が高い作業を大幅に軽減することが可能になることである．
（※文責: 佐藤玲）

2.3.3

音響班

音響班はゲームへの没入感を向上させるため BGM の作成を目標として，具体的にはゲームの雰
囲気や状況に合わせた BGM を自動でアレンジすることを検討している．現在，曲のアレンジを行う際，状況・雰囲気・テーマに沿いつつも，違和感のないように人力で変更を加えているものが多い．そのため，アレンジする人の感性に依存しており，作業量も非常に多い．そこで，作業量を減らし，感性に依存せずに曲のアレンジを違和感がないように行うために，雰囲気や状況に合わせて

BGM を自動でアレンジするシステムの実装を目指す．また，ゲームの BGM であるため，音が途切れることのないループする BGM にもしたいと考えている．
（※文責: 尾崎陽彦）

2.3.4

システム班

システム班には目標が 3 つ存在する．目標の 1 つは，各班の成果物を統合することである．最終
的には，各班の成果物を 1 つのゲームに統合し，遊べる状態にする必要があるため，その役割をシ
ステム班が担当する．また，各班の成果物が出来上がるのは後期の終盤になるため，最後に統合しやすいように工夫をしながら統合の基盤となるゲームの開発を行う．たとえば，ゲームを開発する
都合上主人公の立ち絵が無くてはゲーム開発ができないため，一時的に仮のイラストで開発を行い，最終的には視覚班が作成したイラストにすぐに差し替えられるような改良のしやすいプログラ
ムを意識して開発する．それに加えて，データの大きさや種類を後から変更するときにも改良がしやすいようなプログラムを開発する．目標の 2 つ目は，単純に各班の成果物を統合するだけではな
く，さまざまな要素をゲームに追加することである．たとえば，プレイヤーが探索できるエリアを複数開発したり，ギミック，敵キャラクターを開発してそれらのエリアに配置しゲーム難易度を上げたりする．目標の 3 つ目は，強化学習を用いて一部の敵キャラクターの行動を制御することである．強化学習を用いることによって，プログラムで設計した単純な行動ではなく，自律的に状況に合わせた行動を可能にする．この目標の 3 つ目の目標は後期の活動から掲げたものであり，前期の活動の時点では時間的に余裕があれば後期から目標として加える計画であった．
（※文責: 村岡広海）

Group Report of 2023 SISP

-4-Group Number 07

CreativeAI

第 3 章 物語班
3.1

はじめに

3.1.1

シナリオ生成の方針

ループものシナリオの自動生成という目標を達成するため, まず他班の活動にも影響を与える世界観, キャラクター情報の設定を行う. 次に，選定したいくつかのループもの作品を読み, ループもの「面白さ」を構成するものについて議論し, 分析する対象を決める. そして, 決定した対象を分析
し, 分析した内容を反映したシナリオのあらすじを AI を用いて生成する. そのあらすじをもとにして, 詳細なシナリオを執筆する. このような方針でループものシナリオの自動生成に取り組む.
（※文責: 山本拓摩）

3.1.2

生成系 AI の基本概念と定義

生成系 AI（Generative AI）は, 学習データをもとに新しいアウトプットを生成する人工知能の一分野である. 具体的には, デジタルの画像, 文章, コードなどのテキストを生成する AI を指す.
生成系 AI は, ディープラーニングの一形態であり, 特に Transformer などの最新の技術を用いて構築される非常に大規模な機械学習モデルである.
現在, 生成系 AI の中にはさまざまな種類が存在する. 例えば, 画像生成 AI の一つ

stablediﬀusion や, テキスト生成 AI の一つである”ChatGPT”, ブラウジング機能を備えた検索 AI の一つである”BingAI”などがある. これらの生成系 AI は, 高度な学習モデルを活用することで, 画像やテキストの生成など, 多様なタスクに対応している.
使用した生成系 AI やその特徴, 使用例は 2 章にて記述する.
（※文責: 大柳裕士）

3.1.3

ループものの概要と定義

近年，ループものと呼ばれるジャンルの作品が続々と生み出されている．『時をかける少女』や『Re: ゼロから始める異世界生活』などに代表されるループものは，現在では人気ジャンルの一つである．ループとは輪や環，物事が繰り返すことを意味する単語であり，ループものは同じ期間や出来事を何度も繰り返す作品である．ループものとされる作品は 1900 年代から存在しており，元々は SF のジャンルの中の一つだと考えられていた．しかし，近年では一般に SF 作品とされていない作品でもループものであるとされる作品が増加している．例えば『Re: ゼロから始める異世界生活』は異世界ものとして扱われており，SF とは別のジャンルである．このように，ループものの正確な定義はあいまいである．
物語班ではループものの物語の制作を行うが，そのためにはループものの定義を定めなければならない．栗原 (2019) はループものの定義を「時間遡行などの時間的移動を伴い，時間的に同じ状
況を 2 回以上繰り返す演出の含まれる作品．あるいは，時間遡行などの時間的移動を伴わず，同Group Report of 2023 SISP

-5-Group Number 07

CreativeAI
じような場面や状況を 2 回以上繰り返す現象を意図的に描写していると判断できるもの」とした[2]．物語班ではこの定義をもとに，ループものを「物語の中で時間が戻ったり，世界が変わったりして同じ状況や出来事が 2 回以上起こり，それが描写されているもの」と定義した．時間が戻るというのはタイムスリップやタイムリープなどによって過去に到達することであり，『時をかける少女』など多くのループものはこの方法でループしている．世界が変わるというのは，現在の世界とは別の並行世界に移動することで時間が変化したように見せることである．この例は少ないが，『STEINS;GATE』などはこれに該当する．
ループものに関するより詳細な説明は 3 章にて行う．
（※文責: 関谷天希）

3.2

生成系 AI について

3.2.1

使用した生成系 AI

物語班では, Microsoft が開発した BingAI のクリエイティブモードを活用した. BingAI は,

GPT4.0 というパラメーター数が最も多いモデルを搭載しており, 高い品質の文章生成が期待でき
る. 特にクリエイティブモードは, 詩や小説などのより創造的な表現やアイデアの生成に特化しているため, 物語のあらすじを作る目的で活用できると考えた.
（※文責: 大柳裕士）

3.2.2

生成系 AI の選定理由と特徴

生成系 AI の選定にあたり, ChatGPT も検討したが, 最終的に BingAI のクリエイティブモード
を使用することに決定した. その理由は, BingAI が GPT4.0 を搭載しており, 無料で扱うことができる唯一のツールだからである. GPT4.0 は, GPT3.5 が進化したモデルであり, この GPT4.0 を搭載した生成系 AI は高い品質の文章の生成を行うことができる.
（※文責: 大柳裕士）

3.2.3

生成系 AI 使用例

BingAI などの生成系 AI を使用するにあたってプロンプトを元に文字を出力する必要がある.
このプロンプトとは何かを説明するためにいかに実際に生成系 AI にプロンプトを入力して物語の大まかなストーリーを生成してみる. 以下に示すことは実際に生成したプロンプトである.
入力内容↓
あなたはゲームのシナリオライターです．
設定をもとにキャラクターを作成し，あらすじをもとにしてストーリーを作成してください．登場
人物は主人公が一人，ヒントを出す役割のキャラクターが四人， ラスボスが一人として，シナリオを作成してください．
あらすじは以下の通りです．
深海海洋学者が深海の都市を探検し, 深海の都市の謎をとき, 無事に生還するまでの話．

Group Report of 2023 SISP

-6-Group Number 07

CreativeAI
このように生成系 AI に出す指示の内容のことをプロンプトといい, このプロンプトを入力した
結果, 付録 1 のような出力を見ることができる. 実際に物語らしいものを生成できたことがわかる.
しかし, 生成系 AI は, 物語を生成する際に物語の構造や特徴を理解することができないために, プ
ロンプトをしっかりと組まなければ, 物語の意味の破綻や矛盾がおこる可能性がある. そのため, 生成系 AI の外部で物語の構造や特徴を補完する必要がある. 物語班としてはゲームストーリーの意
味の破綻や矛盾が起こらないように, ゲームのシナリオを生成していくことを目指した.
（※文責: 大柳裕士）

3.3

ループものについて

3.3.1

ループものを選んだ理由

物語班がループものを選んだ理由の一つとして，作業量の削減が挙げられる．ループものはその性質上，物語の中で同じ期間，同じ場所で同じ出来事が起こることが多い．よってゲームを作るにあたって，同じマップやセリフを一部そのまま使い続けることが可能である．これにより作業量が削減され，他の部分に重点を置くことも可能になる．
生成系 AI との相性が良いと考えたのも理由の一つである．ループものでは，同じ出来事であっても，ループによって違う視点や立場で描かれることがある．これは同じ条件で出力させても，少しずつ違う結果を出力することが多い生成系 AI と相性が良いのではないかと考えた．
また，ループものの構造を解明し，数値として分析している研究はほとんど存在していない．そのため新規性があり，興味深い分野であると考えた．
（※文責: 関谷天希）

3.3.2

ループもの作品の隆盛

ループものは近年では小説だけでなく，アニメや映画，ゲームなど様々な媒体で取り扱われている．特に 2000 年代に入ると，ライトノベルやノベルゲームなどの分野にループものと呼ばれる作品が散見されるようになる．『All you need is kill』や『ひぐらしのなく頃に』など様々なループものが生み出され，これらはサブカルチャーとも高い親和性を示し，多くの人気作品が生まれた．
さらに現在は『小説家になろう』のような数多くの小説投稿サイトが存在する．これにより一般人でも多くの人々に作品を公開することが可能になった．そのため『Re: ゼロから始める異世界生活』など様々なループものが次々と生み出されており，これからもその数は増え続けるだろう．
（※文責: 関谷天希）

3.3.3

ループものの特徴と魅力

物語の魅力として，突破の困難な障害に主人公が挑み，失敗や挫折を克服し，努力や仲間との絆
を通じて乗り越える姿に心が惹かれるというものがある．ループものではこれをループに落とし込んでいるものが多い．
大きな障害や謎が主人公を襲い，それを何度もループすることで解決する．しかし，未来の経験

Group Report of 2023 SISP

-7-Group Number 07

CreativeAIを活かして立ち回ったとしても，さらなる壁が立ちはだかり，主人公を阻むことが多い．そんな中にあっても諦めず，ループを繰り返し続ける中で成長していく主人公の姿に読者や視聴者は胸をうたれる．失敗を何度も描写し，主人公に立ちはだかるものの強大さを表すことで，それを乗り越えた時の達成感を増幅させる．
また，多くの物語は伏線を散りばめておき，後から回収することで視聴者や読者に気づきを与え，前のストーリーを読み返したいと思わせるような構造がよくある．ループものではこの伏線回
収もループの中で同じ出来事を何度も繰り返す中で行われる．これもループものの特徴であり，魅力といえるだろう．
（※文責: 関谷天希）

3.3.4

ループの原因と仕組み

単にループといっても，その原因や方法は作品によって様々である．時間が戻るループの原因にはタイムマシンの他にも，「死に戻り」という死ぬことで発動する能力によるリセットなどがある
が，これが発生する仕組みも作品によって様々だ．例えば『Re: ゼロから始める異世界生活』では，主人公が死ぬことがきっかけでタイムリープが起こり，過去に戻る．この作品では，魔法または呪いのような力で「死に戻り」が起こっている．しかし，同じく死に戻りが原因でループする『サマータイムレンダ』では，元々ループ能力を持った存在の力を授けられたことでループが発動している．
これらのループの仕組みの違いは作品の展開にも影響を及ぼす．『Re: ゼロから始める異世界生
活』は「死に戻り」が完全に主人公の能力となっているため，ループがシステムのような形で扱われている．それに対し，『サマータイムレンダ』では元は主人公の能力ではないため制限があり，徐々に力が弱まるなど，解決すべき問題として描かれている．
このように，ループものではループの原因が同じ作品であっても，その仕組みは大きく違う．この違いは，作品の展開に大きな影響を及ぼし，バラエティに富んだループものを生み出す要因になっている．
（※文責: 関谷天希）

3.4

世界観とキャラクターの設定

3.4.1

世界観の設定はじめに, プロジェクト全体の話し合いを行って意見を募った. ジャンルについて日常系ファン
タジーとシリアスホラーという 2 つの意見が出たため, 物語班が BingAI を用いて 2 つのジャンル
で仮の物語を生成し, それらを提示した上で投票を行った. その結果として, ジャンルはシリアスホ
ラーで決定した. その後再度プロジェクト全体に意見を募り, 舞台を深海として終末世界の要素を盛り込むという方針に決定した.
その後システム班と視覚班を交えて詳細についての議論を行い, 古代の宮殿をイメージしたデザインにすることとゲームの最後に戦う相手を模した朽ちた像を設置することを決定した.
その他の詳細な要素については物語生成方法が明確に定まった後キャラクター設定と同時に, 自動生成された部分や後から追加あるいは修正の必要があると判明した部分を設定した. 設定した部Group Report of 2023 SISP

-8-Group Number 07

CreativeAI分の例としては, マップとなる建物と周辺の背景史や世界観上での「人魚」のような種族にまつわる特徴といったものが挙げられる.
（※文責: 西口優太朗）

キャラクターの設定

3.4.2

舞台を深海と決定した後, キャラクターの設定を開始した. キャラクターについてもプロジェク
ト全体から意見を募った. 主人公が記憶喪失であること, ゲームにおける助言役が記憶を取り戻す
きっかけになることが要素として挙げられた.
その後の物語班での議論で, 主人公は人魚の少女であることで合意し, 外見的要素としては赤い目のみ決定した. 最終ボスについては主人公と同じ人魚でありながら, 倍程度の背丈を持ち不気味で恐怖感のある見た目とすることにした. 古代の宮殿の主のようなゲーム上のマップでの設定との関係性を作ることが決まった. その他のキャラクターについては, 会話可能なキャラクターを 3 人
用意すること, 敵対キャラクターを複数用意することを決定した.
会話可能なキャラクターはシナリオに関わるため物語班の担当とし, 敵対キャラクターについて
はシステム班と視覚班で複数体作成することに決定した.
キャラクターの命名については, 各キャラクターのモチーフとなるものや性格, あるいはキャラクターから連想される概念を用いてプロンプトを作成し, BingAI のクリエイティブモードで生成された回答を元に行った. 例えば, 最終ボスの名前である「ナディア」は, 「海を連想させる英語の
女性名を教えてください」といったプロンプトを作成し, その中にあった名前と説明から適していると判断し命名した. 必要に応じて, 回答の中にあった名前の説明を見た上で別個でその名前の由来を質問するプロンプトを作成し, 同様に BingAI に与えることで詳細な回答を得て利用した場合もあった.
会話可能なキャラクターはそれぞれ, 「移動方法を教える」, 「攻撃方法を教える」, 「最終ボスについて教える」という役割を持たせることを決め, キャラクター個別の設定にも役割に関連する要素を追加した.
その他の詳細な要素については物語生成方法が明確に定まった後世界観設定と同時に, 自動生成
された部分や後から追加あるいは修正の必要があると判明した部分を設定した. その例としては,キャラクターの背景ストーリーやマップの背景ストーリー, キャラクターの性格が挙げられる.
（※文責: 西口優太朗）

3.5

分析

3.5.1

分析の目的

今回分析を行う目的を決定する上で, まずループもの作品においてその面白さを作り出す要素を見出すという方針を定めた. 面白さを生み出す要素を発見するためには, ループものの物語を適切に切り分け各部が物語においてどのような役割を果たしているかを見出すことが必要であると考えた. よって今回物語班の分析では, 評価の高いループものの物語から構造を読み取り, 面白さを生む要素やその組み合わせを見出すことを目的とする.

Group Report of 2023 SISP

-9-Group Number 07

CreativeAI（※文責: 西口優太朗）

3.5.2

分析対象

物語論という分野で使われる手法を利用して分析を行うに当たって, 作品選考において対象作品が名作と言われるような質の高い作品であることという条件を満たす必要があった. 分析に使用する作品には, 生成したい物語の内容と共通する要素としてシリアスな展開が主であることを条件とした. また, 有限の時間で分析可能な作品を増やすために, メディア形式は可能な限り漫画を選択した. この条件を満たす作品として, 以下の 8 作品を選定した.

• Re: ゼロから始める異世界生活（漫画）• カラダ探し（漫画）• サマータイムレンダ（漫画）• 僕だけがいない街（漫画）• STEINS;GATE（漫画）• サイケまたしても（漫画）• All You Need Is Kill（漫画）• ひぐらしのなく頃に（小説）（※文責: 西口優太朗）

3.5.3

手法

物語論の分野で行われる手法に則り, 物語を要素ごとに分解して関係性を求める手法を取ることとした.
分析をする上で最初に KJ 法を用いてアイデアを整理することで, 物語の中のどのような要素を抽出するかを決定した. KJ 法とは, 断片的なアイデアを書き出してそれを分類することで思考を整理する方法である.
（※文責: 西口優太朗）
分析をする対象を決定する際に, 前年度の物語班が KJ 法を使用していたことを踏まえて, 分析の対象の決定に KJ 法を用いることを決めた. KJ 法を用いた結果, ループ間の構造, 共通するイベ
ント, 物語の変化, 感情の動き, ループに対する感情の変化, という 5 つのグループに分類することができた. この 5 つのグループの中で, 分析する対象について, ループ間の構造, 共通するイベント,
物語の変化を対象に分析を行うことで, ループものの面白さを抽出できるのではないかという話にまとまった.
さらにそこから話し合いを行い, ループものに固有のものであると考えられることから, ループ間の構造の分析と, 共通するイベントの分析を行うことに決定した. 分析を行う際に, 物語のパラ
メーターを定める必要があったが, この物語のパラメーターは, KJ 法から出たアイデアと, 各メン
バーが作品を読んだ経験をもとに作成した.
（※文責: 大柳裕士）
作品の内容を確認し終えてからの議論において, 謎解きという要素がすべての作品に見られたたGroup Report of 2023 SISP

- 10 -

Group Number 07

CreativeAI
め謎解きに関わる要素は重要であるという意見で合意した. KJ 法で得られた要素に加えて謎解きに関わる要素も重視してそれらも抽出を行うこととした.
その後, 抽出した要素を表の形式にして整理を行う. 適宜議論を行い要素の追加や削除といった調整を加えつつ重要な要素についてデータを抽出する. それらのデータを数値として表現し, 統計的な分析を行うことで要素について関係性を導く.
どちらの視点においても複数の要素の関連性を見るべきと判断したため, 入手可能なデータ数を考慮した上で, 統計解析で用いる方法は因子分析とした. 解析後は, 因子分析で得た結果をシナリオ生成に用いるために, 結果の解釈を言語化した.
（※文責: 西口優太朗）

3.5.4

ループ間構造分析の概要

分析作品 8 作品に目を通し, パラメーターとしての重要度を吟味して最終的に 22 のパラメー
ターを設定した. その後, ループ 1 周ごとにパラメーターそれぞれの定義に合致する描写があるかどうかを確認して, 分析用の数値データを作成した.
パラメーターの概要で登場する複数周のループを省略したダイジェスト描写については, 省略した複数周をまとめて 1 周とした. これは省略されている周の間に物語的に意味のある変化は発生していないためである.
以下, 最終的に使用したパラメーターについての概要を示す.
周数

その周が何週目のループかを示す値. 該当の周数を全体の周数で除算することで 0 から 1 までの値に修正した.

能動的ループ 物語において視点者が能動的に次の周に移行できる場合 1, 能動的でない場合は 0,
両方の要素を持つ場合は 0.5 とした.
省略ループ

複数回のループについて描写が省略されている, すなわち複数周の周回がダイジェス

ト的に描写されている周を 1, それ以外を 0 とした.
ルール提示

視点者がループにおけるルール（例：視点者が死亡した際, 次の周に移行する）を体験する描写がある周を 1, それ以外を 0 とした.
ルール確認

視点者がループにおけるルールを確認するために, ルールが適応される行動を取る周を 1, それ以外を 0 とした.
ルール追加 「ルール提示」が行われた後, 追加のルールが判明する周を 1, それ以外を 0 とした.
課題の提示

解決することでエンディングに入る問題を課題とし, それが判明する周を 1, それ以外

を 0 とした.
課題の進展

課題について一部分のみ解決した周を 1, それ以外を 0 とした.

課題解決成功 課題を解決した周を 1, それ以外を 0 とした.
課題解決失敗 課題の解決を阻まれて失敗（例：ボスに敗北）した周を 1, それ以外を 0 とした.
障害の提示解決してもエンディングに入らないが解決しなければならない問題を障害とし, それが判明する周を 1, それ以外を 0 とした.
障害の進展障害について一部分のみ解決した周を 1, それ以外を 0 とした.

障害解決成功 障害を解決した周を 1, それ以外を 0 とした.
障害解決失敗 障害の解決を阻まれて失敗（例：ボスの手下に敗北）した周を 1, それ以外を 0 とした.

Group Report of 2023 SISP

- 11 -

Group Number 07

CreativeAI
敵の提示 視点者と敵対する対象が判明する周を 1, それ以外を 0 とした.
ループ知覚

視点者がループしていることを自覚する描写がある周を 1, それ以外を 0 とした.

人間関係成功 視点者と他者の人間関係が好転した周を 1, それ以外を 0 とした.
人間関係失敗 視点者と他者の人間関係が悪化した周を 1, それ以外を 0 とした.
協力者追加

課題や障害の解決において視点者に協力してくれる者が現れた周を 1, それ以外を 0

とした.
協力者減少

課題や障害の解決において視点者に協力してくれる者が死亡や別行動などで減少した

周を 1, それ以外を 0 とした.
ヒントの提示 課題や障害の解決における手がかりを発見した周を 1, それ以外を 0 とした.
強調

課題解決の困難さや敵の強大さを強調する出来事（例：2 回目の戦闘で視点者の対策が跳ねのけられて再び敗北する. ）が起きる周を 1, それ以外を 0 とした.

このようにして作成したデータを用いて, 因子分析でパラメーター同士の関係性を導く.
（※文責: 西口優太朗）

3.5.5

ループ間構造分析の結果

ループ間の分析について, 先に述べたデータに因子分析を行った結果, 図 1 で示した結果が得られた. 因子得点 0.3 以上または-0.3 以下の要素を因子の特徴として扱った. 以下, 各因子についての説明を行う.
因子 1 「強調」, 「省略ループ」, 「障害解決失敗」すべてが正の値を取る.
因子 2 「人間関係成功」と「障害の進展」が正の値を取り, 「協力者減少」が負の値を取る.
因子 3 「敵の提示」, 「課題の提示」共に正の値を取る.
因子 4 「周数」, 「課題解決成功」が正の値, 「ルール確認」が負の値を取る.
因子 5 「課題解決失敗」, 「能動的ループ」共に正の値を取る.
因子 6 「ルール確認」, 「協力者減少」, 「協力者追加」すべてが正の値を取る.
因子 7 「課題の提示」, 「能動的ループ」が正の値, 「課題の進展」が負の値を取る.
（※文責: 西口優太朗）

3.5.6

ループ間構造分析結果の解釈

本項では, 前述した因子それぞれに対して行った解釈を記述する.
因子 1

複数周のループが省略される描写がある場合それは困難を強調するために用いられることが多い表現であり, それはエンディングに直結しない障害の解決時に起こりやすい.

因子 2

人間関係が良好になることで課題が進展しやすい. 課題を進めるうちに親密になるパター
ンと仲間を得ることで課題が進展するパターンの両方が考えられる. この時, 仲間の死亡な
どの協力者が減るようなアクシデントは発生しにくい.

因子 3

エンディングに直結する課題は, 主人公と敵対する存在であることが多い. すなわち, エン
ディングを迎える条件が敵を打倒することという作品が多い.

因子 4

課題解決成功は終盤に近付くにつれ起こりやすくなる. 終盤でルールを確認するようなイ

Group Report of 2023 SISP

- 12 -

Group Number 07

CreativeAI
ベントは起こりにくい.
因子 5

能動的にループを発生させられる作品は, エンディングに直結する課題の解決に失敗する
周が発生しやすい. これは, 作中で最も大きな困難に試行錯誤して立ち向かう様を描いていることが多いと解釈できる.

因子 6

ルールの確認を行っている周では, 協力者の増加や減少が発生しやすい. ループの謎などを解き明かそうとする上で, ヒントを得ようと協力者を次々得ていくというイベントが起きるために協力者の増減が起きやすい, ルール確認は序盤に起こりやすくそこでは主人公の人間関係の変動が描かれていることが多いといった理由が考えられる.

「ルールの確認」は「STEINS;GATE」に特に多く見られたパラメーターであることから, この作品に強く影響された因子である可能性がある.
因子 7

能動的にループできる作品では, 課題の提示と進展は同時に出現しづらい. つまり，課題
解決がスムーズに進行しない傾向がある.
（※文責: 西口優太朗）

3.5.7

イベント分析の概要

イベントを分析するにあたって, 物語の根幹を握る謎の解明に関係のあるイベントに注目して分析を行った. 選定作品のうち, 『ひぐらしのなく頃に』は共通するイベントとみなすことができるものが存在しなかったため，これを除外した 7 作品の分析を行った.
まず, そのイベントの基本的なパラメーターとして，ループの周数やイベントの発生回数を表す「何周目か」, 「何回目か」を設定した. さらに, そのイベントを主観的に体験する人物として描かれている者を示すために, 「視点者」というパラメーターに設定した. 視点者の能力やループへの理解度は物語の展開に影響を及ぼすと考えたため, 「ステータス」や「ループへの理解度」など視点者に関するパラメーターを追加した. また, そのイベントに関係する物語の謎や障害となる要素を表すパラメーターを設定し, 展開に影響を及ぼすキャラクターを「キーキャラクター」としてそのステータスなどを追加した.
そしてそのイベントがどのような展開で, どのような結果になるのかを表すパラメーターを設定するために, ループもの特有の要素として, 前回との変化を作り出す「現状変化」や「対策」などを設定した. 結果の形にも分析すべき傾向があると考えたため, 「解決した謎」や「ループ発生有無」なども設定した. また, ループものという物語として, 繰り返されるイベントのそれぞれに役割があると考えたため, 「イベントの役割」も設定した.
その他様々なパラメーターを追加し，分析を進めた. その中でパラメーターについて必要なものと不必要なものを判別し，パラメーターの内容の調整を行った.
（※文責: 関谷天希）

3.5.8

イベント分析の結果

こうして抽出した分析データをもとに, それぞれのデータが持つ要素から共通項を得るために因子分析を行った. その結果, 大きく分けて 8 つの因子を得ることができた.

1 つ目の因子では, 「終盤」「希望を与えるイベント」「誰かのためという目的がある」「能動的な状況変化がある」「キーパーソンがポジティブな影響を与える」「ポジティブな変化がある」「ポジGroup Report of 2023 SISP

- 13 -

Group Number 07

CreativeAI
ティブな結果になる」「問題が解決する」「ループしない」という 9 つのパラメーターが共通して高かった. 「ポジティブ」の定義としては, 視点者にとってプラスであるかどうかを考えて判断した.
視点者の目的が達成されたり, 問題が解決したりする場合が「ポジティブ」となる.

2 つ目の因子では, 「現象系のループである」「自分のためという目的がある」「視点者が恐怖の感情を持つ」「誰かのためという目的がある」「現象に対する謎がある」という 5 つのパラメーターが共通して高かった. 「現象系のループ」というのは, 人が故意的に起こすループではなく, 自然に起こるループのことを指す.

3 つ目の因子では, 「敵が強い」「大イベント」「視点者が死ぬ」「仲間が死ぬ」「協力する」という
5 つのパラメーターが共通して高かった. 「大イベント」というのは, 物語における大きな目的を解決するためのイベントなど, 物語での重要度が高いイベントのことである. 分析では, イベントを大
中小の 3 種類に分類した.

4 つ目の因子では, 「視点者が強い」「ex あり」「視点者がループにポジティブな感情を持っている」「敵もループする」「一人でループする」「問題が解決する」という 6 つのパラメーターが共通して高かった. 「ex」というのは, 実際には何周もループしているがその描写が省略されており, 周
回数が不明な場合の周回数を表している.

5 つ目の因子では, 「失敗する」「ループする」「大イベント」「死に戻り」「視点者のループへの理
解度が高い」「視点者が決意を持っている」という 6 つのパラメーターが共通して高かった. 「視点者のループへの理解度」は視点者がループをどの程度理解しているか, 受け入れているかを元に分析した. 基本的にどの作品の視点者も初めはループしていることすら理解できなかった. そこから少しずつ理解していき, 作品によってはループを前提とし, 手段に組み込むこともあった. このレベルを段階に分け, 「視点者のループへの理解度」とした.

6 つ目の因子では, 「敵もループする」「主人公が死ぬ」「犠牲者が多い」という 3 つのパラメー
ターが共通して高かった.

7 つ目の因子では, 「新しい敵が現れる」「キャラの紹介がされる」「ループしない」「視点者が怒りの感情を持つ」「視点者が悲しみの感情を持つ」という 5 つのパラメーターが共通して高かった.

8 つ目の因子では, 「敵を倒すという目的がある」「問題が解決しない」「敵の攻撃や行動を予測するという対策を視点者がとる」という 3 つのパラメーターが共通して高かった.
（※文責: 関谷天希）

3.5.9

イベント分析結果の解釈

1 つ目の因子の内容をまとめると, 物語の最後のイベントは主人公に近しいキャラがポジティブな影響を与えることで状況が変化し, ハッピーエンドを迎えるということになる. 分析した作品と照らし合わせても, これは正しいと言える. 物語の最後のイベントでは, 物語におけるラスボスとの戦いが描かれることが多い. 強大な敵を前に, 登場人物の手助けによってどうにか敵を撃破し, ハッピーエンドを迎えるというのはいろいろな作品にみられる展開である.

2 つ目の因子の内容をまとめると, 現象系のループが発生するイベントでは, 視点者は恐怖の感情を持ちながらも自分や誰かのためという目的のもとに行動し, ループに関する謎を解こうとするということになる. これは分析した作品の中でも, 「カラダ探し」の影響が強く出ていると考えられる. 「カラダ探し」では, カラダ探しというループを引き起こす現象を終わらせるために主人公やその仲間たちが協力して行動するため, その通りだと言える. また, ホラー作品であるため恐怖の感

Group Report of 2023 SISP

- 14 -

Group Number 07

CreativeAI
情が強く出るのも納得できる.

3 つ目の因子の内容をまとめると, 強大な敵と戦う大イベントでは仲間と協力して戦うが, 主人
公や仲間が死んでしまうということになる. これも, ループものの物語にはよくある展開である.
ループものはループを繰り返して問題を解決するという性質上, 最初の戦いで敵を倒してしまうことが少ない. ラスボスなどの強大な敵が相手となればなおさらである. 何度も負けて, 主人公や仲間も死んでループすることで対策を立てて挑み, 最終的に勝利する. 分析した作品の中でも, 「Re:ゼロから始める異世界生活」や「サマータイムレンダ」など様々な作品に見られた.

4 つ目の因子の内容をまとめると, 視点者が強くループにポジティブな感情を持っていて一人で何度もループする作品では敵もループしており, 問題が解決するということになる. これは分析した作品の中でも, 「All You Need Is Kill」の影響が強く出ていると考えられる. 「All You Need

Is Kill」では何度もループすることで主人公がとてつもなく強くなり, 敵を倒していく. また, 序盤
は主人公自身が強くなることを目的としてループしていて, 少しずつ目標を達成していくので「問題が解決する」の因子が強く出ることも納得できる.

5 つ目の因子の内容をまとめると, 死に戻りでループする大イベントでは視点者のループに対する理解度は高く決意を持っていて失敗するとループが発生するということになる. 死に戻りは死ぬ
ことで発動する能力であり, 作品にもよるがループの際には死への苦しみや恐怖を感じることが多い. もしも視点者がその「死」への恐怖に完全に負けてしまったら物語が進まなくなってしまう.
そのため, 「死」というものへの決意を視点者が持つことが多い. それと同時にループへの理解度も高くなる. また, 大イベントという性質上, 大きな壁に立ち向かうことになるため, 最初は失敗することが多い. これは分析した作品の中でも, 死に戻りの要素を持つ作品全てにおいて見られたため, その通りだと言える.

6 つ目の因子の内容をまとめると, 敵がループを知覚している作品では, 主人公や仲間が死んでし
まうイベントが多いということになる. 実際, 敵がループを知覚しているということはその敵の脅
威度は跳ね上がる. ループを知覚していない敵は, ループをしても行動が変わらないため主人公は対策を立てることができる. しかし, 敵がループを知覚している場合はそれが通じなくなる. それどころか, 敵が主人公の対策をすることで前のループよりさらに状況が悪化する可能性もある. 分
析した作品の中では, 「サマータイムレンダ」や「All You Need Is Kill」が特に当てはまる. どちらも敵がループを知覚しており, 主人公はかなりの苦戦を強いられていた.

7 つ目の因子の内容をまとめると, 新しい敵の紹介イベントではループは発生せず, 視点者が怒りや悲しみの感情を持つということになる. 「新しい敵の紹介イベント」というのはその名の通り新しいキャラクターが敵として登場し, 紹介されるイベントである. ループが発生しないとなっているが, おそらく紹介イベントの後にはその敵との戦闘イベントが控えていると考えられるため, そこでループが発生するのだろう. また, 怒りや悲しみの感情を視点者が持つのは, 新しい敵が行った行為に対するものだと考えられる. 新しい敵を紹介する場合には, その敵の悪役としての行為が必要である. それをより印象付けるために, 視点者が怒りや悲しみの感情を強く感じるような行為が行われる.

8 つ目の因子の内容をまとめると, 敵を倒すという目的のもとに, 敵の攻撃や行動を予測するという対策をとっても問題は解決しないということになる. これは分析した作品の中でも, 「サイケまたしても」の影響が強く出ていると考えられる. 「サイケまたしても」ではよく敵の攻撃や行動を予測するという対策を視点者がとる. これは何度もループすることで敵の攻撃の軌道や敵の行動を記憶し, 一つずつ対応していくという対策である. この対策をとっても解決しないとなっているが,この対策がまったく意味のないものというわけではない. ループしてこれを繰り返すことで敵の情Group Report of 2023 SISP

- 15 -

Group Number 07

CreativeAI報を集め, 仲間との協力などの別の対策を最後のピースとして実行することで解決につながる. この傾向が因子に現れたと考えられる.
また, それぞれの作品の中で同時に現れやすい因子の組み合わせや, 同時に現れにくい因子についても調べた. それぞれ 1 つずつの傾向が判明した.
まず分かったことは, 因子 1 と因子 4 と因子 5 が同時に現れやすいということだった. 因子 5 のように失敗した後, 最終的に因子 1 のように解決するということだと考えられる. これは分析した作品の中でも, 「Re: ゼロから始める異世界生活」や「サマータイムレンダ」など様々な作品に見られた. さらに因子 4 が加わった場合は, 「All You Need Is Kill」に当てはまった.

2 つ目に分かったことは, 因子 2 と因子 4 は同時に現れにくいということだった. 因子 2 は「カラダ探し」, 因子 4 は「All You Need Is Kill」の影響が強く, どちらも特定の作品の傾向を表している. この 2 つは作風がかなり異なるため, このような結果が現れるのも納得できる.
（※文責: 関谷天希）

3.6

シナリオと各種データの作成

3.6.1

準備

各分析によって得られた解釈から, シナリオの制約を考慮し使用可能な解釈を全てシナリオ内に反映することを決定した. 使用した解釈は, ループ間分析の因子 2, 因子 3, 因子 4, イベント分析の因子 1, 因子 2 であった.
執筆するメンバーは西口, 関谷の 2 名とし, 人力で行う部分はすべて両名の協議により行うこととした.
準備として, 人工知能にシナリオのあらすじを自動生成させるために必要な要素を人力で作成した. 具体的には, 因子分析の解釈を利用した最低限の進行表を作成した. その進行表およびキャラ
クター設定をプロンプト作成を担当する大柳に渡し, 人工知能を用いてのあらすじ作成を依頼した.
（※文責: 西口優太朗）

3.6.2

プロンプトの作成とあらすじの生成

物語のあらすじの作成において, GPT-4 を搭載している BingAI を使用して文章の生成を行った. 求められているあらすじを生成するために, 次の 2 つのことを意識した.

1 つ目は, 物語の骨組みだけを決めることである. ゲームとして使用しやすいあらすじを生成するために, 起こる出来事をあらかじめ物語の骨組みとして設定をすることで出力のブレを抑えることができた. 2 つ目は, 物語の流れに番号を振ることである. これにより, あらかじめ決めた物語の骨組み通りにあらすじを構成することに成功した. プロンプトは試行錯誤を繰り返しながら徐々に改良を行い, 出力が安定するものを模索した. 最終的に実行したプロンプトは以下に示す.
最初に入力したプロンプト↓
あなたはプロの作家です．
以下の制約条件を踏まえて，シーン 1，シーン 2
順番で遷移するループ物の小説のプロットを作成してください．

Group Report of 2023 SISP

- 16 -

Group Number 07

CreativeAI
箇条書きで示すようにしてください．
制約は以下の通りです．
世界設定：（場所：深海，時代：現代）
登場人物：（名前：リラ，役割：主人公，特徴：人魚っぽい少女・ループの記憶保持，性格：やさしい）（名前：ナディア，役割：ラスボス，特徴：怖い人魚・不気味，性格

狂暴）（名前：アーロン ，役割：マップとアクションを説明する（移動不可），特徴：カメ・
よくしゃべる・背中に甲羅モチーフのバックパック・男・ループ未自覚，性格：フレンドリー（名前：レナード，役割：戦闘システムを説明する（移動不可）
老師・魔法使い・ループ未自覚，性格：温厚），特徴：ジュゴン・

）（名前：ルナ，役割：ボスの情報を与えてくれる（移動不可），特徴：ナディアと親友，性格：ぼーっとしている ）出力形式は以下の通りです．
「各シーンのテーマは次のようにしてください
シーン 1: 課題の提示
なおシーン 1 には下記の内容を順番通りに描くこと．

1. 主人公記憶喪失
2. アーロン登場
3. レナード登場
4. 雑魚敵を倒し進む
5. 中ボス，チンアナゴ登場
6. チンアナゴ撃破
7. ループする
8. シーン 2 に移行
シーン 2: ループの知覚
なおシーン 2 には下記の内容を順番通りに描くこと．

1. アーロン登場
2. アーロンと会話
3. 二段ジャンプ習得
4. ループ知覚
5. ルナ登場
6. 中ボス，タコ登場
7. タコ撃破
8. ループする
9. シーン 2 終了」
続けて入力したプロンプト↓
つづけてシーン 3 とシーン 4 を作成してください．
シーン 3:
なおシーン 3 には下記の内容を順番通りに含めること．
ルナ登場

1. ナディアの背景提示
Group Report of 2023 SISP

- 17 -

Group Number 07

CreativeAI
2. 主人公決意
3. 中ボス，シャコ登場
4. シャコ撃破
5. ループする
6. シーン 4 に移行
シーン 4: エンディング
なおシーン 4 には以下の内容を順番通りに含めること．

1. ナディア登場
2. ナディアと対戦
3. ナディア浄化
4. ナディアが元の姿に戻る
ハッピーエンド
上記に示したように, プロンプトには役割, 実行してほしいタスクの指示, 制約, 出力形式を指示して与えた. 制約には, 世界設定, 登場人物を具体的に記述した. 出力形式には物語の骨組みを与えた. 一度に大量の情報を与えると BingAI が内容を省略する傾向があったため, ２回に分けてあら
すじの生成を行った. プロンプトの入力は同じ内容を数回にかけて行った.
（※文責: 大柳裕士）

3.6.3

セリフ文自動変換システム

今回制作したゲームではセリフをベースにしてストーリーが進む. そこで, そのセリフを自動アレンジするシステムの開発に挑戦した. 本システムは, CSV 形式の元のセリフファイルのセリフの口調を変換させるシステムとなっている. 口調変換には OpenAI の gpt3.5 の API を利用しており, プログラミング言語には Python を使用した. システムでは, セリフの CSV ファイルを読み込
んでそのセリフを１つの文字列として連結し, それをセリフ変換の指示をしているプロンプトと組
み合わせて, gpt3.5 の API に送り, 変換されたセリフを CSV ファイルとして再度生成するという仕組みになっている. ゲーム内でユーザが「優しさ度」などのパラメータを 1 から 100 までの値で指定し, それがプロンプトに反映され, セリフを変換するというシステムを想定している. セリフを１つの文字列として連結する理由は, 一度の API 呼び出しでセリフ変換を行うことで費用を抑えるためである. このようにして実際に変換されたセリフファイルを出力することができた. しかし,アレンジの差異が小さいなどの問題やゲームシステムへの実装に時間がかかるなどの問題からゲームと統合させるまでには至らなかった.
（※文責: 山本拓摩）

3.6.4

執筆

シナリオの執筆は,

1. 人工知能が生成したあらすじを加筆修正
2. フォーマットに合わせてセリフ形式で執筆
Group Report of 2023 SISP

- 18 -

Group Number 07

CreativeAIという手順で行った.
あらすじの加筆修正は, 執筆メンバーの挿入したいシーンの追加や整合性を取るための調整, 出力への反映が不十分な部分の修正を主に行った.
生成されたあらすじを執筆に使用した側の視点から見た良い部分として, 進行表とキャラクター・
世界観設定の結合はできており, プロンプトに反映していない細かい部分の追加や微細な調整のみで加筆修正が終了し, 創作コストが軽減されていることを感じられるというものがある. また, プ
ロンプトに反映した最低限の情報を元に, 間の抜けている部分をある程度補完して一連の物語にして出力できていると感じた. 物語の流れの中に矛盾の少ない出力が得られたことから, シナリオのベースとして扱い人間が要素を補完していくという利用方法であれば利用は可能であると考えた.
今後改善が必要と感じた部分の 1 つとして, 生成精度の向上が挙げられる. 今回の出力結果の中には, 明らかな矛盾が発生する, あるいは意図しない新しいキャラクターが登場してしまうといった問題のある出力が多く, プロンプトでの制約をさらに強める必要があったのではないかと考えた.
セリフの自動生成についても試してみたものの, 実用性があると言えるような出力を得ることはできなかったためセリフはすべて執筆メンバーの手によって執筆を行うことに決定した. システム
班の用意したフォーマットに合わせる形で, シーンごとに分担あるいは共同作業で執筆を行った.
（※文責: 西口優太朗）

3.6.5

各種データの作成

ゲームに必要な各種データを執筆したシナリオに基づいて作成した.
ゲームでキャラクターが話すセリフを出力するためのセリフファイルにセリフを入力した. イベ
ントごとにイベントナンバーをつけ, それぞれに分けてセリフを話者と共に入力した. そしてそのイベントがゲームのマップ上におけるどの位置で発生するのかを示すため, システム班からもらったマップの部屋の番号を入力した. さらに, 事前に決めておいたキャラクターの表情差分に番号を付け, それをアイコンパターンとして記入した. その他細かい注意点などを追加した.
また, ゲームに使用する BGM を作成するための, 各イベントにおける感情データを音響班の依頼で作成した. 執筆したシナリオをイベントごとに分け, それぞれで感情データを作成した. イベ
ントごとに「怖い, 冷静な, 宗教的な」「暗い, 憂鬱, 悲しい」
「夢のような, 感傷的な, 優しい」
「穏やか, 静かな, 叙情的な」「優雅な, 滑稽な, 奇妙な」「明るい, 幸せ, 派手な」「爽快, 興奮, 衝動的」「力
強い, 雄大な, 重苦しい」の 8 つのパラメーターに数値を付与し, どの感情が強いかを決定した.
（※文責: 関谷天希）Group Report of 2023 SISP

- 19 -

Group Number 07

CreativeAI

第4章
4.1

視覚班

はじめに

我々は AI を用いてゲーム制作を行うことで，AI の創造性を再現することを目的としている．視覚班としてゲームのビジュアル要素を制作する際にどのように AI を活用できるかを考えた．そこで「UI・MAP の自動生成」「敵キャラクターの自動生成」「キャラクターの動きの自動生成」が候補として挙がった．2023 年 4 月時点では，キャラクターの動きに関する生成は一貫性を持たせることが難しく，ゲーム制作以外の様々な場面で活躍することが見込まれる技術ということから，「キャラクターの動きの自動生成」を視覚班の主目的とした．今回のゲーム制作においてはキャラ
クターの攻撃や移動，ジャンプなどのモーションを生成することを目標とする．
また，本プロジェクトでは敵キャラクターや主人公などのキャラクターデザイン，キャラクター
のイラストには AI を用いず，イラストツールや 3DCG 制作ソフトを用いて手動での制作を行う
ことで，オリジナリティを確保し，倫理性，著作権等の問題を解決した．
（※文責: 佐藤玲）

4.2

生成 AI

4.2.1

Stable Diﬀusion

Stable Diﬀusion とは，Stability AI 社が開発したオープンソースの画像生成 AI でトレーニン
グデータをもとにユーザーが入力したテキストプロンプトに従って画像を生成するというものである.Stable Diﬀusion は画像生成において大きく 3 つの要素で構成されている．

1. U-Net：画像を同じサイズの別の画像に変換する役割を持つニューラルネットワーク．
2. VAE：高次元の画像を低次元の潜在空間に埋め込む Encoder の役割と高次元の画像に戻す
Decoder の役割を持つニューラルネットワーク．
3. Text Encoder：入力テキストをベクトルに変換する役割を持つモジュール．
生成時はプロンプトを逆拡散過程の U-Net へと入力することで条件付けを行い，テキストに沿った画像の潜在表現となるようノイズ除去を開始する．最終的に U-Net で得られた出力を VAE

Decoder に通すことで画像の生成を行う．これを利用し，任意のキャラクターの動きと MAP の背景などの制作を行う．
（※文責: 佐藤玲）

4.2.2

ControlNet

ControlNet とは Stable Diﬀusion にあるポーズや形を指定するもの拡張機能である.ControlNetにはいくつかのモデルが存在し, それぞれが微妙に違う機能を持っているため今回の目的にはどれGroup Report of 2023 SISP

- 20 -

Group Number 07

CreativeAIが適切かの選定を行った.1 つ目は Canny と呼ばれるモデル.Canny は, 元画像の線画を抽出し, その線画をもとに画像を生成する.2 つ目は,Depth.Depth は元画像の深度を読み取る. その深度情報をもとに画像を生成する.3 つ目は OpenPose だ.OpenPose は姿勢や表情を棒人間状の画像として抽出し, それをもとに画像を生成する. 一貫性のあるアニメーションは任意の動画から任意のアニ
メーションを作るということを目標としている.Canny や Depth を使った場合, 元画像の形に引っ張られて画像が生成される. そのため, 任意の動画から任意のアニメに変換することには向いていない. 一方で OpenPose は, 元画像の姿勢のみを抽出するので, 任意の動画から任意のアニメへの変換へ適しているといえる. そのため今回の目的では, ポーズ指定を可能にする OpenPose を使用することとなった.
また，フレームの前後でキャラクターに齟齬がないように Reference Only を用いる．Reference

Only とは ControlNet 内にある機能の一つで，任意の画像を参考に新たに画像を生成するというものである．
これを利用し，キャラクターの動きの生成を行う．
（※文責: 佐藤玲）

4.2.3

DALL-E3

DALL-E3 とは，OpenAI 社が開発した画像生成 AI で，Stable Diﬀusion と同様にトレーニング
データをもとにユーザー殻のテキストプロンプトからその内容を反映した画像を生成する．以前のバージョンである DALL-E2 よりも高いテキストプロンプトの理解力を持ち，暴力的・憎悪的なコ
ンテンツの生成が制限されるといった安全性が確保されている．さらに，ChatGPT 上で構成されていることにより使用が非常に容易となっている．以上から本プロジェクトで DALL-E3 を MAP
上にあるギミックのビジュアルや近景の制作に活用する．
（※文責: 佐藤玲）

4.3

アニメーション制作における AI の活用

4.3.1

背景

近年，画像生成系 AI は，写真風，イラスト風問わず，クオリティの高い画像を出力できるようになってきた．ダンス動画等をＡＩによってイラスト風に加工するといったものもＳＮＳ等で公開されている．しかし，動画の生成にはまだ多くの課題が残っている．たとえば，フレームごとに髪型や服装が変わってしまうといったことや，動画自体がぼやけるといった問題（これらの問題を以下「ブレ」と称する）が挙げられる．また，CleativeAI の目標が「2D 深海アドベンチャーゲーム」
を制作するという観点から，AI を活用したキャラクターのモーション（「走る」や「攻撃」等の動き）を制作できないかと考えた．動画がブレるという課題と，ゲーム制作における観点から，我々は画像生成 AI を用いたブレのないキャラクターのモーションを生成する方法を確立することを目標に活動を始めた．
（※文責: 森正樹）

Group Report of 2023 SISP

- 21 -

Group Number 07

CreativeAI

4.3.2

手法

我々は画像生成 AI に触れる中で、アニメーションによるキャラクターのモーション制作が現実的であると結論付けた。アニメーションとは

画像を一コマ一コマ描き、それを連続して繋げることによって動画にする手法である。この

画像を画像生成 AI に生成してもらい、アニメー

ションを制作することができるのではないかと考えた。今回の目標は、現在課題となっている髪型や服装がフレームごとに変化しないようにすることである。この課題を解決するために、アニメー
ションさせたい 1 つのキャラクターを集中的に学習させたモデルを制作し、用いることによって髪型や服装などの一貫性を保てるのではないかと考えた。キャラクターを集中的に学習させる手法として、後述する LoRA を用いることにした。OpenPose と呼ばれるソフトウェアと姿勢の情報を持つ画像を使用することで、生成する画像のポーズを制御することができる。この技術を用いることで、キャラクターのモーションを作ることができるのではないかと考えた。権利の関係上、学習させる画像は視覚班が制作したオリジナルキャラクターを使用することにする。

LoRA LoRA(Low-Rank Adaptation) とは，効率よく追加学習をおこなう手法である．ベース
モデルのすべてのパラメータを更新していた従来の追加学習に比べ，ベースモデルとの差分のみを計算しているため少ない計算量で追加学習を行うことができる．LoRA による追加学習では 20〜30 枚程度の画像を学習すると，学習データの特徴をとらえた画像を出力することが可能になる．
追加学習では，画像とその画像を説明するキャプシャンのペア（データセット）を学習すること
で，データセットに近い画像や画風を出力できるようになる．キャプションとは，例えば， a girlwearing a red dress in the town（町の中にいる赤いドレスを着た女の子） のようなものだ．このような書き方でも問題ないが，単語ごとに区切ったキャプション ( a girl, wearing a red dress,in the town

) が主流である．今回は，髪型や服装などを一意に固定させるために LoRA による追加学習を使用することとした．

LoRA の概念 LoRA は，ベースモデルとの差分を計算するという特徴からベースモデルとセットで使用する必要がある．つまり，LoRA はベースモデルで生成する画像のキャラクターの見た目などを追加学習した画風や特徴に近づけるというものである．学習させる設定によってこの画風を強く出すのか弱く出すのかなど様々な試行錯誤が可能である．

OpenPose OpenPose とは，深層学習を用いて人間のポーズを可視化できるというソフトウェ
アである．実際に画像から OpenPose を用いてポーズを可視化したものが画像 1 である．Stable

Diﬀusion では OpenPose で抽出した骨格画像を使用することで出力画像の姿勢制御を行うことができる（画像 2)．この機能を用いることによりアニメーション制作の上でキャラクターに動きを持たせることができる．

Group Report of 2023 SISP

- 22 -

Group Number 07

CreativeAI

図 4.3.1

画像 1

図 4.3.2

画像 2（※文責: 森正樹）

4.3.3

手法の有用性を検討

まず，我々は考案した手法が有用であるかを検討した．公開されているアニメ系のイラストを出力できるモデルを使用し，OpenPose を用いて出力したキャラクターが動いているように見えるかを確かめた．その結果，キャラクターが動いているようには見えた．しかし，髪型や服装などが変化してしまい一般的なアニメーションのようには見えなかった．また，余計な背景などが出力されてしまうことが分かった．OpenPose でキャラクターのモーションを作ることはできそうであるた
め，次にキャラクターの一貫性を保つために追加学習の実験を行った．
（※文責: 森正樹）

4.3.4

追加学習

OpenPose による骨格画像を使用することでアニメーションにおける「動き」の部分に関しては表現することが可能であると結論付けた。しかし、キャラクターが一意に定まらないことや無駄な背景画像が出力されてしまうことが分かった。そのため、LoRA を用いた追加学習では「キャラクターを一意に定める」ことと「白背景」の 2 点に焦点を置き集中的に学習させることとした。実際には、1 つのキャラクターの三面図のようなものを背景を白にして学習させた。画像 3,4 が実際に学習に使用した学習データの一部である。権利の関係上、学習させた画像は視覚班が制作したオリジナルキャラクターである。

図 4.3.3

画像 3Group Report of 2023 SISP

図 4.3.4- 23 -

画像 4

Group Number 07

CreativeAI
追加学習における課題 初めに，インターネットで公開されている設定で追加学習を行った．しかし，インターネットで公開されている設定は，汎用性を重視しておりどのモデルと組み合わせても学習させたデータセットの特徴を大まかにとらえた画像を出力するようなものであった．実際に学習させた画像データが画像 5，とインターネットで公開されている設定で学習させた LoRA を適用して出力させたものが画像 6 である．学習データの特徴はとらえているが，今回の目的では学習データに近しい出力画像が欲しいため，このままでは問題があった．そのため，学習における「重み」をより重く，より学習データに近いような画像を出力できるようにした．約 30 回ほど様々な設定を試し，追加学習を行った．その結果画像 7 のように学習データと遜色ないような画像を出力できるようになった．

図 4.3.5

画像 5

図 4.3.6

画像 6

図 4.3.7

画像 7

追加学習における課題 前節で，学習データと遜色ないような画像を出力することに成功した．しかし，この LoRA を OpenPose と併用すると問題があることが分かった．それは，OpenPose の骨格画像での姿勢制御だけでは姿勢を制御しきれないということだ．たとえば，後ろを向いている
骨格画像（画像 8）を用いて画像を生成しても画像 9 のように前面を向いた状態で生成されてしまう．この課題を解決するために，追加学習時に画像と一緒に学習させるキャプションに工夫できるのではないかと考えた．具体的には，学習させる画像の構図やポーズ，顔の向きなどを規則的にキャプションとして学習させる．例えば， a girl, black long hair, yellow eye, school uniform,

blue skirt, black sneakers（容姿) , full body, standing, spread one leg（ポーズ), front angle,
facing front （構図）”のようにした．実際に使用した画像とキャプションのペアが画像 11 である．
全ての学習データに規則的なキャプションをつける事によって，画像を生成する時に，規則的なプ
ロンプトで画像を生成することができる．後ろを向いてほしい場合は画像を出力する際に， backangle といったキーワードを使うことで，OpenPose の骨格画像とプロンプトの 2 点から姿勢を制御することができる．実際にこの方法を用いたところ，画像 10 のように，しっかりと後ろを向いていた画像を出力することができた．

Group Report of 2023 SISP

- 24 -

Group Number 07

CreativeAI

図 4.3.8

画像 8

図 4.3.9

画像 9

図 4.3.10

画像 10• プロンプトa girl, black long hair, yellow eye, school uniform, blue skirt, black sneakers, full body,standing, standard pose, back angle, diagonal angle, white background,

図 4.3.11

追加学習における課題

画像 11

また，もう一つの課題として集中的に追加学習させすぎたため，データセットの中にある画像のポーズから大きくかけ離れたポーズをとると，画像が崩れてしまうということが分かった．そのため，今回はキャラクターの立ち絵のみではなく，各アングルにそれぞれ 2〜3 ほどポーズをとらせた画像を学習させることとした．また，学習の設定を微調整することで改善が見られ，基本的な動きはできるようになった．しかし，回転やダイナミックなポーズをとらせようとすると，うまく生成できないため学習させるときの重みの調整やその他の工夫が必要になると考えられる．

図 4.3.12

Group Report of 2023 SISP

アングルごとにいくつかのポーズをとらせた画像- 25 -

Group Number 07

CreativeAI（※文責: 森正樹）

4.3.5

アニメーション制作

キャラクターデータセットの制作権利の関係上，キャラクターデザインやキャラクターのイラス

トは自主的に制作することとした．また追加学習の関係上 20 枚程度画像が必要なため，できるだけキャラクターデザインを簡略化し，様々なポーズを簡単に描けるようにした．最終的には 30 枚の画像を制作し，学習データとした．また，4.2.4.2 節で説明した，規則的なキャプションをそれぞれに与えた．

図 4.3.13

制作した学習データ

OpenPose による動きの制作 Stable Diﬀusion webUI の拡張機能 OpenPose Editor を用いてポーズを作成した．OpenPose Editor では各関節部分を自由に変形することができる．この機能により 1 フレームずつ自由にポーズをとらせることができる．今回のプロジェクトでは，

OpenPose Editor を用いて 1 フレームずつポーズを作成した．
アニメーション

制作したキャラクターのデータセットをもとに LoRA を作成した。その LoRAと OpenPose を使用することで 1 フレームずつの画像生成を行い、コマ送りにすることでアニメーションを制作した。実際にできたものが画像 12 である。「歩く」「攻撃」「ジャンプ」といったモーションを制作した。
（※文責: 森正樹）

4.3.6

アニメーション制作における今後の展望

髪型や服装のブレといった問題は，この手法を用いることで解決することができるが，動きや細かい髪の毛の動きなどはまだ生成することができない．よりクオリティの高いモーションを作る場
合，より多くの学習データが必要になったり，普通にアニメーションを制作するより大きな労力が必要になる可能性がある．また，最近では一枚のイラストから様々な動きを取らせることができるといった AI も開発されてきた．そのため，よりクオリティの高いアニメーションを作るためには最新の技術を取り入れつつ，独自のアプローチを試みる必要があると考える．
（※文責: 森正樹）

Group Report of 2023 SISP

- 26 -

Group Number 07

CreativeAI

4.4

マップデザイン

4.4.1

マップの概要マップとは，主人公や敵キャラクター，ギミックやイベントが存在する場所のことである．マップは遠景と近景に分けて制作を行い，それらにギミックを加えることでゲームの世界を構築した．
遠景，近景，ギミックのこれら全てはシステム班からの要望と詳細な仕様に沿って制作を行った．
前述した Stable Diﬀusion と DALL-E3 は 2D の画像を生成する画像生成 AI である．本ゲーム
が 2D ゲームであることから，マップ制作の工数削減に寄与できると考え，これらのツールを活用しつつ制作を行った．
（※文責: 松下瑚南）

4.4.2

遠景の制作

遠景は，マップ（図 4.4.1）に対する背景の役割を担っている（図 4.4.2）．制作には Stable

Diﬀusion を使用した．なお，モデルは v1-5-pruned-emaonly を使用している．
本ゲームが海底を舞台にしていることから，遠景はうす暗く，不鮮明な絵であることが求められた．当初はプロンプトのみでイメージに合致する画像を生成することは困難だと考え，ControlNetの refernce only を用いて，既存の雰囲気がイメージと合致する画像から雰囲気のみを借りて遠景を生成する案が出ていた． refernce onlyとは，1 枚の画像を訓練データとして画像の色合いや線のタッチ，雰囲気といったものを学習し，画像の生成時にそれらを適用することができる仕組みである．しかし，試行錯誤の結果プロンプトのみによる画像生成でもイメージと合致した遠景を生成することに成功したため，最終的にはrefernce only を使うことはなかった．

始めに Stable Diﬀusion にプロンプトを打ち込み，ゲーム画面の縦横比と合わせた 1024 × 576のサイズで連続して画像を生成した．人の目で雰囲気に合致する画像を選別し，それらを別途

Stable Diﬀusion の機能である Hires.ﬁx を用いて 1.88 倍に画像を拡大する． Hires.ﬁx とはAI による画像生成の技術を利用し，任意の画像を解像度を下げずに引き延ばすことで，高精度な拡大を行うことのできる仕組みのことである．1.88 倍にすることで，1024 × 576 のサイズの画像
は約 1925 × 1083 となり，本ゲームの画面サイズである 1920 × 1080 のフルハイビジョンとほぼサイズが等しくなる．これにより，美しさを損なうことなく画像をそのままゲーム画面に使用することができるようになっている．

図 4.4.1

マップ

図 4.4.2

遠景

遠景は合計 7 種制作した．全てプロンプトは共通で，Seed 値の違いにより画像に差異が生じている．なお，それらの遠景は全て，画像編集ソフトである MediBang Paint Pro を用いて画像の縁Group Report of 2023 SISP

- 27 -

Group Number 07

CreativeAIの部分を暗くする処理を後に行っている．以下はプロンプトの全文である．

Positive prompt: 2D game background, visual art, corridor, palace, under the sea, marin,
window frame, inside, dark, simple color, high quality, high detailed
Negative prompt: normal quality, worst quality, low quality,

図 4.4.3

遠景（※文責: 松下瑚南）

4.4.3

近景の制作

近景は，マップに対する足場の役割を担っている．遠景の説明時にとして示したマップ画像の，レンガ状に積まれているものが近景に当たる．遠景のような一枚絵と異なり，前後左右に隣接させて使用できるタイルとして制作した．これによって，常に可変で自由なマップ制作ができるようになっている．これは，主人公の跳躍力などといった変動の恐れのある各種主人公のパラメータに合わせ，パラメータを設定するシステム班自身が常に柔軟なマップ制作を行えるようにするための処置である．

図 4.4.4

タイルの例

近景として制作したタイル群は大きく，「手前」と「奥」の 2 種類に分けられる．図 4.4.5，図4.4.6 で示したように，マップをプレイヤーが乗る足場と，プレイヤーの奥に存在する壁の 2 層にレイヤーを分けている．便宜上，足場となるタイルを「手前」，壁となるタイルを「奥」と呼称している．

図 4.4.5

ゲーム画面

Group Report of 2023 SISP

図 4.4.6- 28 -

レイヤー分けGroup Number 07

CreativeAI
制作には MediBang Paint Pro を使用した．初めは AI による生成を使うことが検討されたが，AI による生成では前後左右で連続して綺麗に繋がる画像を生成することが極めて困難であることが判明し，最終的には人の手で描くことが最も現実的であるという結論に達した．色の差異を含めた全てのタイルを提示すると膨大となるため，ここでは特徴別のタイルのみを提示する．

• 基本タイル (手前)• 基本タイル (奥)• 崩壊タイル• ひび割れたタイル• 砂地のタイル

その他，近景として大きな中央階段も制作した．DALL-E3 で画像を生成し，Adobe Photoshop
を使用してゲームに使用できるよう加工を行っている．以下にまず，ChatGPT を介した DALL-

E3 へのプロンプトと，生成された画像を提示する（図 4.4.7）．
ChatGPT へのプロンプト：
RPG ゲームで使用できる階段の画像を生成してください．
・ドット絵

Group Report of 2023 SISP

- 29 -

Group Number 07

CreativeAI
・中央階段

DALL-E3 へのプロンプト：
A detailed pixel art image of a central staircase suitable for an RPG game. The staircase
is grand, with ornate designs and intricate patterns. It’s set in a fantasy castle environment,with stone walls and ﬂickering torches on either side for lighting. The steps are wide and lead
upwards, inviting adventurers to explore the upper levels. The atmosphere is mysterious yet
inviting, with a hint of magic in the air. The color palette includes shades of gray for thestones, warm yellow for the torchlight, and subtle hints of blue and green for magical elements.

図 4.4.7生成された階段

ここからさらに，手動による Adobe Photoshop を用いた加工を行った．以下が加工後の画像である（図 4.4.8）．

図 4.4.8

加工後の階段（※文責: 松下瑚南）

Group Report of 2023 SISP

- 30 -

Group Number 07

CreativeAI

マップギミックの制作

4.4.4

ゲームで使用するマップギミックを DALL-E3 を用いて自動生成した. 「扉」「鉄格子」「魔法の鍵」「魔法の鎖」「がれき」「ボスを倒すまで通れない壁」の 6 枚を自動生成して, 実際に活用した. DALL-E3 で生成した画像は, Windows の Snipping Tool で使いたい個所だけ切り抜いた後に, 透明化の処理を挟むことによってゲームで実際に使える形に落とし込んだ. 透明化の処理に関しては, MediBang Paint Pro とバナー工房の透過処理機能を利用した. 鉄格子付き扉に関しては,MediBang Paint Pro にて編集を行い, 「扉」「鉄格子」の２つの画像を組み合わせた.
がれきに関しては, 自動生成された画像に対して使いたいがれきの形に編集をした後に, 複数のがれきを重なることによって，ゲームで使用するがれきの山を作成した.

• 扉

図 4.4.9生成された画像

入力したプロンプト↓
あなたはプロのデザイナーです．
以下の指示に従って扉の絵を作成してください．
＃指示＃
扉は木造
ドット絵調
古い感じ
ドット絵の感じを強く出してください．

DALL-E3 に反映されたプロンプト↓
A pixel art style image of an old wooden door. The door should have a distinctly aged
appearance, with noticeable wood grain and weathering. The pixel art style should bestrongly emphasized, with clear and prominent pixels, giving it a retro, video game-likeaesthetic.
• 鉄格子付き扉

Group Report of 2023 SISP

- 31 -

Group Number 07

CreativeAI

図 4.4.10生成された画像

入力したプロンプト↓
あなたはプロのデザイナーです．
以下の指示に従って扉の絵を作成してください．
扉は鉄格子でできている
鉄格子のカラーコード#006666
ドット絵調

DALL-E3 に反映されたプロンプト↓
A professional designer’s illustration of a door made of iron bars. The iron bars arecolored with the hexadecimal color code #006666. The image is styled as pixel art,
depicting the door in a detailed and artistic manner.
• 魔法の鍵

図 4.4.11

生成された画像

入力したプロンプト↓
あなたはプロのデザイナーです．
以下の条件に従って，画像を生成してください．
８ビットのピクセルで
南京錠
紫色
光沢がある
金属でできている
鍵の比は，縦：横の比が２：１
背景は白

DALL-E3 に反映されたプロンプト↓
A professional-style 8-bit pixel art illustration of a padlock. The padlock should bein a glossy, metallic purple, with a vertical to horizontal ratio of 2:1. The pixel art
style should be detailed enough to convey the metallic sheen and purple color. The
Group Report of 2023 SISP

- 32 -

Group Number 07

CreativeAI
background is pure white to contrast with the purple padlock, enhancing the 8-bit pixel
aesthetic.
• 魔法の鎖図 4.4.12生成された画像

入力したプロンプト↓
あなたはプロのデザイナーです．
以下の指示に従って鎖を生成してください．
鎖はドット絵形式
鎖の色は紫
一本の細い鎖
鎖は真っすぐDALL-E3 に反映されたプロンプト↓
A pixel art depiction of a single thin chain, colored in shades of purple, portrayed in astraight line. The image should focus on creating a clear, detailed representation of thechain links, with each link intricately connected to the next, showcasing the pixel art
style with precision and simplicity.
• がれき

図 4.4.13生成された画像

入力したプロンプト↓
あなたはプロのデザイナーです．
以下の条件に従って画像を生成してください．
＃条件＃
ドット形式で表示
８＊８個の画像を表示
がれきの生成Group Report of 2023 SISP

- 33 -

Group Number 07

CreativeAI
がれきは灰色
天井から崩れたイメージ
古びて崩れたイメージ
ドット絵形式で出力

DALL-E3 に反映されたプロンプト↓
Create an 8x8 grid of images, each depicting a scene of gray debris from a collapsed
ceiling, in a pixel art style, conveying a sense of age and decay. Each image should focus
on diﬀerent aspects of the debris in a pixelated form, such as broken beams, crumbled
bricks, and scattered rubble, all in shades of gray. The pixel art should collectively tell astory of a once-sturdy structure now succumbed to time and neglect. The debris in pixel
form should capture textures like cracked plaster, bent metal rods, and dust-covered
surfaces, emphasizing the monochrome and retro aesthetic of the destruction.
• ボスを倒すまで通れない壁図 4.4.14生成された画像

入力したプロンプト↓
あなたはプロのデザイナーです．
指示に従って以下の図形を作成してください．
色は深緑
材質はレンガ
長細い長方形で，先端が刺さる形でとがっている
ドット絵形式で地面に突き刺さっている
アングルは正面から

DALL-E3 に反映されたプロンプト↓
A professional designer s creation of a long, slender rectangle with a sharp, pointed
end, resembling a spike. The object is made of bricks with a deep green color. It is
depicted in a pixel art style and shown as piercing into the ground, viewed from a front
angle.
• 扉

Group Report of 2023 SISP

- 34 -

Group Number 07

CreativeAI

図 4.4.15

完成画像

図 4.4.16

完成画像

図 4.4.17

完成画像

図 4.4.18

完成画像• 鉄格子付き扉• 魔法の鍵• 魔法の鎖Group Report of 2023 SISP

- 35 -

Group Number 07

CreativeAI• がれき

図 4.4.19

完成画像

図 4.4.20

完成画像• ボスを倒すまで通れない壁（※文責: 大柳裕士）
他方，AI を用いず制作したマップギミックも存在する．以下に図 4.4.21，図 4.4.22 で示す魔法陣は，ともに Adobe illustrator を用いて描いたギミックである．移動する床，落下する床というギミック内容をシステム班より伝えられ，それらのイメージに合致する素材を制作した．

図 4.4.21

移動する魔法陣

図 4.4.22

落下する魔法陣

また，マップ内の小物として，プレイヤーに進行方向の示唆を与える矢印（図 4.4.23）も Adobe

illustrator を用いて描き，制作した．

図 4.4.23

Group Report of 2023 SISP

矢印

- 36 -

Group Number 07

CreativeAI
さて，次に示すのは Adobe illustrator の AI 生成機能を用いて生成したベクター画像である（図4.4.24）．

図 4.4.24

本棚

制作当時，Adobe illustrator ではこのような画像を生成する機能の提供を新たに始めた．この有用性の確認のために生成したものが上記の本棚である．なお，上記の画像は少し Adobe illustrator
を用いた手動による加工を行っている．
（※文責: 松下瑚南）

4.5

UI デザイン

4.5.1

UI の概要UI は，本ゲームにおいてはキャラクターの HP と残機数を示すインジケーター（図 4.5.1），会話
文を表示する枠（図 4.5.2），メニュー画面のデザイン（図 4.5.3）の 3 種に集約される．また，キャラクターの残機を示すアイコンを除いて AI による生成画像を使うことは無かった．なぜなら，UIの訓練データは乏しく，生成物の品質を担保できなかったためである．

図 4.5.1

インジケーターGroup Report of 2023 SISP

図 4.5.2- 37 -

会話の枠

Group Number 07

CreativeAI

図 4.5.3

メニュー画面

（※文責: 松下瑚南）

4.5.2

UI の制作

前述した 3 種に関して，キャラクターの残機を示すハート形のアイコンを除いて全て Adobe

illustrator を用いて制作した．それぞれを順に説明する．
• インジケーター
ここでは，インジケータ―をプレイ中のゲーム状況をプレイヤーに知らせる表示の総表として扱う．プレイヤーの残機数を示すハートのアイコンは，BingAI を通して DALL-E3 による画像生成を利用した．DALL-E3 による生成画像を MediBang Paint Pro を用いて加工しており，色調の変更と整形を行った（図 4.5.4）．主人公が人魚であることを踏まえ，魚のヒレの付いたハートとなるよう制作した．

図 4.5.4

ハートのアイコン

キャラクターの HP 残量を示すバーは Adobe illustrator を用いて手動で制作した（図4.5.5）．時間的な余裕があれば，珊瑚などの装飾を付けたいと考えているが，現時点ではシンプルなものになっている．3 層構造になっており，一番奥に赤色のバーを，二番目に青色のバーを，手前に黒い枠を配置して体力の増減を視覚的に把握できる UI に仕上げた．なお，
ボスモンスターには黄色の HP バーが表示されるようになっている．

Group Report of 2023 SISP

- 38 -

Group Number 07

CreativeAI

図 4.5.5 HP 残量バー

• 会話の枠
会話シーンでのセリフを表示するための枠のことである（図 4.5.6）．縦横比を適宜変更する
ことで，会話だけではなく，メニューシーンでのアイテムを表示するための背景としても使われている．これは，まだゲーム全体の雰囲気が定まっていない頃に制作したものだが，雰囲気が合致していたため変更を加えられることなくそのまま使用されることとなった．

図 4.5.6

表示ウィンドウ• メニュー画面
プレイング時にいつでも表示することができるメニュー画面である（図 4.5.7）．システム班
からのレイアウトの要望（図 4.5.8）を元に制作を開始した．

図 4.5.7

メニュー画面

図 4.5.8

システム班からの要望

カーソルキーは珊瑚をモチーフとしている（図 4.5.9）．

図 4.5.9

カーソル

また，上部の黒いメニューバー（図 4.5.10）は，当初は画面の横幅と同じ長さとしてデザインしていたが，画面左隅を支点に軽く時計回りに回転しながら現れるアニメーションを行う

Group Report of 2023 SISP

- 39 -

Group Number 07

CreativeAIこととなったため，そのままではアニメーションの始まりで左端で隙間が生まれてしまう
ことが分かった（図 4.5.11）．旧版のメニューバーに対して新版のメニューバーでは横により長くデザインすることで，図のように隙間が生じないメニューバーを制作することが出来た．

図 4.5.10

図 4.5.11

新旧メニューバー

アニメーションによる隙間が生まれる様子

さらに，背景には海底を演出するために半透明の青いフィルターを制作した（図 4.5.12）．
これらを組み合わせることによりメニュー画面を表現した．

図 4.5.12

海底フィルター（※文責: 松下瑚南）

4.6

敵キャラクターデザイン

4.6.1

敵キャラクターの概要

本プロジェクトで制作するゲームでは敵キャラクターが出現する．これらの容姿は頭が複数個存在する生き物や空中を浮遊する生き物，逆関節の脚を持つ生き物など人間とはかけ離れたモノをモチーフとする．自動生成においてモンスターの分野はトレーニングデータが豊富であり，一枚の画

Group Report of 2023 SISP

- 40 -

Group Number 07

CreativeAI像を出力することは比較的容易である．しかし，本プロジェクトで制作するゲームで重要となるア
ニメーションを加えるとなると，難易度が急激に上がる．モンスターの脚が腕などの異なる部位に認識される，多関節のモンスターでは滑らかな動きをしないなどの問題が生じるためである．よって，敵キャラクターに関しては Blender という 3DCG ソフトを用いて手動での制作を行うこととする．
（※文責: 佐藤玲）

4.6.2

3D モデルの制作

本プロジェクトで制作する敵キャラクターはシステム班から攻撃方法や歩く，ジャンプなどのア
ニメーションが指定された要望をもとにビジュアルを決定した．中ボスに関してはタコなどの種別の指定もある．
モデリングの手法としてはスカルプトモデリングを用いて制作を行った．スカルプトモデリングとは 3D モデルを彫刻のように造形していく手法である．ポリゴンモデリングに比べ直感的な操作が可能かつ造形の自由度が高いため，モンスターなどの複雑な形状を表現することが得意である．
しかし，スカルプトモデリングで制作した 3D モデルは頂点数が膨大であり，アニメーションをとるには処理が重くなるため利用できない．よって，リトポロジーを行い，ローポリゴンモデルの制作を行う．これにより，ハイポリゴンモデルの頂点数を減らしたモデルができる．これにベイクというハイポリゴンの凹凸情報を与える処理を行うことで複雑な形状を維持しつつ，アニメーショ
ンができる 3D モデルを制作した．

図 4.6.1

ハイポリゴンモデル (頂点数: 約 13 万) 図 4.6.2

ローポリゴンモデル (頂点数: 約 1 万)（※文責: 佐藤玲）

Group Report of 2023 SISP

- 41 -

Group Number 07

CreativeAI

第5章
5.1

音響班

目標

第 2 章において，音響班は雰囲気や状況に合わせて，BGM を疑似的に自動生成することを目標にしている．ほかにも目標を立てるにあたって，感情や状況にマッチしたコーラス音源を挿入するという目標や，感情に合わせた曲の開始位置決定という目標もあったが，既存のデータセットが無
く，データセットを 1 から作る必要があるため時間がかかりすぎることや，コーラス音源に感情要素を入れるのは和音の関係から難しいそうだということが，勉強や実際に試して分かったため断念
した．ここで，疑似的な自動生成について説明する．そもそも音楽の自動生成というのは，大規模なデータセットやモデルをもとに，新たな楽曲をゼロから生成するというものであるが，これは，数万，数十万単位のデータが必要であり，音響班がそのデータセットを作成するのは不可能である
うえ，音響班が使用できるような既存のデータセットが，当時見つからなかったため，完全な自動生成というのは断念した．そこで，出来合いの音源を自分たちで制作し，それを組み合わせることで新たな楽曲を作るという手法なら，必要なデータの量を抑えることができるのではないかと考え，その出来合いの音源を用いた疑似的な音楽の自動生成という目標を立てた．
（※文責: 尾崎陽彦）

5.2

方針

はじめに，雰囲気や状況に合わせて BGM を自動でアレンジするシステムを作るために必要な知識や技術を知らなかったため，平田圭二教授や昨年の音響班の先輩方から，音響信号や音響特徴
量，開発環境の構築や昨年のシステムなどについて教えていただいた．その結果，音響班が「ベース」「ドラム」「それ以外」のパートごとの音源を作成し，モデルの出力を利用してパートごとの音源をそれぞれ選択し，合成することで一つの BGM の完成とすることとした．この目標を達成するために必要な要素を 5 つに設定した．
まず 1 つ目が，既存作品とその音源の分析である．モデルに既存データとして入力するためのデータとして，後述する 5 つの作品を分析した既存作品の分析では，音源が再生された場面から感情のデータを作成し，曲ごとの音響特徴量のデータとラベルづけをすることで，分析の完了とした．

2 つ目が，モデルに入力するデータを作成するシステムの作成である．1 つ目にて作成した既存作品とその音源の分析に，音響特徴量をラベルづけするシステムを作成した．まず，既存作品の音源を読み取り，音響特徴量それぞれの数値を計測するシステムを作成した．次に，計測した音響特徴量をモデルに入力するために，データを成型するシステムを作成した．これらのシステムを一つのシステムとすることで，システムの完成とした．

3 つ目が，学習モデルの作成である．この学習モデルでは，既存作品の音源の音響特徴量と音響班がつけた感情データから，物語の感情データに合う音響特徴量を出力する．

4 つ目が，選択用音源の作成である．音響班では，
「ベース」
「ドラム」
「それ以外」とパート分けをし，それぞれで約 15 曲ほど作成した．これらは，あくまで今回のゲームのみでの使用となるため，テーマである「深海」「ホラー」と近しいイメージとなるような曲を作成した．

Group Report of 2023 SISP

- 42 -

Group Number 07

CreativeAI
5 つ目が，選択用音源の選択，合成を行うシステムの作成である．作成した選択用音源の音響特徴量を，2 つ目のシステムを活用して計測し，モデルの出力と比較し，一致するものを選択することで選択用音源の選択するシステムを作成した．また，このシステムで選択された音源の音響特徴
量を調整，音源の合成を行うシステムを作成した．これらのシステムを統合することで，選択用音源の選択，合成を行うシステムの完成とした．
これらの作品，システムを用いることで，場面ごとの BGM が完成し，音響班の成果物とした．
（※文責: 尾崎陽彦）

5.3

先行研究

音響班では，以下の資料を先行研究として参考にした．

5.3.1

Russell と Hevner の音楽の感情分析

Hevner の研究は，音楽と感情との関連性に関する初期の研究の一部である．彼女の研究は，音楽の要素それぞれが，人の感情や印象などにどのような影響を与えるかに焦点を当てていて，聴覚的な特性と感情的な反応の間の関係を調査するための基礎を築いた先行研究である．

Russell は，感情を理解するための 2 次元モデルである「感情の円環モデル」を提唱した．このモデルは，「喜び」「悲しみ」「怒り」などすべての感情が活気度と喜び度の 2 つの独立した次元平面上にマッピングできることを主張している．
これらの理論は，音楽と感情の間の関係を提供する．音響特徴量は，感情の反応を生み出す重要な要素となりえるため，音響班は後述する Python ライブラリである Librosa を用いて音響特徴量を楽曲から抽出，分析し，それがどのように感情に関連するかを理解した．
曲を分析する際には，これらの先行研究から，感情を「怖い」「暗い」「夢のような」「穏やか」「優
雅な」「明るい」「爽快」「力強い」の 8 つに分類し，それぞれの感情ごとに評価することで楽曲ごとの感情を評価した．
（※文責: 鈴木壱）

5.4

音響特徴量

音響班の扱うデータの大半が，音響特徴量となる．音響特徴量とは，音信号の波形から得ることのできる情報のことを言う．音響班では，Python ライブラリの Librosa を用いて音源の音信号にフーリエ変換を行い，そこから音響特徴量を得る．音響班で扱う音響特徴量について，以下で説明する．
（※文責: 時永空侑）

5.4.1

BPM

BPM（Beat Per Minutes）は，音楽のテンポを表す尺度である．名前の通り，1 分間に刻むビー
トの数を示し，例えば，1 分間に 120 回のビートを刻む音楽の BPM は 120 である．この音響特徴

Group Report of 2023 SISP

- 43 -

Group Number 07

CreativeAI量を取得することによって，分析する音源データの音楽の速さを推定する．
（※文責: 時永空侑）

5.4.2

スペクトル重心

スペクトル重心は，音の明るさを表す尺度として用いられることが多い．分析する音信号の，ある周波数に着目したとき，その周波数より大きい周波数帯のパワーと，その周波数より小さい周波数帯のパワーが等しいとき，その周波数がスペクトル重心である．つまり，スペクトル重心が高い
ほど，一般に明るい音，明るい曲という印象を抱き，逆にスペクトル重心が低いほど，暗い音，暗い曲という印象を抱く．また，スペクトル重心は，スペクトログラムから抽出した音響特徴量であることから，音声データに使用されている音源，楽器の組み合わせによる音色の傾向，特徴を計測することができ，ここから，どのような楽器編成が用いられているのかという傾向を特徴としてとらえるという側面でも，スペクトル重心を解釈することができる．
（※文責: 時永空侑）

5.4.3

クロマ

クロマは，ある時間における音の成分を表す．全ての周波数の音を，12 の音名（C，C#，D，

D#，E，F，F#，G，G#，A，A#，B）に当てはめ，ある時間において，各成分のパワーを表す．クロマの時間変化を表したものがクロマグラムである．音響班では，クロマグラムから読み取れるデータを組み合わせることで，音楽データの分析を行った．
（※文責: 時永空侑）

5.4.4

ZCR

ZCR（Zero Crossing Rate）は，音信号の振幅成分の時間的な変化において，振幅成分がゼロになる点であるゼロクロス点が音信号の全体を閉める割合を表す．音声がパーカッシブなほど ZCRは高くなる．この音響特徴量によって，音声データのパーカッシブ成分の多さを推定することができる．また，ZCR は，ゼロクロス点を活用する都合上，音高が高くなることでも，ZCR が高くなることから，ZCR の値は，音声のパーカッシブ成分の多さのみに依存しているわけではない．
（※文責: 時永空侑）

5.4.5

RMS

RMS（Root Mean Square）は，ある時間における音の大きさを表す．音声データの一定時間の中の各時間における音量の 2 乗の平均の平方根を求めることで算出される．一般に，RMS が高い
ほど音圧が大きいとされている．
（※文責: 時永空侑）Group Report of 2023 SISP

- 44 -

Group Number 07

CreativeAI

使用したソフトウェア・Python ライブラリ

5.5

音響班では，主なシステムを Python を用いて制作を行った．以下に使用した Python ライブラ
リや，外部ソフトウェアなどを記す．

5.5.1

Librosa

Python のライブラリである Librosa は音響信号を解析するためのオープンソースライブラリである．感情分析を行うための音響特徴量の抽出に広く用いられていて， 音響特徴量抽出， 表示，および音声・音楽分析のための基本的な関数やモジュールを提供する．Librosa を使用することで， 音響データから重要な音響特徴量を抽出することが可能になる．これらの特徴量は， 感情の識別や分類を行う機械学習モデルにおいて重要な入力データとなることが多い．このような特徴量には， リズム， 音量の強さ， 音の高さなどが含まれる．さらに， Librosa は NumPy， Pandas，

matplotlib といった Python の主要な計算ライブラリとも互換性を持っているため， 組み合わせて利用することによって容易に音声解析とデータ処理が可能になる．しかし， 実装する際はライ
ブラリごとに特定のバージョン同士で組み合わせないと， コンパイルエラーを起こしてしまう可能性があるため注意が必要である．音響班では，Librosa を，音響班が用いた全ての音源において
音響特徴量の抽出に用い，そのデータを保存，活用した．Librosa を活用した音響班のシステムとしては，データセット作成システムにおける音響特徴量の抽出，音源選択，合成システムにおける，音源の生成の際の音量調節がある．
（※文責: 尾崎陽彦）

5.5.2

TensorFlow

Python のライブラリである Tensorﬂow は，Google によって開発された，機械学習やディープ
ラーニングをすることができるオープンソースライブラリである．ニューラルネットワークやその他機械学習のモデルを構築，トレーニング，評価まで行うことができる．Tensorﬂow のコーディン
グ方法は主に 3 種類存在する．以下はそのコーディング方法についてである．

• Sequential API
Sequential API は Sequential は「線形な，順序通り」という意味合いの通り，レイヤー（層）を積み重ねて，データを順方向に処理するモデルを構築する API で，API の中で最も単純で使いやすい構築方法である．初心者でもモデルの構築から学習まで簡単にできる．しかし，単純に作ることができる分複雑なモデルを作成することができない．

• Functional API
Functional API は Sequential API と比較して複雑かつ柔軟なネットワークを構築可能な API である．前述の Sequential API でできる機能の他，複数の入力や出力，スキップ機
能などを持つモデルを構築することができる．また，同じ層を複数回使用したり，層を共有したりすることも可能である．

• Subclassing API
Group Report of 2023 SISP

- 45 -

Group Number 07

CreativeAI
Subclassing API は，最も柔軟性があり，モデルを高度にカスタマイズ可能である．
Functional API よりもさらに独自のモデルを作ることが可能である．しかし，扱いが非常に難しく，初学者には扱えるようなものではないため，使うことができないだろうと判断した．

これらのことから，音響班では扱いやすさと拡張性の観点から，Functional API を使用することとした．
また，それに付随して Keras というライブラリも使用した．このライブラリは，ニューラルネッ
トワークライブラリの一つで，Tensorﬂow 上で動作することができる．ディープラーニングなどに必要となる数学的理論の開発が数行のコードで処理可能となるため，効率的な開発が可能となる．このライブラリも Tensorﬂow と同様 Google で開発されたライブラリで，ニューラルネット
ワークを比較的容易に開発することが可能である．
昨年度のシステムは，ニューラルネットワークを使用していたものの，ソースコードの実行ファ
イル化をすることができず，Python ライブラリを使用しないシステムを構築していた．今年度は，音響班の成果として音声ファイルの提出となるため，ソースコードの実行ファイル化は不要となり，これらの問題が発声しないことから，Tensorﬂow や Keras といった，機械学習用ライブラリを使用することとした．
（※文責: 尾崎陽彦）

5.5.3

Pydub

Pydub はオーディオファイルの読み込み，エクスポート，操作などができる Python ライブラリ
である．このライブラリを使用することで，様々なフォーマットの音声ファイルを読み込むことができるようになる．また，FFmpeg と統合することで異なるフォーマットの音声データを一貫性のある形式に変換できるようになる．今回の成果物では，主に音源の読み込み，音源の音量調整，音源の合成など，音源合成システム内で使用した．
（※文責: 鈴木壱）

5.5.4

DemucsDemucs は，Meta が開発したオープンソースの音源分離ライブラリである．このライブラリは，音源をボーカル，ベース，ドラム，その他のパートに分離することができる．Python ライブラリ
としてインポートし使用することも可能だが，Google の提供する Colaboratory 上でも使用可能である．JPOP などのさまざまな音源を分離することが可能だが，オーケストラ音源など倍音が豊かな音源が分離するのが難しい傾向にあり，音源によっては正しく分離されないことがある．
今回の成果物では，パートごとの音響特徴量の平均値を計測，算出するための音源分離の際に使用した．音源によっては正しく分離されないことがあるため，正しく分離される音源を選定し，分離，計測，平均値の算出を行った．
（※文責: 鈴木壱）Group Report of 2023 SISP

- 46 -

Group Number 07

CreativeAI

5.5.5

FFmpegFFmpeg は，音声の記録，変換，ストリーミングを行うためのソフトウェアである．このソフトウェアを使用することで分析を行う前のデータの一貫性と互換性を保つことができる．また，音声ファイルから特定の部分を抽出したり，音源の長さを調節するのに役立つ機能を持っているため，
音響データを多様な条件下で最適化することが可能になる．
今回の成果物では，Pydub の操作に必要不可欠となるため，このソフトウェアを使用した．
（※文責: 鈴木壱）

5.6

データセット作成システム

5.6.1

音響特徴量抽出5.4 で述べた音響特徴量は，学習モデルの出力層，音源合成システムにおいて用いられる．音響
班は，分析対象である既存の音楽作品と，音響班が自ら作成したオリジナルの音源である，選択用音源に対して音響特徴量の抽出を行った．前者の，既存の音楽作品の音響特徴量は，学習モデルにおける学習時の正解データとして扱い，後者の，選択用音源は，学習モデルの予測データとの照合を行うためのデータとして扱う．ここでは，システム内における各音響特徴量の利用方法，抽出方法について説明する．

• BPM データの算出
BPM は，Librosa を用いることで，何かしらの計算を加えなくても音声データから抽出できる．音響班では，Librosa を用いて BPM を算出したあと，少数第一位までを四捨五入したデータを用いた．音響班がこのように既存の楽曲を分析したが，Librosa の特性上，BPM の算出には，音声データのビートを検出することで，その出現割合から BPM を計算するということをしており，これは，ビートが少ない曲では，音楽のテンポとしての BPM
が正しく算出されないということが散見された．

• スペクトル重心データの算出
スペクトル重心は，分析対象の音声データにおける各時間のスペクトル重心を Librosa によって算出したのち，その平均値を算出し，小数点以下を切り捨てて用いた．

• クロマ分散，クロマ距離の算出
音響班はクロマを，クロマグラムにおけるクロマ分散とクロマ距離という 2 つのデータを算出し，用いた．まず，クロマの算出について述べる．最初に，分析対象の音声データを，

Librosa の音声データ編集機能を用いて，ハーモニックな成分とパーカッシブな成分に分離
し，ハーモニックな方のデータに対し Librosa を用いて，各時間におけるクロマを算出し，そのデータを，クロマ分散，クロマ距離の算出に用いた．クロマ分散は，算出した音声デー
タのある時間におけるクロマのパワーの分散を算出し，音のばらつきを求めたもののことであると定義し，音響班は，各時間のクロマ分散の平均値を用いたが，開発を進める段階で，クロマ分散が学習モデルの精度の低下の要因となっていたため，使用をやめた．クロマ距離Group Report of 2023 SISP

- 47 -

Group Number 07

CreativeAIは，クロマの平均値と中央値の差の絶対値と定義し，音響班では，各時間のクロマにおける中央値と平均値において，それぞれの中央値を用いるクロマのデータの中央値，平均値と見立て，その差の絶対値をクロマ距離として用いた．

• ZCR，RMS の算出
ZCR，RMS のデータはいずれも ZCR，RMS の平均値をとり，それを用いた．音響班では，自作の音源の ZCR を算出する際，パートごとに音源を分けて作成している都合上，学習モデルと比較した際，既存の楽曲の ZCR と，自作の音源のパートごとの ZCR を正しく比較できていない可能性が大きい．

• 音響特徴量の使用
音響班は，これらの特徴量に関して，全ての特徴量を，既存の楽曲の分析，学習モデルの作成に用い，音響班が自作したパートごとの音源の選択において，ベースにはクロマ距離を，ドラムには ZCR を，それ以外にはクロマ距離と ZCR を用い，選択を行ったのち，選択された音源の音量調節のために，RMS を用いた．

以上のように Librosa を基盤に音響特徴量を抽出し，システム内で抽出した音響特徴量は，生データとして，1 つの csv ファイルに保存される．生データを残す理由は，特徴量の数値を可視化する他に，Librosa によって抽出した特徴量が明らかに間違いであった場合に，データの手直しを可能とするためである．
（※文責: 時永空侑）

5.6.2

One-Hot ベクトル化

音響班は，音響特徴量を抽出した生データを，学習モデルに使用するために，データの成形を行い，生データを one-hot ベクトル化した．one-hot ベクトルとは，ある 1 つの次元の値が 1 であり，その他の次元の値が 0 であるようなベクトルのことである．これを用いることで，学習モデルの作成を行うための入力の際，各種 one-hot ベクトルを互いに干渉しないものとして扱うことがで
き，数値の面でも 0 と 1 しかないため，データを扱いやすく，学習の効率が上がる．ただし，次元数が多くなるほど，データが詳細になり精度が上がる反面，計算処理は重くなるので，音響班で用いる学習モデルに対して，丁度良い塩梅を模索する必要がある．
データ成形の具体的な手法に関して，例を示す．例えば，整数 1 から 100 までの BPM について考えるとすると，その際にまず必要となるのが，成型後にできる One-hot ベクトルの次元数である．ここでは，仮に 5 次元の One-hot ベクトルに成型することを考える．その場合，0 から 100までの値を 5 等分（1〜20，21〜40，41〜60，61〜80，81〜100）する．これによって，One-hot
ベクトルへの成型を行う際の基準が定まる．こうして定めた基準に対して，例えば，音響分析において，BPM30 と定まった音楽の音響特徴量を記録した csv ファイルを読み込んだとすると，その音楽の BPM に関する One-hot ベクトルは [0，1，0，0，0] となる．
音響班では，各音声データの音響特徴量を，6 次元，4 次元の one-hot ベクトルに成形した．その具体的な手法を述べる．
まず，one-hot ベクトルの生成に必要なものとして，ベクトルの要素の中の 1 つを 1 にするためGroup Report of 2023 SISP

- 48 -

Group Number 07

CreativeAIの基準として，ベクトルのある要素が 1 となる特徴量の数値の範囲の境界があり，これを決定す
る．境界の決定には，既存の音楽作品から分析した音響特徴量のデータを用いる．これは，既存の音楽作品から分析した音響特徴量のデータのみを，学習モデルの学習時の正解データとして用いる
ため，正解データとなる音響特徴量のみでの相対的な分布が必要だからである．
境界の決定の手順として，まず，用いるデータのデータ数，つまり，分析した既存の音楽作品の曲数をすべて確認する．このデータ数を，整数 n とする．そして，作成したい one-hot ベクトルの次元数と，ベクトルの要素を 1 とする基準となる数値の範囲の数は等しいため，設定する必要のあ
る境界の数はベクトルの次元数よりも 1 小さい数値である．例えば，4 次元の one-hot ベクトルを生成する時に必要な基準となる数値の範囲は， 最小値〜1 つ目の境界の値 ， 1 つ目の境界の値〜

2 つ目の境界の値 ， 2 つ目の境界の値〜3 つ目の境界の値 ， 3 つ目の境界の値〜最大値 であるので 4 次元の one-hot ベクトルにおいて必要な基準は，3 つである．また，境界の値に用いるのは，分析した既存の音楽作品の音響特徴量を分布させたリストを，生成したい one-hot ベクトルの次元数で等分したときの，境界となる要素であり，そのためにその要素の番号を取得する．この境界における要素というのは，いわゆる分布における第一〜第三四分位数のような意味を成す．
以上より，上記の音響特徴量を分布させたリストにおける，i 番目の境界の値の要素番号を，以下の式によって算出する．ただし，整数 d を生成したい one-hot ベクトルの次元数，整数 E を算出する要素番号とし，E が整数でない場合，少数第一位を四捨五入し，概数とする．

E=

i×n
d

次に，上記によって算出した各要素番号に該当する境界の値と，データの最小値，最大値を用いて，one-hot ベクトル化の基準となる数値の範囲を決定し，各データの音響特徴量を実際に one-hot
ベクトル化する．
システム内での処理として，各データの音響特徴量をひとつづつ参照し，まず，その one-hot ベ
クトルとなる値が 0 のみのリストを生成し，それに基準となる数値の範囲を割り当てる．次に，参照したデータの音響特徴量をそれぞれの基準となる数値の範囲に照合し，範囲内に当てはまった部分に該当する要素を 1 とし，そうでなければ 0 のままとする．また，要素を 1 に変換する処理を行った場合，one-hot ベクトルの定義上，参照したデータを，以降の基準となる数値の範囲と照合する必要がなくなるため，その時点で処理を終了する．
このようにして生成した各データの one-hot ベクトルを特徴量ごとに別の csv ファイルに保存
し，出力し，音響特徴量に関するデータセットの作成を完了する．
（※文責: 時永空侑）

5.6.3

データセット作成システムの統合

上記で説明したように，音響特徴量についてのデータセットの作成には，音響特徴量の抽出と，抽出した音響特徴量データの one-hot ベクトルへの成形が必要である．この 2 つの操作は，前期は別のシステムとして利用していたが，後期には統合を行い，いくつかの機能を追加した．

2 つのシステムの統合により，システム内でのデータのやり取りが可能となった．さらに，従来のように，抽出した音響特徴量の生データを手直しできるように，データ自体は csv ファイルとして残るようにし，そのデータを成形に使うようにした．
追加した機能としては，まず，前期には，楽曲のアルバムとなる，単一のフォルダの分析をひとGroup Report of 2023 SISP

- 49 -

Group Number 07

CreativeAI
つづつ行う必要があったものを，単一のフォルダのみの分析機能を維持しつつ，複数のフォルダを一気に分析できるようにし，分析対象のフォルダも，分析時にそのフォルダのパスを指定させて分析対象を選択させることで，分析対象がどこに保存されていても分析できるようにした．これによって，音声ファイルを作品ごとにフォルダにまとめることができ，分析対象のみを格納したフォルダを作ることができるようになるので，分析対象の整理ができるようになった．また，5．6．2
で述べた one-hot ベクトル化を行うためには，既存の音楽作品全ての音響特徴量を分布させる必要があるので，全ての分析対象を一括で分析できるようにすることは必須であった．
その他に，開発環境のコンソール上で，音響特徴量の分析，one-hot ベクトル化，そして one-hot
ベクトルの次元数や，5．6．2 で述べた基準となる数値の設定の 3 つのいずれかのみを行うことができるように設定できる様にしたり，分析進度を可視化し，視認性を上げる等の改修を行った．
（※文責: 時永空侑）

5.6.4

データセット作成システムの運用方法

まず，データセット作成システムは，いくつかのファイル，フォルダによって構成されている．
まず，システムの全体を統制する Python ファイルがあり，これを Python の開発環境上で実行することで，このシステムを運用する．次に，one-hot ベクトル化に用いる json ファイル，それぞれのフォルダ内にある，音楽作品，音源を種類別にまとめたフォルダのパスが記録されている既存の音楽作品，自作の音源用の 2 つのテキストファイルがあり，これらによって，分析対象のデータを管理する．
初回運用時はシステム統制用の Python ファイルと，分析対象のパスが記録されている 2 つのテキストファイルのみがある状態からの実行となる．実行を行うと，開発環境のコンソール上に現状必用な情報が表示される．初回起動時は，全てのデータが欠落している状態なので，音源分析，

one-hot ベクトル化のための設定の保存，one-hot ベクトルのデータが必要であると表示される．
初回起動以降，いずれかのデータに欠落が見られれば，それが必要であるという表示がされる．これらの表示がされた場合，それらの情報を取得する処理を行わないで通常の処理を行うとエラーが出てしまうので，それができないような仕様になっている．
初回起動時での処理として，音源分析，one-hot ベクトル化のための設定の保存，one-hot ベク
トル化を順番に行う．これは，one-hot ベクトル化のための設定の保存では，音源分析のデータが必要であり，one-hot ベクトル化では，onehot ベクトル化のための設定の保存が必要であるため，
この順番で処理を行う仕様となっている．まず，音源分析では，分析対象のうち，既存の音楽作品の方のみの音響特徴量を抽出する．既存の音楽作品の音響特徴量のデータは，one-hot ベクトル化のための設定において最低限必須であり，Librosa を用いた音源分析には多少の時間を要するため，最低限以上の分析を，初回起動における処理では行わないように設定した．この分析はコンソール上で進度がわかるようになっており，分析完了と表示された時点で分析が終了する．この時，抽出された音響特徴量は，それぞれの既存の作品のフォルダごとに分けられた状態で csv ファイルに保存されている．次に，one-hot ベクトル化のための設定では，音源分析において生成された音響特徴量のデータをもとに，one-hot ベクトル化のための設定が保存された json ファイルを生成する．
この処理を行う前に，one-hot ベクトルの次元数を決める必要があり，システムの使用者は，生成したい one-hot ベクトルの次元数をコンソール上に入力し，Enter キーを押すことで入力を完了すGroup Report of 2023 SISP

- 50 -

Group Number 07

CreativeAIる．この操作を行った後，one-hot ベクトル化のための設定の処理が行われる．最後に，one-hot
ベクトル化は，one-hot ベクトル化のための設定の直後に連続して行われる．これは，one-hot ベ
クトル化のために必要な入力処理がないことから，このような仕様に設計した．この時，それぞれの音響特徴量が保存されているフォルダの中に，それぞれの音響特徴量に関する one-hot ベクトルが保存された csv ファイルが生成され，one-hot ベクトル化が完了する．
通常起動時の処理として，まず，コンソール上にメニューが表示され，使用者は，初回起動時に行ったそれぞれの処理を，任意に選んで，再度処理を行うことができる．この時，音源分析では，分析を行う対象を，自作の音源からも選ぶことができ，また，全ての音源を一気に分析することも可能である．one-hot ベクトル化のための設定も，one-hot ベクトルの次元数を任意に選択し，再度設定をし直すことができる．また，one-hot ベクトル化に関しても，これのみを選択，実行することが可能であり，これは，音源分析と同様に，one-hot ベクトル化の対象を任意に選択することが可能である．
（※文責: 時永空侑）

5.7

作品の分析

• Subnautica（サブノーティカ）「Subnautica」は，2018 年にリリースされたアドベンチャーゲームであり，制作はアメリカのゲーム開発スタジオ，Unknown Worlds Entertainment によって行われた．このゲー
ムでは，プレイヤーがエイリアンの海洋惑星に墜落した宇宙船の唯一の生存者となり，未知の水中世界を探索し，生き延びるための挑戦に直面する．生存，資源の収集，新しい道具や設備の製造に加えて，独特の生物や美しい海洋環境の探索がゲームプレイの核となる．さらに，「Subnautica」の BGM は，その没入感とゲーム体験を深める重要な要素である．音楽
は，海洋の神秘と未知の環境の雰囲気を高め，緊張感あるシーンや探索時の好奇心を刺激す
る．この BGM は，プレイヤーが感じる環境の美しさと同時に，未知の世界に潜む危険を効果的に伝える．「Subnautica」は，生存と探索の要素を巧みに組み合わせた作品であり，その BGM はプレイヤーに深い感情移入と独特の体験を提供する．

• Perfect Storm（パーフェクトストーム）「パーフェクト・ストーム」（原題: The Perfect Storm）は，2000 年に公開されたアメリカの映画であり，制作はワーナー・ブラザースによって行われた．本作は，セバスチャン・
ユンガーの同名のノンフィクション書籍を基にしており，1991 年にアメリカ東海岸で発生した「パーフェクト・ストーム」と呼ばれる大型の嵐に直面した漁船「アンドレア・ゲイル」とその乗組員の実話に基づいている．映画では，ジョージ・クルーニーとマーク・ウォール
バーグが演じる漁師たちが，未曾有の自然の脅威と戦いながらも，深い絆と決断を描いている．本作の BGM は，映画の緊迫感とドラマチックな雰囲気を高める重要な要素である．音楽は，海上での厳しい生活と漁師たちの心情を表現するとともに，巨大な嵐という自然現象の壮大さと脅威を効果的に伝えている．BGM は，観客が映画の場面場面で感じる緊張感を強調し，キャラクターたちの苦悩と勇気をより深く感じさせる．
『パーフェクト・ストーム』
は，実話に基づく人間ドラマと自然の脅威を描いた作品であり，その音楽は映画の感動を増Group Report of 2023 SISP

- 51 -

Group Number 07

CreativeAI
幅させる重要な役割を果たしている．

• Sea Fever（シー・フィーバー）「Sea Fever」は，2020 年に公開されたアイルランドのホラー・サスペンス映画であり，監督はニーサ・ハーディマンが務めた．本作は，海洋生物学を専攻する学生が乗り合わせた漁船が，未知の海洋生物と遭遇し，その生物が引き起こす恐怖と奇妙な現象に直面する物語である．映画は，船内の閉鎖的な環境と未知の生物からくる脅威を背景に，乗組員たちの心理的な緊張と対立を描いている．映画の BGM は，この緊迫感を高める上で重要な役割を果たしている．音楽は，未知の生物の謎と脅威を感じさせるとともに，乗組員たちの不安と恐怖を効果的に表現している．BGM は環境の不穏な雰囲気を創り出し，観客に緊張感を持続させる．また，映画のクライマックスにおいて，音楽は緊迫した状況の高まりを強調し，物語の感情的な高揚をサポートしている．
「Sea Fever」は，ホラーとサスペンスの要素を巧みに組み合わせた作品であり，その BGM は，物語の恐ろしい雰囲気と緊張感を強化するために重要な役割を果たしている．

• Ghost Ship（ゴーストシップ）「Ghost Ship」（ゴースト・シップ）は，2002 年に公開されたアメリカのホラー映画で，監督はスティーヴ・ベックが務めた．本作の制作は，ダーク・キャッスル・エンターテイメ
ントによって行われ，バルト海で発見された放棄された豪華客船「アントニア・グラーサ」を探索する海上サルベージチームの物語を描いている．チームが船内を調査する中で，彼らは船の過去の悲惨な歴史を解き明かし，超自然的な現象と恐怖に直面する．映画の BGMは，その不気味で緊迫した雰囲気を強調する上で重要な役割を果たしている．音楽は，船内の探索シーンにおいて不安と期待を煽り，観客の恐怖感を高める．また，船の謎が徐々に解き明かされるにつれて，BGM は緊張感を一層増加させ，映画のクライマックスに向けて観客の感情を引き締める．このように，「Ghost Ship」の BGM は，映画のミステリアスでス
リリングなストーリーラインと密接に結びついており，物語の雰囲気を効果的に高めるために重要な役割を果たしている．この映画は，2000 年代初頭のホラー映画として特に注目され，そのビジュアル効果とストーリーテリングで観客に強い印象を与えている．

• The Abyss（ジ・アビス）「The Abyss」は，1989 年に公開されたアメリカの SF 映画であり，ジェームズ・キャ
メロンが監督を務めた．この映画の制作は，20 世紀フォックスによって行われた．物語は，冷戦時代のカリブ海で沈没したアメリカの核搭載潜水艦を救助するために，海底油田掘削プ
ラットフォームの民間ダイビングチームが派遣されるところから始まる．チームは深海で未知の水中生物と遭遇し，彼らとの交流を通じて人類と地球の未来に関する重要な発見をする．映画の BGM は，深海という未知の環境とそこでの冒険を表現するために重要な役割を果たしている．音楽は，海底での神秘的で未知なシーンを強調し，観客の探求心を刺激す
る．また，BGM は，物語の中での緊迫した瞬間や感動的なシーンに深みを与え，観客の感情移入を促進する．「The Abyss」の音楽は，映画の独特な雰囲気と冒険的なストーリーを完璧に補完し，深海の謎と人間ドラマを効果的に描き出している．この作品は，ジェーム
ズ・キャメロンの映画製作における技術的革新と深海をテーマにした斬新なストーリーテリ
ングで広く知られ，高く評価されている．

Group Report of 2023 SISP

- 52 -

Group Number 07

CreativeAI（※文責: 鈴木壱）

5.8

学習モデル

• 学習モデルの作成
前期までに勉強した内容を元に，学習モデルを作成する．ニューラルネットワークとして全結合型の Dense を用いる．また，学習方法として教師あり学習を行う．学習モデルを作成するにあたって学習用の入力データと出力データを決める必要がある．入力データとして，映画やゲームで音楽が流れている場面に手動で感情ラベル付けを行った．この感情ラベ
ル付けでは，Hevner の 8 種類の印象語群に対して，それぞれ 0〜1 の 0．1 刻みで感情ラベ
ル付けを行い，1 つの場面に 8 種類の感情ラベルをつけ，入力データとした．出力データとして，映画やゲームで音楽が流れている場面の曲の音響特徴量を one-hot ベクトル化したデータを用いた．活性化関数として中間層には ReLu 関数，出力層には softmax 関数を，最適化関数では rmsprop を適用した．学習の際には，180 の場面に対して感情ラベル付けを行い，そのうちの 75 % にあたる 135 データを学習用データとし，残りの 25% の 45 デー
タをモデル評価用データとした．

• モデルの結果（評価）範囲を 6 分割，4 分割の 2 パターンで予測・評価を行い，評価方法として accuracy とTop-k-accuracy を用いた．accuracy は（正解データと同じ予測結果となるデータ）/（全データ）で表される．6 分割の時の accuracy は BPM が 40%，その他が 25%，4 分割の時には BPM が 40%，その他が 35% となった．Top-k-accuracy では，k 個の予測の中に正解が含まれていた場合，正解とするという評価方法で，（k 個の予測の中に正解があるデー
タ）/（全データ）で表される．今回は k=2 とした．予測する際に softmax 関数で得られた確率が上位 2 つの範囲に正解データの範囲があったときに正解とすると，6 分割の正解率はそれぞれの音響特徴量に対して平均的に 75%〜90%，4 分割のときでは 80%〜100% となった．accuracy での正解率が 40% 近くであるのに対して，Top-2-accuracy では正解率が 2倍近くなることから，確率が上位の 2 つから選ぶ予測をするのが難しいことが分かる．また，BPM の精度が分割数を減らしても上がらなかったことから，BPM のデータを確認したところ，librosa に対してアンビエント音楽のような，BPM が分かりづらい曲の音響特徴
量を分析させると，明らかに間違った BPM を出力してしまうことが分かった．そのため，手作業で BPM を修正し，アンビエント音楽の BPM を削除したデータで学習させた結果，

accuracy が 6 分割のときは変わらず 40%，4 分割のときは 50% 程度となった．
• データの修正
モデルの精度を上げるためにデータに改変を加えた．

• 感情が 0．1 となっているところを 0 に変更• 0．1 刻みであったところを 0．2，0．3 刻みに変更
Group Report of 2023 SISP

- 53 -

Group Number 07

CreativeAI• Hevner の 8 つの感情のうち，後半 4 つを削除

以上のことをそれぞれ行ったが，モデルの精度に大きな変化は見られなかった．

FunctionalMain12 では感情から，それに合った音響特徴量を予測する教師あり学習モデルである．ﬁle path emotion には感情ラベルの csv の path を，ﬁle path bpm のように ﬁle path 音
響特徴量には音響特徴量の csv の path を入力することで，学習モデルが感情ラベルと音響特徴量の関係を学習する．この時，感情ラベルの csv と音響特徴量の csv はデータを対応させるた
めに同じ行にデータを入力する必要がある．例として，music という曲が流れている場面に対して 3 行目に感情ラベルをつけた場合，music の音響特徴量も 3 行目にする必要がある．そして，

ﬁle path emotion story に予測したい感情ラベルを入力した csv の path を入れることで，感情ラベルに合った音響特徴量を予測することができる．
本プロジェクトでは，学習に用いた音響特徴量は librosa から得られた生データではなく，

one-hot ベクトル化で述べられているように６つや４つの範囲で one-hot ベクトル化したため，予測結果として得られる音響特徴量も６つや４つの範囲の中から選ぶという形になっている．また，今回の学習モデルでは音響特徴量はすべて 4 つの範囲としたが，BPM size のように，音響特徴
量 size=n の数値を音響特徴量ごとに変更し，学習用データの音響特徴量の範囲を n 個に one-hot
ベクトル化することで，音響特徴量ごとに任意の範囲の分割数で予測できる．
予測結果は softmax 関数を用いているため，それぞれの範囲に対して 0〜1 の確率が出力される．bpm preds のように音響特徴量 preds という二次元 numpy 配列に確率が出力されている．
今回のプロジェクトでは後に述べる音源選択・合成システムにデータを使いやすい形にするために

convert to onehot という関数によって，予測した範囲のうち確率が最も高いものに 1，次に高いものに 2 を，それ以外は 0 とし，bpm prediction.csv のように，音響特徴量 prediction.csv という形式でそれぞれ出力されるシステムとした．
（※文責: 尾崎陽彦）

5.9

選択用音源

• 選択用音源の製作
デジタルオーディオワークステーション（DAW）ソフトウェアを使用して自作した音源に関する詳細な説明を行う．本プロジェクトでは，選択用音源制作のために，ドラム，ベース，その他のパートという形で音源を分けて制作した．具体的には，ドラムパート用の音源として 15 ファイル，ベースパート用の音源として 15 ファイル，その他のパート用の音源として 13 ファイルを制作した．これらの音源は，モデルで出力された結果を基に音源合成システムにて様々な組み合わせで合成される．
作曲には，Cakewalk by Bandlab と Studio One という 2 つの異なるソフトウェアを使用した．これらのソフトウェアは各々独自の機能と特性を持ち，音楽制作において幅広い可能性を提供する．各パートごとの音源制作においては，後の編集作業で BPM の調整を容易

Group Report of 2023 SISP

- 54 -

Group Number 07

CreativeAIにするために，全音源を BPM=100 で統一して制作した．これにより，異なる音源を組み合わせた際のテンポの不一致を防ぐことができる．
さらに，各パートの音源は，楽曲のループ部分において自然なつながりを持つように，
ループ可能な形式で制作された．特に，ドラム音源においては，リズムのバリエーションを豊かにするために，同じリズムパターンを繰り返さないように意識した．これにより，各曲に独自のリズム感を持たせることができた．
ベース音源に関しては，曲全体の完成度を保つために，全音源を一定のコード進行に固定した．これにより，不協和音が発生し，音源の組み合わせが曲として成立しなくなるリスクを回避した．また，ベース音源もドラム音源と同様に，リズムやメロディーのバリエーショ
ンを持たせることを心がけた．
その他の音源についても，ベース音源と同様に一定のコード進行を基に制作し，メロ
ディーにおいてもバリエーションを持たせる工夫をした．これらの音源には，ディレイ，振動などのエフェクトを追加し，さらに様々な楽器の音色を取り入れることで，音源の多様性を高めた．
最終的に，これら自作の音源を組み合わせることで，総計 2000 曲以上の異なる楽曲を制作することが可能となった．

• Cakewalk by Bandlab
Cakewalk by BandLab は，高度なデジタルオーディオワークステーション（DAW）
であり，元々「SONAR」として知られていたこのソフトウェアは，2018 年に BandLab

Technologies によって無償で再リリースされた．Windows に特化して設計されており，無制限のオーディオトラック，MIDI トラック，オーディオエフェクトをサポートし，VST3
プラグイン，64 ビットのミックスエンジン，ProChannel モジュールなどの先進的な機能を備えている．直感的で使いやすいインターフェースは，初心者からプロフェッショナルまで幅広く利用されており，録音，編集，ミキシング，マスタリングが効率的に行える．優れた録音機能により，高品質な音質での楽曲制作が可能であり，BandLab のオンラインプラッ
トフォームとの統合により，オンラインでのコラボレーションや楽曲共有も容易になっている．

• Studio One
Studio One は，PreSonus によって開発された先進的なデジタルオーディオワークステー
ション（DAW）であり，その直感的なユーザーインターフェース，強力な録音，編集，ミキシング機能が特徴である．初心者からプロフェッショナルまで，幅広いユーザーに適応する
このソフトウェアは，ドラッグアンドドロップ機能を中心に構築されており，素早いワークフローを可能にする．また，Studio One は，無限のトラック数，多彩な仮想楽器，エフェ
クト，サウンドループに対応し，統合されたマスタリング機能を提供する．さらに，このDAW はクロスプラットフォームに対応し，Windows と Mac の両方で動作する．高品質な録音と編集機能に加え，ユーザーフレンドリーなインターフェースは，音楽制作のプロセスをスムーズかつ効果的にする．これらの機能により，Studio One は音楽制作，ポストプロ
ダクション，ライブサウンドレコーディングなど，さまざまな用途に対応している．

Group Report of 2023 SISP

- 55 -

Group Number 07

CreativeAI（※文責: 長瀬悠太）

5.10

音源選択・合成システム

最後に音源選択・合成システムについて説明する．音源選択・合成システムでは，主に音響班が作成したパートごとの音源を，学習モデルの出力を基に選択し，合成することで 1 つの曲にするシ
ステムである．

5.10.1

音源選択システム

音源選択システムでは，主に学習モデルが出力したデータを参照に，音源を選択し，それらを

csv ファイルに出力することまでを行うシステムである．まず，選択方法についてである．音源を選択する方法について，まず，昨年度と同様，6 次元の One-Hot ベクトルで一致するものを適した音源とする方法を行った．しかし，これでは音源が選ばれない場面が多く，また同時に選択されすぎてしまうという事態も生じ，用意していた数倍の選択用音源を準備する必要があると判断し，この選択方法は断念した．そこで，ベクトルの次元数や形，選択方法を変更し，選択する方法を複数試した．まず，6 次元の One-Hot ベクトルから一致するものと，1 の座標が左右 1 つずつずれた

One-Hot ベクトルも選択可能とし，選択範囲を広めた方法である．しかし，この方法では選ばれない場面が多数存在し，当初の問題を根本から解決することはできなかった．次に，One-Hot ベク
トルを 6 次元から 4 次元に変更し，一致するものを適した音源とする方法である．この方法では，多少選択されない場面は減ったものの，まだ選ばれない場面が多かったため，もっと広く選択でき
るようにする必要があると判断した．そこで，モデルの出力方法を，確率の高い座標から 1，2，他を 0 とし，選択用音源の One-Hot ベクトルの 1 の座標と比較し，確率の高い座標から選ばれるよ
うにする選択方法を行った．この方法で，6 次元のベクトルにデータを成型し音源を選択したところ，やはり音源が選ばれない場面が多数存在したものの，同時に選択用音源が多数選択されすぎてしまうという場面が減り，適した音源を選択しやすくなった．そのため，ベクトルを 4 次元に減らすことで，選択されない場面がなくなり，さらに同時に選ばれる選択用音源の曲数が減り，適した音源を生成することが容易になった．そのため，音響班では，「学習モデルから出力された確率の高い座標から 1，2，他を 0 とし，選択用音源の One-Hot ベクトルの 1 の座標と比較，確率の高い座標から選択用音源が選ばれる」という方式を採用した．
次に，選択用音源を選択する際に用いる音響特徴量についてである．まず，全パートにおいて，

BPM，スペクトル重心，RMS は，音源を合成した時に値が変わる恐れがあり，また，合成後に編集可能であることから，選択時に使わないこととなった．bass では，ZCR がほぼ全ての音源において低い値を出しており，選択に使用できないと判断し，クロマ距離のみで選択するとした．

drum は，打楽器成分が主であり，音に対して音名を定めることが困難であることから，ZCR のみで選択するとした．other は，どちらも特筆すべき問題がないため，クロマ距離と ZCR の両方を用いて選択を行った．
最後に，音源合成システムとの連携である．音源合成システムでは音源の合成と編集を行うため，それらに必要なデータを出力する必要がある．データは，CVS を保存することで連携することとした．選択された音源のトラックナンバーを，パートごとに CSV に出力し，音源合成システ
ムで選択ができるようにした．また，編集の時に必要となる BPM，スペクトル重心，RMS については，それぞれの One-Hot ベクトルの中央値を算出し，それを CSV に保存した．

Group Report of 2023 SISP

- 56 -

Group Number 07

CreativeAI
ここで，このシステムの使い方について説明する．このシステムは，select.py，select 2.py，select4.py の 3 つに分けられる．これらは，前述のように，複数の方法で選択を行い，それらの結果で比較を行ったため，システムが複数存在する．select.py は，6 次元の One-Hot ベクトルから，一致するものや 1 の座標が左右一つにずれた One-Hot ベクトルも選択可能であるシステムである．select4.py は，4 次元の One-Hot ベクトルから，一致するものを選択可能なシステムである．select 2.py は，モデルの出力方法を，確率の高い座標から 1，2，他を 0 とし，選択用音源のOne-Hot ベクトルの 1 の座標と比較し，確率の高い座標から選ばれるようにする選択方法を用いたシステムである．最終的には select 2.py によって出力された結果を用いたが，展望としてさらに選択用音源を絞り込めるようにするため，バックアップとして残している．これらのシステムを使うためには，パートごとの選択用音源の音響特徴量 One-Hot ベクトルデータ，学習モデルから出力された物語に合う音響特徴量 One-Hot ベクトルデータが必要である．これらはそれぞれ，
データセット作成システム，学習モデルを使うことで作成することができる．これらのデータセッ
トはそれぞれ csv で作成されており，フォルダごとにまとまっている．このシステムは大まかな流れとして，データセットを読み込み，それらをもとに選択用音源を選択し，選択するときに使わない音響特徴量を音源合成システムで使うために別途 csv に保存，選択された音源のトラックナン
バーを格納した csv を作成，となっている．初期環境では，データセットそれぞれの csv の Pathを指定することで，このシステムを実行することができる．
（※文責: 鈴木壱）

5.10.2

音源合成システム

音源合成システムでは，主に音源選択システムで出力された CSV を用いて，音源を合成，編集
し音源の完成までを担うシステムである．音量変更や，音源の合成において，Python ライブラリ「pydub」と，それの処理に必要なフリーソフトウェア「ﬀmpeg」を使用した．
まず，各パートの RMS を「適した」RMS に変更した．ここでの「適した」を，音響班では「分析用音源を音源分離し，RMS を計測後，パートごとにとった平均値」とした．分析用音源としては Subnautica のサウンドトラックを使用した．理由として，音源分離に用いた Python ライブラ
リ「demucs」は，電子音の分離には強いものの，オーケストラを用いた音源は分離が難しく，RMSをパート事に正しく計測することが困難だと判断したためである．
次に，RMS を調節した音源を合成し，さらに「モデルから出力された，適した RMS」に調節した．これで，ゲームに合う BGM を完成とした．なお，BPM，スペクトル重心に関しては，Python
上で効果的に，かつ高クオリティで変更することが難しく，ゲームに合う BGM を作成することが困難だと判断したため，今回のシステムでは取り扱わなかった．
音源選択システムにおいて，それぞれの場面に適したパートごとの音源が複数選択される場合があり，音源合成システムでは，複数選択された場合，すべての組み合わせで音源を作成した．また，一つの場面において複数音源が作成されたものは，音響班で適している BGM を選択し，最終的に場面ごとに一つ BGM を確定した．
ここで，このシステムの使い方について説明する．このシステムの大まかな流れとして，csv
ファイルの読み込み，書かう選択用音源の読み込み，Librosa を用いて各選択用音源の RMS を計測，各選択用音源の RMS を調整，音源の合成，音源を mp3 ファイルで出力，というようになっている．このシステムでは，RMS の計測で Librosa を，RMS の調整や音源の合成など，音声ファGroup Report of 2023 SISP

- 57 -

Group Number 07

CreativeAI
イル操作全般を Pydub で操作するため，この二つのインポートは必須である．また，このシステ
ムを使うにあたって，音源選択システムを実行した際に出力された，選択した選択用音源のトラッ
クナンバーがリストアップされている csv ファイルが必須であるため，このシステムを実行する前に必ず 1 度は音源選択システムを実行する必要がある．また，必要な csv ファイルや mp3 ファイルが格納されたフォルダの Path を指定する必要もある．これらの条件を満たすことで，この音源
合成システムを実行することができる．
この 2 つのシステムを実行することで BGM を生成することができるが，現状選択するときの条件が比較的緩いため，場合によっては選択用音源がたくさん選択されてしまうことがある．今
回，複数個選ばれた際にはすべて生成し，ナンバリングすることで解決したが，複数個作成された

BGM は最後に音響班によって選別していた．今後の音源選択では，バランスの取れる選択条件を指定することが必要である．また，複数個作成された際に，さらに絞り込むことができるような新
たな選択を用意するべきである．
（※文責: 鈴木壱）Group Report of 2023 SISP

- 58 -

Group Number 07

CreativeAI

第 6 章 システム班
6.1

方針

システム班ではゲームエンジンに Unity を用いてゲーム開発をすることに決定した．用いるゲー
ムエンジンについては Unity のほかに Unreal Engine も候補として挙がったが，Unity の方が開発技術を習得までにかかる時間が少なく済むことからゲームエンジンとして Unity を選択した．しかし，メンバー全員が Unity でのゲーム開発の経験が無かったため，Unity の使用方法についての勉
強から活動をスタートした．また，2D アドベンチャーゲームを開発するにあたって，このジャンルのゲーム開発の知識が必要であったため，「Make A Game」というサイト (https://dkrevel.com/)をもとに 2D ゲームの開発方法についての勉強をした後，ゲーム開発を行った．
ゲーム開発は，システム班内で前期で 2 つの担当に後期では 3 つの担当に分かれて行った．前期
は，ゲームの基盤を開発する担当とマップデザインを開発する担当に分かれ，後期はこれらの 2 つの担当のほかに強化学習をする担当の 3 つの担当に分かれて活動を行った．ゲームの基盤を開発する担当はギミックや敵キャラクター，主人公の制御，エリア，システム関連の開発を行った．マッ
プデザインを開発する担当は，ゲームの基盤の開発をする担当に開発してほしいエリアの設計図を描く作業を行った．強化学習をする担当は，強化学習を行うボスキャラクターの開発と強化学習をする作業を行った．
（※文責: 村岡広海）

6.2

マップの概要マップとは，主人公や敵キャラクター，ギミックやイベントが存在する場所のことである．前期までの開発ではタイルマップ方式で，地面や壁，ギミック，イベントを配置できるようにしている．
地面と壁に関しては Unity の Tile Palette という機能を用いて配置している．また，地面と壁には当たり判定を追加することで，プレイヤーが通れないようになっている．背景についても Unityの Tile Palette という機能を用いて配置しているが，地面と壁とは違い，当たり判定は追加していない．ギミックとイベントに関しては，Unity の Prehub という機能を用いることで，シーン内に複数配置したり，異なるシーンに同じ機能を持つギミックを配置できるようにしたりしている．加えて，Unity の Move Tool を用いることで，一度配置したギミックとイベントの位置を変更することができるようになっている．以下では，マップ上に配置するギミックやイベントについて説明する．
（※文責: 中村慶琉）

Group Report of 2023 SISP

- 59 -

Group Number 07

CreativeAI

6.2.1

連続バトルイベント

連続バトルイベントとは，特定のエリア内に主人公が侵入すると，敵キャラクターが出現し，全ての敵キャラクターを撃破するまで移動が制限される，というイベントである．以下は そのイベ
ントの各要素の説明である．
・移動の制限はじめに，特定のエリアにプレイヤーが侵入したことを検出すると，戦闘エリアの外側に当たり判定を持った壁が出現し，物理的に戦闘エリアの外側に移動することが不可能になる．次に，ゲーム画面に表示されているカメラが，プレイヤーを追従して表示するメインカメラから，戦闘
エリア内で固定されたカメラに切り替わる．ここで，カメラの固定について，Unity の機能である「Cinemachine」の「Virtual Camera」内にある Priority を利用する．Priority の高いカメラ
がゲーム画面に表示されるため，この Priority の値を変更することによって，ゲーム画面に表示するカメラを切り替えることができる．特定のエリアにプレイヤーが侵入したことを検出した時に，戦闘エリアとしてゲーム画面に表示したいカメラの Priority の値をメインカメラの Priority の値より高く変更することで，戦闘エリアにカメラを固定することができる．また，イベントが終了する時，戦闘エリアのカメラの Priority の値をメインカメラの Priority の値より低く変更することによって，イベント開始前と同様にゲーム画面にはプレイヤーを追従して表示するメインカメラが表示される．
・ウェーブ
ウェーブでは，1 体以上の敵キャラクターが出現する．ウェーブが開始すると，あらかじめ設定
した座標に，敵キャラクターが出現する．ウェーブで出現する敵キャラクターや出現する位置は，Unity 内で自由に変更することができる．また，ウェーブ内の敵キャラクターが全て倒されると，
Public な Bool 型の変数 defeated が True になる．
・ウェーブの管理
イベントが開始されると，1 つ目に設定されたウェーブが展開される．展開されているウェーブの defeated が True になると，展開されているウェーブを終了し，次のウェーブを展開する．次のウェーブが設定されてない場合，イベントを終了させる．
（※文責: 山崎雄太）

6.2.2

移動システム移動システムとは，ドアなどを用いて主人公がエリア間を移動できるシステムのことである．移動システムを実装することで，全く違うエリアに移動できたり，エリアを区切ることができたりな
ど，ゲームの雰囲気作りをより行うことができる．移動システムが搭載されたオブジェクト内に主人公が侵入すると「R ボタン」と表示される．R キーを入力すると画面が暗くなり，シーンが遷移され，主人公の位置も変わる．また，特定の種類のアイテムを所持していなければシーンの遷移が行われないようにするシステムもある．移動システムには，主に 2 つの要素がある．1 つ目は，シーンの遷移である．2 つ目は，シーン遷移の後の主人公の位置を決定するプレイヤー移動であGroup Report of 2023 SISP

- 60 -

Group Number 07

CreativeAIる．以下では，2 つの要素について説明する．
・シーン遷移シーン遷移とは，一般的なゲームにおけるステージの移動のような役割がある．シーン遷移にはどのシーンに遷移させたいか，そのシーンのどこに主人公の位置を移動させたいかを設定することができる機能が搭載されている．ただし，この要素ではあくまでシーン移動をするだけで，主人公の位置の移動に関する設定は，主人公移動の要素にその情報を渡すのみである．
・主人公移動
主人公移動は，一般的なゲームにおけるステージ内の任意の場所に主人公を移動させるシステムと同じ役割がある．シーン遷移の要素から受け取った主人公の移動位置についての情報を基に主人公を移動させる．また，移動中にカメラの乱れが起こらないようにする機能も搭載されている．移動先のエリアですでに入手したアイテムがないかどうかを確認し，すでに入手したアイテムは消去するという機能もある．
後期ではこれに加えてフラグ管理システムを用いて，様々な機能を追加した．主に，片側から鍵を開ける機能と，スイッチなどを押して鍵を開ける機能である．また，主人公移動についても機能を追加した．これらについて，詳しく説明する．
・片側から鍵を開ける機能
この機能は，ある方向からは鍵がかかっていて開かないが，逆の方向から鍵を開ければ両側から通行できるようになる扉を再現するために存在している．開かない方向から扉を開けようとするとそれをプレイヤーに通知する文章を画面に表示される．この機能を用いることで，今は開かない扉
をプレイヤーに認識させ，エリアがあることを予想させることができる．この機能をゲームのはじめの方に用いる予定であったが，物語の進行の影響で使わなくなってしまった．
・スイッチなどを押して鍵を開ける機能
この機能は，スイッチを押さなければ先に進めないエリアを作成するために存在している．物語
上，エリアの順番を決めたい際に使用している．
・主人公移動移動したエリアに応じた BGM を流す機能を追加した．また，エリアごとにどんな BGM を流すのかを設定しておける機能も追加した．
（※文責: 中村慶琉）

6.2.3

落下する床

落下する床とは，主人公が一定時間，上にいると落下してしまう床のことである．落下する床を実装することで，主人公の操作をタイミングよくしなければ先へ進めなくしたり，プレイヤーに即座に判断させたりなど，配置したエリアに通常とは違う特徴を持たせることができる．落下する床には落ちるまでの時間や落ちていく速度を設定することができ，エリアに応じて落下する床の難易Group Report of 2023 SISP

- 61 -

Group Number 07

CreativeAI
度を調整することができる．また，落下する床は一定時間立つと元の座標に再出現するようになっており，再出現するまでの時間を設定することもできる．加えて，主人公が落下する床の上にいると，左右に振動するようになっており，振動幅，振動速度についても設定することができる．落下する床は，タイルマップ上に配置した普通の床とは違い，主人公が下から上昇してきた際にはすり抜けるようになっている．
後期では，落下する床に対して，一度落ちた後に再出現させないような設定を出来るような機能を追加した．主に，最終ボスキャラクターのエリアに設置されている．そうすることで，一度侵入すると，元の場所に戻れないようにできる．
（※文責: 中村慶琉）

6.2.4

移動する床

移動する床とは，主人公の操作や敵キャラクター自身の移動に加えて，移動を強制的に加えることのできる床の事である．移動する床を実装することで，主人公の操作をタイミングよくしなければ先へ進めなくしたり，敵キャラクターが普通とは違う動きをしたりなど，配置したエリアに通常とは違う特徴を持たせることができる．移動する床にはポイントを設定することができ，設定したポイントの座標に合わせて床が移動するようになっている．また，移動速度も設定することができる．加えて，主人公が移動する床の上にいる状態で動いても不自然な動きにならないようにしている．移動する床は，タイルマップ上に配置した普通の床とは違い，主人公が下から上昇してきた際にはすり抜けるようになっている．
（※文責: 中村慶琉）

6.2.5

レバー

レバーは主人公の攻撃がレバーに当たると状態が変化する．そして，ドア等のギミックの子オブジェクトにすることでギミックのトリガーにすることができる．また，戻るまでの時間を 0 に設定することで一度状態の変化したレバーの状態を固定することができ，0 以外にするとその時間秒の間は状態が変化せず，その時間を超えると，元の状態に戻る．
（※文責: 田中良磨）

6.2.6

破壊可能な地形

破壊可能な地形は，通常時は地面または壁として機能し，主人公の攻撃を一定以上受けることによって消滅するギミックである．配置次第では，このギミックをマップの一部としてプレイヤーに認識させることが可能である．Unity の機能である，「RigidBody2D」と「Collider」，衝突判定を検知する C ＃スクリプトをアタッチすることによって，主人公の攻撃を検知している．主人公の攻撃を検知すると設定された耐久値が減少し，耐久値が 0 になると消滅する．
後期では，主人公の攻撃に遠距離攻撃が追加されたため，前期までの地形配置だと，制作者の意Group Report of 2023 SISP

- 62 -

Group Number 07

CreativeAI
図しない方法で，破壊可能な地形の耐久値を減少させてしまう可能性があった．そのため，主人公の遠距離攻撃によって，破壊可能な地形の耐久値を減らすことができるのか否かを設定できるように変更した．
（※文責: 山崎雄太）

6.2.7

アイテム

アイテムとは，主人公が所持することができるものである．アイテムを実装することで，アイテムを消費して主人公にとって有益な働きをさせたり，アイテムの所持が条件となって先に進めたりするなどのゲームでできることの幅を広げることができる．アイテムの実装に関しては 3 つの要素がある．1 つ目は，アイテムの情報を登録するデータベースである．2 つ目は，アイテムの所持に関する管理システムである．3 つ目は実際にゲームでプレイヤーにアイテムを獲得させるシステムである．以下では，3 つの要素について説明していく．
・データベース
アイテムのデータベースには，アイテムそのものの情報を保存しておく役割がある．データベースに関するデータとして，アイテムの情報データがある．アイテムの情報データには 1 種類のアイ
テムにつき，管理 ID，名前，アイテムの種類，アイテムの見た目のイラスト，アイテムの説明が設定できる．アイテムの情報データをデータベースに設定することで，アイテムをゲームに存在させることができる．
・管理システム
管理システムは，アイテムの所持に関する情報を検索したり，追加や削除したりすることのできるシステムのことである．具体的には主人公の所持アイテムを増やす機能，主人公が特定のアイテムを所持しているかを検索する機能，主人公が特定のアイテムを何個所持しているかを計算する機
能，アイテムを消費する機能，アイテムの情報データを取得する機能がある．アイテムの情報デー
タを取得する機能は，メニュー画面内でアイテムの情報を表示する時などに使用する．
・獲得させるシステム
アイテムを獲得させるシステムには，データベースに登録したアイテムをゲーム内で獲得できるようにする役割がある．獲得させるシステムが搭載されたオブジェクト内に主人公が侵入すると「R ボタン」と表示される．獲得させるシステムにはアイテムの種類と獲得させたい個数を設定できる．R キーを入力すると管理システムの主人公の所持アイテムを増やす機能を使用して，設定した種類のアイテムを設定した個数分だけ増やす．その後は，獲得させるシステムが搭載されたオブジェクトはそのシーンから削除される．
（※文責: 中村慶琉）

6.2.8

スイッチ

スイッチとは，主人公がスイッチを攻撃することで，OFF から ON の状態になり，なにかしらのフラグを立てるギミックである．フラグを立てる際には，フラグ管理システムのフラグを登録すGroup Report of 2023 SISP

- 63 -

Group Number 07

CreativeAIる関数を用いた．ゲーム内では，スイッチを攻撃すると，壁が消えてその場所を通れるようになる
といった形で配置した．そのようにすることで，プレイヤーをエリア内をくまなく散策させることができる．
（※文責: 中村慶琉）

6.2.9

アニメーションのついた消える壁

アニメーションのついた消える壁は，スイッチでこのアニメーションのついた壁を消去するフラグが立った際に，アニメーションを行った後に消える壁のことである．今回実装した場合では，槍のようなオブジェクトが，床に向かって沈んでいくアニメーションをつけている．通常の壁をス
イッチで消そうとすると，スイッチが ON になった時，瞬時に壁が消去されてしまい，現実味がなくなってしまう．このアニメーションのついた壁を利用することで壁が消える際にも視覚的な演出をすることができる．
（※文責: 中村慶琉）

6.2.10

鍵のかかった壁

鍵のかかった壁は，主人公が特定のアイテムを所持していなければ開けることができない障害物のギミックである．特定のアイテムを所持していない場合，壁の前で決定ボタンを入力しても，「鍵を開けるには〜アイテム名〜が必要だ」と表示され，特に何も起こらない．特定のアイテムを所持している状態で決定ボタンを入力すると「〜アイテム名〜を使って鍵を開けた！」と表示され，壁が消える．壁が消える際にはフラグ管理システムのフラグを登録する関数を用いている．
（※文責: 中村慶琉）

6.2.11

体力を増減させる場所

体力を増減させる場所として，体力を減少させる場所，体力を増加させる場所，体力を 0 にする
場所の 3 つある．体力を減少させる場所は，その場所を主人公が通っている間，体力が減少し続けるというギミックである．また，似たようなギミックとして体力を増加させる場所もあり，その場
所を通っている間，主人公の体力を増加させることができる．どちら場所にいる際も，主人公は点滅する．さらに，体力を 0 にする場所もあり，その場所を通った際，すぐに主人公の体力が 0 になる．これらのギミックはプレイヤーに緊張感を持たせたり，安心させることができ，難易度を調整する際にも用いられている．
（※文責: 中村慶琉）

6.2.12

背景の自然な移動

背景の自然な移動は，カメラの動きに合わせて，背景画像をわずかに動かすために存在する．これにより，エリアに奥行きを持たせることが出来る．

Group Report of 2023 SISP

- 64 -

Group Number 07

CreativeAI（※文責: 中村慶琉）

6.3

マップデザイン

本プロジェクトでは，海底の宮殿をゲームの舞台としている．そのため，プレイヤーに宮殿を意識させるようなマップのデザインにした．たとえば，宮殿に存在する長い廊下を表現するために，横長の形状のエリアを開発した．また，そのエリアには，他のエリアに遷移できるようなドアを配置した．さらに，この廊下のエリアの中央には，階段を配置することで，宮殿の正面玄関と正面玄関から横に伸びる廊下を表現した．一方で，マップのデザインでは海底を表現することは意識していない．なぜなら，今回の舞台である海底の宮殿内には空気が存在し，地上と同じような生活ができるという環境を想定しているからである．
今回開発しているゲームは探索型のゲームであるため，プレイヤーが自由にさまざまなエリアを探索することを想定してマップデザインを開発した．また，そのような探索の過程でプレイヤーがエリアを攻略していき物語を進行させることを想定して開発を行った．しかし，あらゆるエリアを完全に自由に探索されてしまうと，意図する物語の進行とは異なった順序で物語が進行してしまう
可能性がある．そうならないように，一部のエリアには物語が進行しないと探索できないような仕
掛けや工夫をした．たとえば，特定のアイテムを入手しないと入れない扉を用意し，その先に物語が進行するためのイベントを用意したり，特定のエリアに進むためには他のエリアで事前にギミッ
クを起動させないといけないようにしたりした．また，物語を進行させるにあたって主人公と関係性のある会話が可能な味方キャラクターをエリア上に配置した．敵キャラクターも同様に特定のエリアに配置し，一部の敵キャラクターに関しては撃破することで物語が進行するような仕様にした．
（※文責: 村岡広海）

6.3.1

チュートリアルエリア

このエリアは，プレイヤーがこのゲームの基本的な操作やゲーム性を確認することと物語を進行させることを目的として開発した．具体的には，プレイヤーはジャンプをしないとエリアの先に進めないように段差を設計することで，ジャンプという基本的な操作をせざるを得ない仕様にした．
また，プレイヤーが確実に通る進路上で連続バトルイベントというギミックを発生させることで，プレイヤーが攻撃アクションをせざるを得ない仕様にした．これらを通して，移動や攻撃，ジャンプといったゲームの攻略をするうえで必須の基本的な操作をプレイヤーに確認させる意図がある．
さらに物語を進行させる役割としてこのエリアには，主人公の味方キャラクターであるアーロンとレナードを配置した．会話をすることで物語が進行し，物語の進行とともに会話内容が変化す
る．物語の 1 周目において，エリアの先を探索するためにはこれらのキャラクターと会話をしなくてはいけない仕様にした．具体的には，これらのキャラクターとの会話が終了するまではこのエリアから別のエリアには遷移できないようにした．また，レナードは出現するエリア内で移動させる必要があったため，一度会話が終了すると画面を暗転させ別の場所に出現させる仕様にした．物語の 2 周目では，アーロンと会話することで 2 段ジャンプ，空中ジャンプという主人公のアクションが解放される仕様にした．アーロンは 3 周目以降もレナードは 2 周目以降も出現するが，物語の進行に直接関係のある会話はしない．そのため，物語の進行に直接関係のある会話をしない場合にはGroup Report of 2023 SISP

- 65 -

Group Number 07

CreativeAI
会話をしなくてもゲームを攻略できるような仕様にした．
（※文責: 村岡広海）

6.3.2

セーフエリア

このエリアは，物語の各周のはじめに主人公をスポーンさせるためのエリアとして開発した．ス
ポーンした主人公がいきなりダメージを受けないように，このエリア内には敵キャラクターを一切発生させない仕様にした．また，本プロジェクトでの題材となる物語はループものであり，ループが１周するごとに主人公もマップ上のどこかしらにスポーンさせる必要がある．そのような場合に，このエリアに主人公をスポーンさせることで敵キャラクターから理不尽な攻撃を受けずに済む
ため，ループ後のスポーン先としても運用できるように開発した．物語の 1 周目，2 周目，3 周目の最後に登場するボスキャラクターを撃破したあとに主人公はここにスポーンされて次の周の物語がスタートする仕様にした．このエリアに主人公がスポーンされた直後は物語のテキストが表示され物語が進行する．
（※文責: 村岡広海）

6.3.3

正面玄関と廊下エリア

このエリアは，プレイヤーが効率的にエリア間を遷移できるようにするための中継地点として開発した．このエリアをマップの中心に設定し，放射状に他のエリアを接続した．また，このエリア
はマップの構造上プレイヤーが最も多く通過するエリアであるため足場を起伏が少ない単純な形状にし敵キャラクターを一切配置しないことで何度も通過する際の煩わしさを軽減した．さらに，このエリアとセーフエリアを直接接続することで，各周の物語のはじめにセーフエリアで主人公がスポーンした際に瞬時にこのエリアに遷移することが可能となるため，効率的な探索が可能である．
加えて，このエリアを横長の形状にし，視覚班が作成した宮殿の階段をこのエリアの中央に配置したりドアを複数配置したりすることによって視覚的に宮殿であることを表現した．
（※文責: 村岡広海）

6.3.4

ボスキャラクターエリア

このエリアは，プレイヤーがボスキャラクターを撃破し，物語を進行させることを目的として開発した．このボスキャラクターエリアは合計で５つ開発し，それぞれのエリアにボスキャラクター

1，ボスキャラクター 2，ボスキャラクター 3，最終ボスキャラクター，隠しボスキャラクターを配置した．これらのエリアに主人公が遷移し，ボスキャラクターの近くまで移動するとそのボスキャ
ラクターを撃破するまではカメラが固定されプレイヤーは他のエリアに移動することが出来なくなる仕様にした．隠しボスキャラクターを配置したエリアを除き，他の４つのエリアはそのエリアに登場するボスキャラクターを撃破することで物語を進行させられる．具体的には，ボスキャラク
ター 1，ボスキャラクター 2，ボスキャラクター 3 は撃破後に物語のテキストが表示され表示が終了すると主人公がセーフエリアにスポーンされ，次の周の物語がスタートする．最終ボスキャラク
ターは物語の最後の周に登場するため，撃破した場合には物語のテキストが表示されゲームクリア

Group Report of 2023 SISP

- 66 -

Group Number 07

CreativeAIとなる．これらの物語の進行に関係のあるボスキャラクターは物語の各周につき 1 種類出現し，他の周では戦うことができない仕様にした．隠しボスキャラクターを配置したエリアに関してはゲームの隠し要素として追加したものであるため，このエリアを攻略しなくてもしなくても物語の進行には一切影響がない仕様にした．
（※文責: 村岡広海）

6.3.5

ジャンプエリア

このエリアは宮殿の塔，宮殿の最上階，宮殿の地下を表現するために各 1 つずつ開発した．宮殿の塔を表現するために開発したジャンプエリアは塔のように縦に長い形状にし，プレイヤーがジャンプを駆使してこのエリアの下側から上側へ昇りながら探索するようなデザインにした．このエリ
アでは空中に複数の足場を配置しているため，プレイヤーはこの足場をジャンプすることで昇りながら探索を行う．また，宮殿の最上階を表現するために開発したジャンプエリアは，足場を最低限にし，足場から落下すると長い落下時間とともに別のエリアに強制的に遷移するデザインにした．
このエリアは最上階であるため，このエリアより上に接続されたエリアは存在せず，落下したエリアからは直接このエリアに遷移することはできない設計にした．さらに，宮殿の地下を表現するために開発したジャンプエリアは縦に長い形状にし，プレイヤーがこのエリアの上側から下側へ降りることで次のエリアに遷移できるデザインにした．物語の 4 周目では，宮殿の地下を探索することになるため，空中ジャンプを駆使して徐々に降りながら探索するデザインにすることによって地下を表現した．空中ジャンプは主人公が空中に存在する場合に一度だけ空中でジャンプができるためこれを利用してダメージを受ける足場をかわしながら降りることで攻略する．
（※文責: 村岡広海）

6.3.6

2 段ジャンプエリア

このエリアはプレイヤーに物語の進行に合わせたゲームの進行をさせることを目的として開発した．このエリアには，2 段ジャンプでないと飛び越えられない高さの段差を作り，その段差の先に遷移先のエリアを接続した．2 段ジャンプは物語の 2 周目から使用できるアクションであるため物語の 2 周目以降で探索してほしいエリアの進路の始めの位置に配置することで物語の 1 周目ではそれより先のエリアを探索できない仕様にした．物語の 1 周目であってもこのエリアの探索自体は可能であるが，2 段ジャンプでないと飛び越えられない高さの段差よりも先には移動できない．
（※文責: 村岡広海）

6.3.7

書庫エリア

このエリアは，物語の 3 周目の道中において物語を進行させることと物語の 4 周目において物語の補足をすることを目的に開発を行った．このエリアには本棚と味方キャラクターであるルナを配置しており，視覚班が作成した本棚を複数配置することによって書庫であることを視覚的に表現した．加えて，天井から落ちてきた瓦礫の山をこのエリアの中心に配置することによって舞台である
この宮殿が崩壊していることも視覚的に表現した．物語の 3 周目においてはプレイヤーが本棚で本Group Report of 2023 SISP

- 67 -

Group Number 07

CreativeAIを読んだりルナと会話したりすることによって物語を進行させられる仕様にした．また，物語の 3
周目のみ本を読み終わるまではルナと会話できないギミックを実装し，ルナとの会話が終わらないと別のエリアへの遷移ができないギミックも実装した．そのため，プレイヤーはこのエリアを探索する際にはエリア内に存在する本を読んだ後にルナと会話をする必要がある．物語の 4 周目においてはプレイヤーに本棚で本を読むことを強制するギミックは実装しておらず，任意で物語を補足する内容の本を読める仕様にした．
（※文責: 村岡広海）

6.3.8

毒エリア

このエリアはプレイヤーに対して効率的な探索をさせることを目的として開発を行った．毒エリ
アでは，体力が減少する場所というギミックをエリア内に複数配置することによってプレイヤーが特定の位置に留まり続けると持続的にダメージを受けるような仕様にした．また，このエリアから先のエリアに進むためには必ず体力が減少する場所を通過しなくてはならないデザインにすることで，プレイヤーは必ずダメージを受けなくてはいけない仕様にした．そのため，プレイヤーはダ
メージを抑えるために効率的な探索をしなくてはいけない．ただし，体力が減少する場所の規模を大きくしすぎると主人公が通過するまでに体力が 0 になってしまうため，主人公の移動速度で最短距離を移動した場合に体力が 0 にならないような規模に設定した．また，このエリア内に主人公が体力を回復できるように体力を増加させる場所というギミックも配置した．このエリアを探索していると必ず主人公の体力が減少してしまうことに加えて，このエリアを探索するまでに体力が減少
してしまいこのエリアを探索できないという状況になりうる．そのため，これらの状況に対処するために主人公の体力を増加させる場所もこのエリア内に配置した．
（※文責: 村岡広海）

6.3.9

レバーエリア

このエリアはエリアの狭さに対して探索要素を増やすことを目的として開発を行った．レバーというギミックはレバーを倒すことによってそのレバーとペアになっている閉じた壁が開き，その壁の先が探索できるようになるというものである．そのためレバーによって開く壁の先に別のレバーを配置し，そのレバーとペアになっている壁の先にさらに別のレバーを配置することによって特定の順番でレバーを倒さないと探索ができないという構造にすることが可能である．そのため，この構造を利用することでエリアの探索にかかる時間を増やすことが可能である．このエリアは探索するエリア数が少ない物語の 4 周目に探索するエリアとして開発した．これにより，探索するエリア
数の少なさを探索にかかる時間で補うことででき，探索要素を増やすことが可能となる．
（※文責: 村岡広海）

6.4

主人公の制御ゲームコンセプトと物語班により提示された設定をもとに，プレイヤーの操作する主人公は，人型であり，重力の影響を受けるマップ内で，走り・ジャンプ・攻撃のアクションを行うことができGroup Report of 2023 SISP

- 68 -

Group Number 07

CreativeAIると設定した．Unity の機能「RigidBody2D」と「Collider」を使用することによって，物理演算と衝突判定を行なっている．主人公のアクション・座標の制御は，C ＃スクリプトによって構築している．また，Unity の機能「Animator」によって，主人公のアクションと状態に合わせてア
ニメーションを表現している．通常時，ゲーム画面には主人公を中心とした画面が表示されている．これは，Unity の機能である，「Cinemachine」の「Virtual Camera」利用しており，Virtual

Camera 内の「Follow」に，主人公を設定することによって，ゲームカメラが主人公を追尾するようになる．
後期では，前期で制作した主人公から，制御の一部を変更し，新たな攻撃方法を追加した．また，主人公の画像を，ダミーから視覚班が作成した完成系の画像に変更した．それに伴って当たり判定の大きさを変更した．アニメーションの追加に伴い，「Animator」に変更を加え，C ＃スクリプトにアニメーションを制御するためのフラグを追加した．さらに，使用していたダミーの効果音を完成系の効果音に変更し，新たに追加された効果音を再生するために，C ＃スクリプトでフラグの追加などの変更を行った．
以下では，主人公の各アクションと機能について解説していく．
（※文責: 山崎雄太）

6.4.1

操作・動作環境

ゲームを実行できる環境として，Web 上で Unity を実行できる WebGL 形式での出力と仮定した．また，ゲームの操作方法として，ゲームパッドでの操作を仮定し，代替する操作方法として，
キーボードでの操作を仮定した．
（※文責: 山崎雄太）

6.4.2

移動

・前期まで
主人公に適用されている Rigidbody2D 内の Velocity の値を変化させることによって，主人公の移動を表現している．地面に接触している時に，キーボードの上キーを入力すると主人公が真上に上昇するジャンプを行う．ジャンプ中にキーボードの上キーを入力し続けると，主人公の上昇が継続される．ジャンプしている時間が一定以上になるか，ジャンプしている高さが一定以上になると，キーボードの上キーを入力し続けても主人公が上昇しなくなり，落下する．また，主人公の上下に，衝突判定のない Collider が設置してあり，これらの Collider が 地形との接触を判定することによって，ジャンプの待機状態とジャンプする時間を管理している．キーボードの左右キーを入力することで，主人公が左右に移動する．主人公の左右の速度に応じて，主人公の xyz 方向の大きさを示す Transform 内の Scale の，y 方向に-1 をかけることによって，主人公の左右の向きを切り替えている.
・後期
後期では，前期に制作したプログラムをもとに，操作方法と移動方法の一部を変更した．操作方Group Report of 2023 SISP

- 69 -

Group Number 07

CreativeAI法について，ゲームパッドでは，左右移動は左スティックの左右で行い，ジャンプは B ボタンで行う．キーボードでは，左右移動は A と D キーで行い，ジャンプはスペースキーで行うように変更した．左右移動に関して，空中で左右入力が解除された時と攻撃に移行した時，一定の距離は左右移動が継続するように変更した．ジャンプに関して，ジャンプ入力の長さに応じてジャンプの高さ
が 2 段階に変化するように変更した．
ジャンプ入力の長さが一定時間に満たないと，地形ブロックの高さ 1 マス分ジャンプすることができる「小ジャンプ」が発生し，ジャンプ入力の長さが一定時間を超えると，小ジャンプより高くジャンプできる「大ジャンプ」が発生する．また，ジャンプを行い，ジャンプ入力を解除した後，もう一度ジャンプ入力を行うと，もう一度ジャンプすることができる「2 段ジャンプ」を追加した．

2 段ジャンプでは，ジャンプ入力の長さに関わらず，大ジャンプと同じ仕様のジャンプが発生する．
（※文責: 山崎雄太）

6.4.3

近距離攻撃

近距離攻撃では，攻撃入力を行うと，主人公の近距離に攻撃を発生させることができる．攻撃によって，敵キャラクターやマップギミックに影響を与えることができる．
・前期まで
キーボードの特定のキーを押すことによって，上方向と前方向への攻撃を行う．上方向への攻撃はキーボードの W キーを押すことによって行う．前方向への攻撃は，キーボードの A と Dのキーを押すと，左右の移動と同じ仕組みで主人公の左右の向きを切り替えながら攻撃を行うた
め，前方向への攻撃は，左前方と右前方の 2 種類ある．攻撃を行うと，攻撃方向に RigidBody2Dと Collider を持つオブジェクトが出現し，時間経過によって消滅する．上方向と前方向の攻撃
で攻撃の当たり判定の形状は違うが，オブジェクトの仕組みは同じである．このオブジェクトがRigidBody2D と Collider を持つことによって，敵キャラクターやマップギミックに対して，何かしらの影響を与えることが可能となっている．また，プレイヤーは攻撃を行った後一定時間攻撃を行うことができなくなる．攻撃中と攻撃ができない時間中は，左右と上方向への移動ができなくな
り，空中にいる場 合はその場で落下しながら攻撃を行う．
・後期
後期では，前期に制作したプログラムをもとに，操作方法を変更し，新たに下方向への攻撃を追加した．操作方法について，ゲームパッドでは，上方向への攻撃は左スティックを上入力しながらY ボタン，前方向への攻撃は左スティックの入力を行わずに Y ボタン，下方向への攻撃は主人公が空中にいる時に左スティックをした入力しながら Y ボタンで行う．キーボードでは，上方向への攻撃は W キーを入力しながら J キー，前方向への攻撃は J キー，下方向への攻撃は主人公が空中にいる時に S キーを入力しながら J キーで行う．
（※文責: 山崎雄太）

Group Report of 2023 SISP

- 70 -

Group Number 07

CreativeAI

6.4.4

遠距離攻撃

遠距離攻撃では，攻撃入力を行うと，近距離攻撃よりも遠くに攻撃を発生させることができる．
操作方法について，ゲームパッドでは X ボタン，キーボードでは L キーで行う．
攻撃入力を行うと，主人公がチャージするアニメーションを開始し，一定時間以内に攻撃ボタンを離すと，主人公の前方に一定速度で移動する円形の攻撃オブジェクトを発生させる，「遠距離弱攻撃」を行う．攻撃ボタンを押している時間が，一定時間を超えた後に攻撃ボタンを離すと，先の攻撃オブジェクトより移動速度と当たり判定が大きく，敵や地形を貫通する攻撃オブジェクトを発生させる，「遠距離強攻撃」を行うように変化する．チャージ中や攻撃中は，左右入力によって主人公の方向（攻撃を行う方向）を変えることができるが，移動を行うことができない．
（※文責: 山崎雄太）

6.4.5

攻撃の威力の変化

攻撃の種類によって敵やギミックに与えるダメージを変えることができるようなスクリプトを作成した．このスクリプトを，主人公の攻撃オブジェクトにアタッチすることで，攻撃力の大きさを変更することができる．この攻撃力の大きさが，敵についている当たり判定を管理するスクリプトに渡され，敵側で攻撃力の大きさを元に体力を減少させる処理を行う．
行うことが難しい攻撃は攻撃力を高めに設定しており，近距離攻撃の中では下方向への攻撃のみ
攻撃力が高く，遠距離弱攻撃は攻撃力が低く，遠距離強攻撃は攻撃の中で最も攻撃力が高く設定されている．
（※文責: 山崎雄太）

6.4.6

体力・残機の管理

・前期まで
前期までの段階では，体力制を導入することが決定していたが，ゲームの完成形では具体的にどのようなシステムにするのかは決まっていなかった．そのため，前期までの段階では，残機制と体力制を組み合わせたシステムにすることにした．プレイヤーの残機ごとに体力が設定されており，
体力が 0 になるか画面外への落下によってプレイヤーが死亡すると，残機が 1 つ減り，直前に通過したコンティニューポイントからやり直しとなる．残機が 0 の状態で死亡すると，ゲームオーバーとなる．
・後期
敵キャラクターやダメージを受けるエリアの攻撃力を設定できるように変更したため．体力の減少する仕組みを変更した．
実際の開発をもとに，体力・残機のシステムやゲームの進め方について検討した．前期までの残機制と体力制を組み合わせたシステムを採用し，初期状態では，残機 3・体力 100 と設定し，実質的な体力は 400 となる．残機が 0 の状態で死亡し，ゲームオーバーとなった場合には，物語での 1
ループのはじめからやり直しとなり，やり直すまでの行動は全てリセットされる．

Group Report of 2023 SISP

- 71 -

Group Number 07

CreativeAI（※文責: 山崎雄太）

6.5

システム

システムの役割は，プレイヤーに快適にゲームをプレイしてもらうことである．例えば，メニュー画面では，プレイヤーが知りたい情報を提供したりすることなどがあげられる．また，他の班の成果物を適切にゲーム内に取り込んだり表示するためにも非常に重要な役割を果たしている．
以下では，システムについて説明する．
（※文責: 中村慶琉）

6.5.1

BGM システム

BGM システムは，エリア間の移動や会話イベントの際に流れる BGM を切り替えるシステムである．Unity の機能である「AudioSource」を，C ＃スクリプトによって制御している．Public な

Int 型の bgmNumber という変数を持っており，この bgmNumber がエリア移動や会話イベントの発生により変更されると，BGM の切り替えが行われる．

BGM のフェードアウト・フェードインによる切り替えを行うために，AudioSource を 2 つ使用
しており，メインとなっている AudioSource が完全に停止すると，もう一方の AudioSource をメインに変更することによって，メインとなる AudioSource を制御すればよいようにしてあり，ス
クリプトが複雑にならないようにしている．
当初の想定では，BGM を切り替える際，流れている BGM をフェードアウトさせ，新たなBGM を冒頭から再生していた．しかし，音響班が制作した BGM はベースとなるメロディーは同じまま，パートが変更されているような BGM であった．そのため，BGM を切り替える際に，流れている BGM と新たな BGM の時間を一致させ，流れている BGM のフェードアウトと新
たな BGM のフェードインを同時に行う必要があると考えた．実際に実装したものは，メインのAudioSource をフェードアウトを始めると同時に，メインの AudioSource の時間をメインではな
い AudioSource の時間に代入し，メインではない AudioSource のフェードインを行う．
（※文責: 山崎雄太）

6.5.2

会話システム会話システムとは，ゲーム画面上に文字を表示することで，あたかもゲーム内の人物などと会話ができるようにするシステムのことである．会話システムを実装することで，プレイヤーはゲームの攻略に必要な情報を手に入れられたり，ゲームの世界観を体験できたりなど，ストーリーをゲー
ム内で表すことができるようになる．会話システムには前期の時点で主に 2 つの要素がある．1 つ
目はデザインを設定するための会話ウィンドウである．2 つ目はオブジェクト用のシステムである．以下では，2 つの要素について説明する．
・会話ウィンドウ
会話ウィンドウを表示する状態にあることがプレイヤーにも分かるように，マップが少し暗くなるようになっている．また，文章が読みやすくなるように会話ウィンドウの画像を設定できるようGroup Report of 2023 SISP

- 72 -

Group Number 07

CreativeAIになっている．加えて，仮の文章が表示されるようになっており，オブジェクト用のシステムから受け取った文章を，その場所に表示する．後に画像を変更したり，場所を変更したりすることも可能になっている．
・オブジェクト用のシステム
オブジェクト用のシステムが搭載されたオブジェクト内にプレイヤーが侵入すると「R ボタン」と表示される．R キーを入力すると，会話ウィンドウがゲーム画面の最前面に表示されるように会話ウィンドウの状態を変更する．また，会話ウィンドウが表示されている間は，主人公や敵キャラ
クターを含めた全てのオブジェクトの動きが止まるようになっている．オブジェクト用のシステムには文章をリストで設定することができる．会話ウィンドウが表示されている間，R キーを押すと次の文章を表示し，全ての文章が表示され終わった場合，会話ウィンドウの表示が終了する．
前期の時点では，会話システムは会話ごとに入力する想定で開発していたが，後期では，CSV
ファイルで一度に読み込む方針に変わった．加えて，会話中に何らかのイベントを発生させることや，それに付属し会話後にフェードをさせる場合があることも決まった．話者の名前を表示または非表示にする機能や，会話イベント発生の範囲から外れても，会話イベントが続くような機能などについても実装することとなった．そのため，CSV ファイル読み込みシステム，会話中のイベン
ト発生システム，会話後のフェードシステム，話者の名前を表示または非表示にする機能，会話イ
ベント発生の範囲から外れても，会話イベントが続くような機能について説明する．
・CSV ファイル読み込みシステム

CSV ファイル読み込みシステムは，会話に関する全ての情報が入った 1 つの CSV ファイル全てを読み込む．その後，今回使いたい文章のイベントナンバーと，CSV ファイル内に記述されたイ
ベントナンバーが一致したものだけを抽出する．1 つの CSV ファイルを会話イベントごとに何度も呼び出すのは，ロード時間を増加させてしまう要因になる．しかし，今回用いる CSV ファイルのサイズが比較的軽量であることと，複数の CSV ファイルが存在してしまう複雑さを考え，このような形での実装となった．
・会話中のイベント発生システム
会話中のイベント発生システムは，CSV ファイルの特定の列の記述にそって，何らかのイベン
トを発生させるシステムである．今回主にゲーム内で使用したのは，フラグをたてるイベント，

BGM を変えるイベント，場所を変えるイベント，画面を揺らすイベントである．フラグを立てる
イベントは，会話中にオブジェクトの消去や出現を行いたい際に利用した．BGM を変えるイベン
トは，会話相手に応じて BGM を変えるために利用した．場所を変えるイベントは，物語のループの節目などに利用した．画面を揺らすイベントは，最終ボスキャラクターとの戦い後の演出に利用した．ストーリー進行に合わせてイベントを適切に実行させることで，より効果的なゲーム体験を演出している．実際にゲームに利用しなかったイベントとして，アイテムを入手させるイベント，
選択肢を設けるイベント，会話を途中で終わらせるイベント，主人公の残機と体力を回復するイベ
ントがあった．アイテムを入手させるイベントは，会話中に物語上で重要なアイテムを主人公に入手させるために利用したり，選択肢を設けるイベントと会話を途中で終わらせるイベントは，主人
公の選択によって物語を変更させたりするために利用したりすることを想定していたが，物語の進行や開発の流れで利用しないこととなった．また，主人公の残機と体力を回復するイベントについGroup Report of 2023 SISP

- 73 -

Group Number 07

CreativeAIても，物語の進行や開発の流れで利用しないこととなった．
・会話後のフェードシステム
会話後のフェードシステムは，会話が終了した後，画面がいったん暗くなり，その後明るくなってからプレイヤーが通常の操作ができるようになってほしい場合に使用する．この機能があることで，会話中にフラグが立って何らかのオブジェクトが消去，または出現した際に，自然な形で行うことができる．このシステムを利用するかしないかについても設定できる．例えば，本を読む会話
イベントの際には会話後のフェードは必要ないため，このシステムの利用をしないように設定してある．
・話者の名前を表示または非表示にする機能
話者の名前を表示または非表示にする機能は，話者に応じて会話ウィンドウの名前の部分に文字を表示したり，そもそも表示しないようにしたりするために存在する．こうすることで，誰が話しているかがプレイヤーに分かりやすくなる．CSV ファイルの名前に関わる列から名前の情報を取っている．名前の情報がない場合，話者の名前と会話ウィンドウの名前の部分を非表示にする．
プレイヤーに主人公の操作をシステム的な意味で教える場合に，話者の名前を非表示にする機能を利用している．
・会話イベント発生の範囲から外れても，会話イベントが続くような機能前期までの実装では，会話イベントの発生の範囲から外れると，会話イベントが進行不能になっていた．何らかの理由で，会話中に主人公の位置がずれると会話イベントが進行できなくなり，ゲームも進行不可能になる．こういった状況を改善するために，後期ではこの機能を追加した．
（※文責: 中村慶琉）

6.5.3

メニュー

メニューとは，ゲームをポーズにした状態で，ゲームプレイに関わる情報を確認したり，アイテ
ムを消費することを選択したりできる機能のことである．メニューを実装することによって，現在の状況をプレイヤーが判断することができたり，ゲームをいったん休憩することができたりな
ど，ゲームの遊びやすさを向上させることができる．現在，メニューは，E キーを入力すると，メ
ニュー画面がゲーム画面の最前面に表示されるようになっている．また，メニュー画面中では，主人公や敵キャラクターを含めた全てのオブジェクトの動きが止まるようになっている．加えて，前期までの期間内では 2 つの機能が実装されている．1 つ目は，アイテムについての確認ができるア
イテム画面である．2 つ目は，メニューの切り替えをするための切り替えバーである．以下では，

2 つの機能について説明していく．
・アイテム画面
アイテム画面は，プレイヤーが今持っているアイテムの個数を確認したり，何に使えるかなどの情報を確認したりするために存在する．アイテムを所持していない状態で，アイテム画面を開くと，アイテムを所持していないことについて知らせるメッセージが表示される．アイテムを 1 つ以
上所持している状態で，アイテム画面を開くと，入手した順番に 3 種類まで表示される．アイテム

Group Report of 2023 SISP

- 74 -

Group Number 07

CreativeAI
1 つにつき，アイテムの名前，アイテムの所持個数，アイテムの説明文，アイテムの見た目のイラストが表示される．また，矢印キーを入力することによって，各アイテムを選択する機能もある．
中間発表までの実装では，アイテムを選択しても何も起こらない．加えて，4 種類目以降のアイテ
ムを表示できない状態になっている．後期では，アイテムの選択によって効果を発揮させたり，操作によって見られる範囲を変更できるような機能を追加する予定である．
・切り替えバー
切り替えバーには，メニュー画面で行える機能を選択できるようにする役割がある．メニューを開くと，画面上部に切り替えバーが表示される．中間発表時点では「ホーム」，「アイテム」
，
「マッ
プ」
，
「設定」
，
「戻る」という項目が存在し，矢印キーを入力することでこれらを選択することができる．使いたい項目を選択し，決定キーを入力することで各項目の機能を使うことができる．前期
では，「アイテム」，「戻る」のみが機能している．
前期までの開発では，主人公の基本的な情報を確認できるホーム画面や，マップの情報について確認できるマップ画面，ゲームの設定ができる設定画面については実装されていないが，取り組む
予定であった．また，前期までの開発で完成した機能で十分であるか，もしくは不必要なものがな
いかについても検討する予定であった．
後期から新たに追加された要素はマップ表示画面と設定画面，ホーム画面である．また，アイテ
ム画面についても改良を加えている．これら 4 つの要素について説明する．
・マップ表示画面
マップ表示画面は，ゲームプレイ中に主人公が訪れたことのあるエリアを確認したり，エリア間の位置関係を把握するために存在する．このシステムでは，そのエリアから別のエリアに遷移した
際に「訪れたことのあるエリア」として認識する．これは，アイテムを獲得させるシステムから一部を流用して実装した．エリアそのものだけではなく，エリアに行きつくルートについても表示されるようになっている．そのため，複数のルートのあるエリアでは，辿ったことのあるルートのみ表示される．加えて，現在主人公が存在しているエリアが訪れたことのあるエリアである場合，赤く点滅される機能がある．
・設定画面
設定画面は，プレイヤーがバグなどで行き詰った際に対処できるために存在する．この画面には「コンテニューポイントに戻る」と表示されている．決定ボタンを入力すると主人公が強制的に，
現在コンテニューポイントにされている場所に移動する．この機能があることで，プレイヤーがバグなどでゲームの進行が不可能になった場合でも，対処できる可能性を上げることができる．加えて，ゲームデバッグ時に使用した入力フォームもある．こちらの入力フォームに決められた文字を入力すると，アイテムを入手したり，エリアを移動したりすることが出来る．
・ホーム画面
ホーム画面は，プレイヤーが現在の状態を確認するために存在する．具体的には主人公の体力と残機を確認することができる．体力はゲージと数字で確認することができ，残機はハートのアイコ
ンと数字で確認できる．メニュー画面を開く際には，はじめにこのホーム画面から表示される．

Group Report of 2023 SISP

- 75 -

Group Number 07

CreativeAI・アイテム画面
アイテム画面は中間報告の際には，所持しているアイテムの 3 つのみが確認可能であったが，個数の制限を撤廃した．一度に所持しているアイテムのうち 8 つを表示することが可能になり，他のアイテムはカーソルを移動させて表示させることもできる．アイテムの説明文に関しては，現在
カーソルを当てているアイテムのものだけを表示するように変更した．また，今回のゲーム中には登場しなかったが，アイテムを使用するコマンドを入力できる機能も実装した．
・切り替えバー
後期の開発によって，切り替えバーの「アイテム」
，
「マップ」
，
「設定」についても機能するようになった．また，「アイテム」，「マップ」，「設定」のそれぞれの画面において，切り替えバーとそれぞれの画面を行ったり来たり出来るようにした．
これらの要素に加えて，メニュー出現時に視覚的な演出を加える機能についても開発した．
（※文責: 中村慶琉）

6.5.4

体力と残機の表示 UI

体力と残機の表示 UI は，画面上に主人公の状態を表示させるために存在している．体力については現在の体力と最大の体力からゲージの大きさを調整し，体力に変化が生じた際に逐次，ゲージの大きさを変更する．残機についても増減があった場合に，逐次アイコンの量を変更する．
（※文責: 中村慶琉）

6.5.5

ボスキャラクターの体力表示 UI

ボスキャラクターの体力表示 UI はボスキャラクターと戦う際に，その敵の残り体力を表示するために存在する．プレイヤーはこの UI を見ながら，ボスキャラクター戦の目安を知ることが出来る．システムとしては，ボスキャラクターがあらわれたことを通知する要素，ボスキャラクターの体力とゲージの表示を同期させる要素，UI を消去する要素がある．この 3 つの要素について，それぞれ説明する．
・ボスキャラクターがあらわれたことを通知する要素
ボスキャラクターのスクリプト内に，ボスキャラクターがあらわれたことを体力表示を管理しているスクリプトに通知する．通知を受けたスクリプトは，ボスキャラクターの体力を管理するシス
テムと連携してボスキャラクターの体力表示 UI を出現させる．
・ボスキャラクターの体力とゲージの表示を同期させる要素
ボスキャラクターが攻撃されるなどして，体力の増減がおきた際に，主人公の体力のゲージと同様な形で UI を変更する．
・UI を消去する要素

Group Report of 2023 SISP

- 76 -

Group Number 07

CreativeAI
ボスキャラクターの体力が 0 になると，ボスキャラクターの体力を管理するシステムが機能を停止し，ボスキャラクターの体力表示 UI も消去される．また，こうして UI が消去される際に，フラグ管理システムを利用して，何らかのフラグを立てることが出来る機能もある．
（※文責: 中村慶琉）

6.5.6

フラグ管理システム

フラグ管理システムは，プレイヤーが行った行動やすでに起きたイベントなどをエリアを問わずに管理するために存在する．通常エリア間では変数を維持できず，そのエリア内で起こった出来事を再びそのエリアに戻ってきた際に保持することができない．そのため，static 変数を用いることでこの問題を解決した．システムには static で string 型のフラグの名前を入れておく配列と，

static で int 型のフラグの数値を入れておく配列がある．これら二つの関係性は配列の引数で繋がっている．システムには主に二つの関数があり，フラグを登録する関数とフラグを検索する関数である．フラグを登録する関数では，フラグ名と数値を渡すことで，それらをまだ使われていない
配列の引数の場所に登録する．フラグを検索する関数では，フラグ名を渡すとそのフラグが存在していればその数値を，存在していなければ負の数字を返す．
（※文責: 中村慶琉）

6.5.7

オブジェクトの消去と出現システム

オブジェクトの消去と出現システムは，ゲーム進行に合わせてオブジェクトがあらわれたり消えたりするために存在している．オブジェクトの消去システムとオブジェクトの出現システムについて詳しく説明する．
・オブジェクトの消去システム
オブジェクトとの消去システムは，主にボスキャラクターとの戦闘に勝利した後に新たなエリアを解放させたいときに用いられている．また，鍵のかかった壁やスイッチの操作で消える壁などにもこのシステムが用いられている．
・オブジェクトの出現システム
オブジェクトの出現システムは，主に物語の進行によって，話すことのできる人物をエリアに追加することや，最終ボスキャラクターとの戦い後のイベントの演出に用いられている．加えて，物語の進行上，特定の人物と会話してから次のエリアに進んでほしい場合に，障害物を出現させるためにも使用している．オブジェクトの消去システムと競合してしまう場合もあるため，オブジェク
トの消去を優先するようにする機能も備わっている．
（※文責: 中村慶琉）

Group Report of 2023 SISP

- 77 -

Group Number 07

CreativeAI

6.6

敵キャラクター概要

敵キャラクターは現在四種類作成されている．横方向に一定の速度で移動し壁にぶつかると反転する敵 1，移動はせず玉を一定方向に射出する敵 2, 一定間隔でジャンプを繰り返す敵 3，空中から主人公が近づくと一定時間追跡してくる敵 4．これらは Unity の Prehab の機能を使うことで複数配置することができる．これらはゲームを進行するうえでプレイヤーの動きや進行を妨害するほか 攻撃を使用し主人公の操作を体験させる要素である．
（※文責: 田中良磨）
前期までに制作していた敵キャラクターは，実際にゲームとして完成させるために必要な画像・ア
ニメーションを変更し，それらを適用するための C ＃スクリプトを変更した．主人公の攻撃の種類によって，攻撃力を設定できるように変更したため，受けた攻撃力の大きさだけ，敵キャラク
ターの体力を減少させるように変更した．特定の敵キャラクターは，主人公の攻撃の種類によって，受けた攻撃力の大きさを無視して体力を減少させるように変更した．また，攻撃の種類によって攻撃力を設定できるように変更した．攻撃力の実装により，主人公のアクションに偏りが出にく
く，キャラクターの個性が出やすいような設計を行うことが可能になった．
後期では，敵キャラクターの中でも，体力が多く，攻撃や移動の種類が多い，「ボスキャラクター」を制作した．ボスキャラクターとの戦闘は，物語の重要な場面で発生し，ボスキャラクターを撃破するまで，主人公とカメラの移動が制限される．
（※文責: 山崎雄太）

6.6.1

敵1

敵 1 は，横方向に一定の速度で移動し壁にぶつかると反転する敵である．インスペクターで移
動速度や体力，重力を設定することができる．また，画面外でも行動するかを設定することができる．また，この敵は攻撃をされると一定時間点滅するようになっておりその時間の間は攻撃されても体力が減らない無敵状態で停止するようになっている．主人公に攻撃されると体力が指定の量減
り，体力が 0 になると消滅し撃破される使用になっている．基本的な動きをするこの敵は主人公を操作するうえでの基本操作に慣れさせる目的を持っている．
（※文責: 田中良磨）

6.6.2

敵2

敵 2 は，移動せず玉を一定方向に射出する敵である．玉となるオブジェクトを非アクティブ状態
で敵の子オブジェクトにする．この敵はアニメーションから攻撃判定を受けとっている．また，玉は一定距離移動すると消滅するようになっている．これらの攻撃間隔，スピード，最大移動距離はインスペクターでそれぞれ設定ができる．この敵を配置することでよける等の基本操作をさせるほか，落ちる床等とのギミックと一緒に配置することでゲームの応用的な操作をさせるようになっている．
（※文責: 田中良磨）

Group Report of 2023 SISP

- 78 -

Group Number 07

CreativeAI

6.6.3

敵3

敵 3 は，一定間隔でジャンプを繰り返す敵である．またこの敵は敵 1 と同様な部分がいくつかある．インスペクターで移動速度や体力，重力，ジャンプ速度，ジャンプする時間，ジャンプする間隔を設定することができる．また，画面外でも行動するかを設定することができる．また，この敵は攻撃をされると一定時間点滅するようになっておりその時間の間は攻撃を受けても体力が減らな
い無敵状態で停止するようになっている．主人公に攻撃されると体力が指定の量減り，体力が 0 になると消える使用になっている．ジャンプ速度は飛んでいるときの速さを表している．ジャンプする時間は飛んでから頂上になるまでの時間を表している．ジャンプする間隔は歩く時間を表している．これら三つの数値を合わせることで飛んでいる敵を演出している．この敵を設けることで予測できない敵の動きを演出しプレイヤーが応用的な操作に慣れられるように作成した．
（※文責: 田中良磨）

6.6.4

敵4

敵 4 は，空中から主人公が近づくと一定時間追跡してくる敵である．この敵は一部敵 1 と同様である．インスペクターで移動速度や体力，重力，左右の主人公に反応する距離，左右の時間，地面との距離，襲う上下速度，襲う左右速度を設定することができる．また，画面外でも行動するかを設定することができ，この敵は行動するように設定することで奇襲をかけるような演出ができる．
また，この敵は攻撃をされると一定時間点滅するようになっておりその時間の間は攻撃を受けても体力が減らない無敵状態で停止するようになっている．主人公に攻撃されると体力が指定の量減
り，体力が 0 になると消える使用になっている．左右の主人公に反応する距離は敵 4 の x 座標から正の方向と負の方向の距離の間に主人公が入ったときに動き出すために設定している距離である．
地面との距離でインスペクターで設定した値と同じ y 座標まで移動してくるようになっている．左右の時間は指定の y 座標まで降りたときに主人公を追いかける時間である．襲う上下速度は指定の

y 座標まで移動する速度であり，襲う左右速度は主人公を追いかける際の速度である．この敵を配置することで主人公に予期せぬ奇襲をかけることができ，ゲームをやっている上での緊張感を感じられるように作成した．
（※文責: 田中良磨）

6.6.5

敵5

敵 5 は，空中に固定されており，主人公が敵 5 がいる方向を向いていない場合，主人公に近づき，主人公が敵 5 がいる方向を向いている場合，その場で静止する敵キャラクターである．主人公の Transform の Position と Scale の x，敵 5 の Transform の Position を取得し，主人公との距離と，敵 5 の方向を向いているか否かを計算している．主人公が敵 5 の方向を向いていない場合，主人公の方向に直線的に進み，主人公と敵 5 の距離が一定になると停止する．
敵 5 は，他の敵キャラクターと違い，Collider の Is Tigger を True にしており，主人公や地形との物理演算を行っていない．これは，敵 5 は空中を移動する敵キャラクターであり，主人公が敵5 の上に乗ったり，主人公が敵 5 に押されることで地形を貫通したりと，本来意図しない行動が起Group Report of 2023 SISP

- 79 -

Group Number 07

CreativeAI
こらないようにするためである．
（※文責: 山崎雄太）

6.6.6

ボスキャラクター 1

ボスキャラクター 1 は，チンアナゴをモチーフとしたキャラクターである．縦に長い四角形の当たり判定を持っており，地面に潜ることによって，主人公の攻撃が当たらず，プレイヤーから視認できないタイミングがある．
「待機」
，
「移動」
，
「攻撃」の 3 つの状態があり，「攻撃」は 2 種類ある．
基礎的な関数として，主人公のいる方向を向く関数，地面に潜る関数，地面から出現する関数，x座標を変更する関数，x 座標を初期位置に戻す関数，y 座標を初期位置に戻す関数，主人公を x 方
向に追尾する関数．主人公を y 方向に追尾する関数を作成し，これらの基礎的な関数の組み合わせによって，各状態を制御している．
「待機」では，地面より上に出現しており，主人公が攻撃を当てることが容易な状態である．
「移動」では，地面に潜った後，あらかじめ指定された 5 箇所のポイントにランダムで x 座標を変更し，真上の地面に土埃のようなエフェクトを発生させ，一定時間後に地面より上に出現する．
「攻撃」の 1 つ目は，地面に潜った後，地面の下で主人公を追尾し，主人公の真下の地面から出現し，体当たりを行う攻撃である．地面に潜った後，真上の地面に土埃のようなエフェクトを発生させながら主人公を追尾し，一定時間後にその場で停止し，さらに一定時間後に「移動」より大きい速度で地面より上に出現する．
「攻撃」の 2 つ目は，戦闘エリアの端でビームを溜め，一定時間後に高威力のビームを放つ攻撃である．はじめに，地面に潜った後，主人公のいる方向を向き，その主人公のいる方向とは逆方向の戦闘エリアの端に x 座標を変更する．次に，発射するビームと横の大きさが同じ線（予告線）を顔の前に出現させ，y 方向に主人公を追尾する．そして，一定時間後に追尾を停止し予告線を消滅させる．さらに，一定時間後に停止した位置のままビームの攻撃オブジェクトを出現させる．ビー
ムは横方向に長い長方形の当たり判定を持っており，通常の敵キャラクターの攻撃よりも攻撃力が大きく，一定時間後に消滅する．予告線が出現している間に，主人公の遠距離強攻撃をボスキャラ
クター 1 の本体に当てると，通常より大きく体力を減少させることができる．
「待機」
，
「移動」
，
「攻撃」の 3 つの状態は，特定のアルゴリズムによって遷移する．基本の「待機」状態から，一定時間が経過すると，攻撃を受けた回数に応じて「移動」と「攻撃」のどちらを行うか選択し，遷移する．「攻撃」では，既に行った攻撃の回数を数えており，行った攻撃の回数が少ない方の攻撃を選択する．また，残りの体力の量に応じて，一部の攻撃や移動の回数・速度が変化する．
（※文責: 山崎雄太）

6.6.7

ボスキャラクター 2

ボスキャラクター 2 は，タコをモチーフとしたボスキャラクターである．ボスキャラクター 2は，物語上ループ 2 の最後に登場する中ボスの一種である．ボスキャラクター 2 の攻撃方法には3 つのフェーズがある．1 つ目は，足を動かすフェーズで，2 つ目は，攻撃オブジェクトを落とす
フェーズ，3 つ目は，浮遊しながら攻撃オブジェクトで攻撃するフェーズである．これら 3 つのフェーズについて，それぞれ説明する．

Group Report of 2023 SISP

- 80 -

Group Number 07

CreativeAI・足を動かすフェーズ
このフェーズでは，直接ボスキャラクター 2 の本体には攻撃できず，3 つ生えた足のみを攻撃することができる．足は一定の範囲で上下に移動し，一部地面に埋まることもある．主人公が足に触ってしまうと主人公の体力が減少する．何度か足を攻撃すると足が主人公に向かって倒れてくる．これに当たった際も主人公の体力が減少する．足が倒れきると，消える．3 つすべての足を消すと次のフェーズである岩を落とすフェーズに移行する．
・攻撃オブジェクトを落とすフェーズ
このフェーズでは，直接ボスキャラクター 2 の本体には攻撃できない．このフェーズに移行する
際に，もともとあった足場が消え，大きな穴ができる．そこに主人公が落ちた場合，残機が 1 つ減る．一定の間隔で主人公の頭上に攻撃オブジェクトが出現し，下に落ちてくる．この攻撃オブジェ
クトに主人公がぶつかると主人公の体力が減少する．攻撃オブジェクトを落とすフェーズを 30 秒
間続けると，次のフェーズである浮遊しながら攻撃オブジェクトで攻撃するフェーズに移行する．
・浮遊しながら攻撃オブジェクトで攻撃するフェーズ
このフェーズでは，他のフェーズと異なり，直接ボスキャラクター 2 の本体に攻撃することが可能である．このフェーズに移行する際には，攻撃オブジェクトを落とすフェーズに移行する際にできた大きな穴が埋まる．主人公が穴の範囲内にいる際には，このフェーズに移行しない機能もある．一定の間隔でボスキャラクター 2 の足元から主人公に向かって，攻撃オブジェクトが飛んでくる．この攻撃オブジェクトに主人公がぶつかると主人公の体力が減少する．加えて一定の間隔でボスキャラクター 2 が墨を吐き，プレイヤーの視界が悪くなる．ボスキャラクター 2 の体力が半分以下になると，攻撃オブジェクトを飛ばす間隔が早くなる．
（※文責: 中村慶琉）

6.6.8

ボスキャラクター 3

ボスキャラクター 3 は，海洋生物のシャコをモチーフにしており，4 つの攻撃方法を持っており，
プレイヤーは一定の回数攻撃を当てることで，シャコをガード状態にすることができ，そこでさらに攻撃を当てると一定のダメージを与えることができ，倒すことができる使用である．攻撃はそれ
ぞれ発生までの時間と終了後の時間を持っている．また，体力が 3 分の 2 以下，3 分の 1 以下になると見た目と同時に攻撃の威力や時間が変わる．攻撃の選択はランダムで行なわれ，距離に応じて発生のしやすさが変わる．
・攻撃 1
攻撃 1 は横移動を繰り返し行なう攻撃方法である．この攻撃は主人公との距離が一定以上離れているときに出やすくなっている．ボスキャラクターが向いている方向にインスペクターで設定した速度で移動を行ない，壁か主人公に接触すると反転を行ない，反対方向に移動を行なう．体力が 3
分の 2 以上の時は 1 往復，体力が 3 分の 2 以下の時は 2 往復，また，体力が 3 分の 1 以下の時は 3往復行ない，指定の位置に戻るか敵に接触することで攻撃が終了する．

Group Report of 2023 SISP

- 81 -

Group Number 07

CreativeAI
・攻撃 2
攻撃 2 はボスキャラクターの正面に長方形の攻撃オブジェクトを発生させる攻撃方法である．この攻撃は主人公との距離が近いほど発生しやすくなっている．
・攻撃 3
攻撃 3 はボスキャラクターの正面からボスキャラクターの向いている方向に一定の速度で移動する攻撃オブジェクトを上下に速度を少しずつ与え，5 方向に 5 つ攻撃オブジェクトを出すようにした．この攻撃は主人公との距離が遠いと発生しやすくなっている．
・攻撃 4
攻撃 4 はボスキャラクターを上方向に移動し，一定の高さに移動すると，主人公と同じ x 座標になるように移動を行ない，一定時間たつと地面に接触するまで下方向に移動を行なう．また，ボス
キャラクターが上方向に移動する際，主人公が上に乗っている状態のまま上昇すると主人公が一緒に上昇してしまい，目指している状態にならないため，上昇時はボスキャラクターについている

Collider を全てオフにしている．また，下方向に移動し，主人公に接触した際，主人公が地面とボスキャラクターに挟まってしまいプレイヤーが操作不可の状態になってしまうため，接触するとボスキャラクターを上方向に移動し，横移動の時間を省略して下方向に移動するようにした．これを主人公と接触しなくなるまで繰り返す．この攻撃方法は主人公との距離が遠いほど発生しやすくなっている．
・ガード
ガードは主人公の攻撃を 7 回受けると発生し，ガード中の制限時間内に主人公のそれぞれの攻撃
に対して数値を受け取り合計の数が指定の数値を超えるとボスキャラクターは体力が大幅に減る．
これを約 4 回繰り返すことでボスキャラクターは体力が 0 になる．
（※文責: 田中良磨）

6.6.9

強化学習について

最終ボスキャラクターと隠しボスキャラクターを AI が制御を行なうように，強化学習を行なった．強化学習は，最終ボスキャラクターのエージェントと主人公のエージェント間での強化
学習，隠しボスキャラクターと主人公のエージェント間で行なった．強化学習には Unity の公式プラグインである「Unity ML-Agents」(Unity Machine Learning Agents Toolkit) を使用した．また，パッケージセットのバージョンは「Unity ML-Agents Release 19」を使用した．また，エージェントに強化学習を行なうために，C ＃で作成したそれぞれのエージェントのスクリプトにゲームオブジェクトの生成時に呼び出され初期化を行なう「Initialize」，観察内容を設定する「CollectObservations」，エージェントの行動の制限を行なう「OnActionReceived」，エピソードの開始時に呼び出される「OnEpisodeBegin」を組み込み，報酬を与えたい場所に「AddReward」
を追加する．また，インスペクター上で「Behavior Parameters」と「Decision Requester」を追加する．そして Python 上で強化学習を行なわせる宣言を行ない，強化学習を行なった．また，学習の際，シーンをアプリ化し行なった．
（※文責: 田中良磨）

Group Report of 2023 SISP

- 82 -

Group Number 07

CreativeAI

6.6.10

主人公のエージェントについて

主人公エージェントの観察内容は，敵と主人公の体力，座標，現在主人公がどの攻撃を発動しているか，エピソードが始まってからどれだけの時間が経過したのか，x，y 方向への現在の速度，敵との距離，画面内に出ている自分の遠距離攻撃 1 と 2 の速度，攻撃力，現在の位置，各近距離攻撃が出ている際にその攻撃力と表示時間を観察している．
次に行動内容は，x 座標の左右の動きを-1 から 1 の間で判断を行なうようにし，負の値をとった
際には負の方向に移動を行ない，正の値をとった際は姓の方向に移動するようにした．そして，左右の攻撃を 0，1，2 の三個の値で判断を行なうようにし，0 の時攻撃を行なわず，1 の時負の方向に，2 の時正の方向に攻撃を行なう．遠距離攻撃は 0，1 の二つの値をとり，0 の時は攻撃を行なわず，1 の時は攻撃を行なう．上攻撃と下攻撃は 0，1 の二つの値をとり，0 の時は攻撃を行なわず，

1 の時に攻撃を行なう．
そして，報酬の内容は，エピソードの開始から一定時間をこえてしまったとき 1.0f の負の報酬，
主人公の体力が 0 になったとき 1.0 の負の報酬，攻撃を行なうごとに 0.00001 の負の報酬，攻撃を受けた際 0.0002 の負の報酬，敵との距離に応じて最大 0.0001 の正の報酬を受け取り，最小で0.00001 の負の報酬を受け取る．攻撃を与えた際，0.001 の正の報酬を受け取る．そして，最終ボ
スキャラクターとの強化学習の際は，最終ボスキャラクターよりも左側に存在するとき，右側に入力を行なうことで 0.0002 の正の報酬を受け取り，左側に入力を行なうことで 0.00003 の負の報酬を受け取る．また，右側に存在するときは，逆の報酬を受け取る．隠しボスキャラクターとの強化
学習の際は遠距離攻撃をキャンセルさせることで 0.001 の正の報酬を受け取る．これらの数値は実験を行なう中で変更を続けており，報酬の与える内容も新たに増える場合やなくなる場合がある．
また，カリキュラム学習の要素として，最終ボスキャラクターとの強化学習の際は，距離を近づくことを学ばせるために距離に応じて増減する報酬の値を約 10 倍にし，最終ボスキャラクターとの位置と入力に対応して得られる報酬を約 10 倍にした．そして，隠しボスキャラクターとの強化
学習の際は，攻撃を当てることに重点を置かせるために，攻撃を命中させた際に得る報酬と隠しボ
スキャラクターの遠距離攻撃をキャンセルさせた際に得る報酬の値を約 10 倍にした．
そして，Raycast Observation の内容としては最終ボスキャラクター，隠しボスキャラクターと最終ボスキャラクター，隠しボスキャラクターの全ての攻撃，自分が出す全ての攻撃，そして地面の情報を与えるようにした．
（※文責: 田中良磨）

6.6.11

最終ボスキャラクター

ゲームコンセプトと物語班により提供された物語や設定をもとに，最終ボスキャラクターは人魚をモチーフにしており，移動はできず，3 種類の攻撃と 3 種類のイベント攻撃を行なう．3 種類の攻撃のうち 1 つは常に行なわれており，残りの 2 つは交互に行なっている．また，3 種類のイベン
ト攻撃に関しては最終ボスキャラクターの残り体力に応じて発生する．また，体力が半分以下になGroup Report of 2023 SISP

- 83 -

Group Number 07

CreativeAI
ると最終ボスキャラクターは場所が移動し，3 種類の攻撃も威力や発生時間の間隔，発生するゲー
ムオブジェクトの数が増加する．そして，攻撃の位置の調整や動きには強化学習を用いており，動きはエージェントが決定している．
・背景
最終ボスキャラクターはゲームの中で物語における最大重要要素である．また，予測可能な単調な動きをさせるのではなく，プレイヤーごとに違う動きを実現したく，強化学習を行なった．
・最終ボスキャラクターの攻撃 1
攻撃 1 は，最終ボスキャラクターの頭上から，一定時間ごとに横に移動する攻撃オブジェクトを発生させる．時間は体力が半分以下になると短くなる．攻撃オブジェクトは，一定の距離移動する
ことで消える．この攻撃はエージェントが発射する角度を決める．
・最終ボスキャラクターの攻撃 2
攻撃 2 は，ステージ上部から体力が半分以上の時は 3 つ，半分以下のときは，5 つ少し大きめのCollider を保持した攻撃オブジェクトはまっすぐ下に移動するように発生させる．
攻撃オブジェクトは一定の距離移動することで消える．また，この攻撃はエージェントが指定して 2 点の間の x 座標の中から発生させる位置を決定する．
・最終ボスキャラクターの攻撃 3
攻撃 3 は，最終ボスキャラクターの頭上から，体力が半分以上の時は 1 つ，半分以下の時は 2 つトライデントをモチーフにした攻撃オブジェクトを発生させる．攻撃オブジェクトは一定時間経
過すると消える．攻撃オブジェクトは慣性を持っており，反対方向に入力を行なうと減速する．また，この攻撃は 1 秒ごとにエージェントが左右どちらに移動するかを決め，上下の移動はエージェ
ントが常に決定する．
・最終ボスキャラクターのイベント攻撃 1
イベント攻撃 1 は，最終ボスキャラクターの体力が 8 分の 7，4 分の 3，8 分の 3，4 分の 1 の時に強制的に発生する．この攻撃は波をモチーフにしており．縦に長いオブジェクトを最終ボスキャ
ラクターの後方から発生させ，最終ボスキャラクターがいる場所と反対の壁に向かって移動させる．また，この攻撃は衝突判定と物理演算のみで主人公の体力は減少しない．
・最終ボスキャラクターのイベント攻撃 2
イベント攻撃 2 は，最終ボスキャラクターの体力が 4 分の 3 以下の時に 1 回のみ強制的に発生する．この攻撃は，最終ボスキャラクターの上部に衝突判定や物理演算が存在しない絵のみを発生させ，その絵が存在している間にプレイヤーが最終ボスキャラクターに攻撃を与えると最終ボスキャ
ラクターの体力が 4 分の 1 減る．しかし，ダメージを与えることができなかった場合は，巨大な横方向に移動する攻撃オブジェクトを発生させ，プレイヤーはその攻撃オブジェクトに衝突してしまうと，ゲームオーバーになる．また，このイベント攻撃が始まっている間は他の攻撃は発動しない．
・最終ボスキャラクターのイベント攻撃 3Group Report of 2023 SISP

- 84 -

Group Number 07

CreativeAI
イベント攻撃 3 は，最終ボスキャラクターの体力が 4 分の 1 以下になると 1 回のみ強制的に発生する．この攻撃は，最終ボスキャラクター前方から巨大な横方向に移動する攻撃オブジェクトを発生させ，プレイヤーはその攻撃オブジェクトに衝突するとゲームオーバーとなってしまうが，プレイヤーはその攻撃オブジェクトに遠距離攻撃の 2 段階目を衝突させることで攻撃オブジェクトの移動方向を反転させることができ，最終ボスキャラクターに衝突させると体力を 0 にすることができ，撃破となる．
・最終ボスキャラクターの強化学習
この強化学習では主に 3 つの学習方法を組み合わせ行なった．敵対的ゲームにおいてエージェン
ト同士を対決させ，上達させる「セルフプレイ」，段階的に学習していくことで最終的な報酬のた
どり着き方を学ぶ「カリキュラム学習」，エージェントから周辺にレイを飛ばし，他オブジェクトとの距離と場所を受け取り，観察として使用する，「Raycast Observation」を使用した．
・最終ボスキャラクターのエージェントについて
最終ボスキャラクターのエージェントの観察内容は，お互いのエージェントの体力，座標，現在
最終ボスキャラクターがどの攻撃を発動しているか，現在画面内に存在する，自分が発生させた攻撃 1 の攻撃オブジェクトの攻撃力と速度，消滅するまでの距離，座標と角度，攻撃 2 の攻撃オブジェクトの攻撃力と速度，消滅するまでの距離，座標，攻撃 3 の攻撃オブジェクトの攻撃力と速度と座標，消滅するまでの時間，主人公との距離，イベント攻撃 1 の攻撃オブジェクトの攻撃力と速度，消滅するまでの距離，座標，現在のエピソードが開始してからの経過時間．を観察内容として与えている．
次に行動内容は-1 から 1 の間で選択する内容として，攻撃 2 のオブジェクトの発生位置を 2 点
間の x 座標の間からどこに出現させるかを選択を行なう．また，攻撃 3 のオブジェクトが発生する
角度の選択を行なう．そして，0，1，2，の整数の中から選択させる内容として攻撃 1 を体力が半分以上の時は 1 つのみ，体力が半分以下の時は 2 つ，それが左右どちらに入力を行なうか，上下どちらに入力を行なうかを決定している．
そして，報酬を与えている項目は，時間が経過していくごとに，0.00001 の負の報酬を与えるようにした．そして，体力が 0 になったとき，1.0 の負の報酬を与える．また，主人公の体力が 0 になったとき，1.0 の正の報酬を与え，攻撃を命中させる度に 0.03 の正の報酬を与え，主人公の遠距離攻撃をキャンセルさせたとき，0.0005 の正の報酬を与えた．そして，主人公の位置が攻撃 1 のオブジェクトよりも下に存在するとき攻撃 1 を上方向に入力を行なったとき 0.0005 の正の報酬を与え，下方向に入力をした際，0.00001 の負の報酬を与える．これを左右上下，2 つのオブジェク
トに反映する．そして，攻撃 1 のオブジェクトが主人公との距離が近いとき最大で 0.005 正の報酬を与え，距離が離れすぎると 0.005 の負の報酬を与えている．攻撃 1 は慣性や常に出現している状態でないオブジェクトであるため，求める動きの再現性が難しいため，できる限り詳細に報酬を与えるようにした．
また，カリキュラム学習の要素として，最終的に主人公の体力を 0 にすることでとても大きい報酬を得られるのだが，その報酬を得るまでにどうすることでそれを得ることができるのかを教える
ために攻撃 1 に関する正の報酬を 10 倍にした状態で進めた．また，それぞれの攻撃力の値を増加

Group Report of 2023 SISP

- 85 -

Group Number 07

CreativeAIさせ，主人公の体力を減らしやすくした．それらを段階的に元の値に戻していき，戦略性や勝ち方を考えさせるようにした．
そして，Raycast Observation の内容としては主人公と主人公の全ての攻撃，自分が出す全ての攻撃，そして地面の情報を与えるようにした．
・学習の結果上記の環境で強化学習を行ない続けた結果，セルフプレイ時における相対的な実力の評価として用いられる「ELO」が収束を見せず，頻繁に増減を繰り返し，安定した結果を得ることができな
かった．また，攻撃力や攻撃の間隔などの調整を行ないいくつかのモデルを作成したが，主人公の攻撃力が少し強い場合，主人公が一方的に攻撃を行ない続け最終ボスキャラクターが勝利できずに最大報酬を得られない状況になってしまった．そして，最終ボスキャラクターを強く設定した際，主人公が敗北を続け，最終ボスキャラクターに接近しなくなり，学習が進行不可になる現象が起きた．調整を行ない続け勝率が主人公が約 7 割，最終ボスキャラクターが約 3 割ほどになった際，約18000000 ステップまでは学習が滞りなく進んだが，その後主人公ができるだけ報酬を失わないためか，接近を行なわなくなり，学習が進行不可になった．様々な調整を加え続けたが，現段階で「ELO」が収束したモデルを作成することはできなかった．
（※文責: 田中良磨）

6.6.12

隠しボスキャラクター

隠しボスキャラクターは，プレイヤーと同じ攻撃方法と移動方法を持った敵キャラクターであり，動きと攻撃の決定は強化学習を用いたエージェントが行なっている．
・背景
隠しボスキャラクターは，ゲームのストーリーの進行には直接関与してくることはなく，プレイ
ヤーを楽しませるイベントの一つである．また，隠しボスキャラクターは，自分と同じ攻撃方法と移動方法を持ったエージェントと戦うことができるというコンセプトがある．しかしながら，強化
学習の際，攻撃力や移動速度が同じだと，動きの単調生が生まれてしまい，戦略性が低くなってしまうため，隠しボスキャラクターは移動速度やジャンプ力を向上させ，近接攻撃力を下げ，遠距離攻撃力を向上させることでエージェント間での差別化を行ない，戦略性を持たせるようにした．
・隠しボスキャラクターの強化学習
この強化学習では主に 2 つの学習方法を組み合わせ行なった．敵対的ゲームにおいてエージェ
ント同士を対決させ，上達させる「セルフプレイ」エージェントから周辺にレイを飛ばし，他オブジェクトとの距離と場所を受け取り，観察として使用する，「Raycast Observation」を使用した．
また，学習設計ファイルでのエージェントは主人公と隠しボスキャラクターのエージェントは同一のエージェントで宣言を行なった．
・隠しボスキャラクターのエージェントについて
隠しボスキャラクターのエージェントは行動内容や観察内容は全て主人公のエージェントと同一Group Report of 2023 SISP

- 86 -

Group Number 07

CreativeAIにした．また，Raycast Observation についても同一にした．
報酬は，隠しボスキャラクターは遠距離攻撃を主軸に戦うため，遠距離攻撃を当てたときに得る報酬を約 3 倍にし，主人公のエージェントは近接攻撃を主軸とさせるため，近距離攻撃を当てたときに得る報酬を約 3 倍にした．その他の報酬は主人公のエージェントと同一にした．
・学習の結果上記の環境で強化学習を行ない続けた結果，セルフプレイ時における相対的な実力の評価として用いられる「ELO」が収束を見せず，値の変化が小さくなっても細かい増減が頻繁に起こり，安定した結果を得ることができなかった．
・今後について現在できているモデルはゲーム内の見かけ上では最低限の動きを行なってくれ，プログラムで作成するボスキャラクターよりも複雑で良い動きを行なってくれるが，セルフプレイ時における相対的な実力の評価として用いられる「ELO」が収束せず，学習を完了したといえる状況でないため，
能力値の調整や観察内容の見直し，報酬の見直しを行ない，学習を引き続き行なっていきたい．
（※文責: 田中良磨）

6.7

統合

前期までは，各班と話し合って最終成果物の形式についてはなしあい，決定したゲームコンセプ
トをもとに，形式を決定し，各班での制作を進めた．また，素材が不十分な箇所は，システム班が制作したイラストや文章をダミーデータとして使用し，各班の成果物が完成した時点で差し替えることとした．
後期では，各班が実際に制作した成果物を，ダミーデータから差し替えた．それにともなって，
ダミーデータから形式が変わったものは，配置やプログラム等に変更を加え，実際にゲームとして動くようにした．
（※文責: 山崎雄太）

Group Report of 2023 SISP

- 87 -

Group Number 07

CreativeAI

第7章
7.1

中間発表

概要

2023 年 7 月 7 日，公立はこだて未来大学において対面形式での中間発表会が行われた．事前準備として，プロジェクトの活動内容を説明するためのポスター 1 枚と，実際の発表で使用する，全体発表用スライドと各班発表用スライドを作成して当日に臨んだ．当日は前半発表と後半発表毎に発表者を分け，5 分間の全体スピーチを行い，その後 5 分間の各班のスピーチに移行し，5 分間の質疑応答時間をそれぞれ設けた．15 分間の一連の流れを前半後半それぞれ 3 セット，合わせて 6
セット行った．また，聴衆に発表内容と発表技術についてのアンケートに答えてもらい，10 段階での評価とコメントを回答してもらった．
（※文責: 佐藤玲）

7.2

成果物

7.2.1

ポスター

本プロジェクトの今年度のポスターは A1 サイズで日本語と英語のバイリンガルとなっており，

Adobe Illustrator を使用して制作した．全体は白と黒を基調としており，班ごとにイメージカ
ラーを設定して各班の領域が視覚的に明確になるような配色を意識した．視線の法則に則って，プロジェクトの目的，目標，各グループの成果を簡潔に配置した．ポスターの視覚的な見やすさを重視するために，派手なデザインにはせず，シンプルなデザインでまとめた．下図は中間発表用に制作したポスターである．

Group Report of 2023 SISP

- 88 -

Group Number 07

CreativeAI

図 7.2.1

中間発表用ポスター

図 7.2.1 のポスターの上部にはプロジェクト名，プロジェクト番号，担当教員名を記載した．また，ポスターの本文には「目的・意義」「目標」「活動方式」「グループ活動」について記載した．プ
ロジェクト学習において一番大切である「目的・意義」「目標」では，文字サイズを周りよりも大きくすることで視覚的に見やすくする工夫をした．目的・意義には創造的要素を多く持つゲームの制作を通して，人工知能の実用性をどのように検証するのかを簡潔にまとめて記載した．目標には
今年度に人工知能を用いて制作するゲームのコンセプトを簡潔に記載した．
活動方式には「物語班」「システム班」「音響班」「視覚班」という各班がそれぞれ制作した成果物を統合し，ゲームを作り上げるという活動方式が一目で理解できるように，図解を使用した．図解では本プロジェクトが 4 つの班で構成されていることを明確にした．また，ゲーム制作において各班がどのように連携し，どのような情報を他の班に提供し，最終的にはどのように成果物を統合するのかが容易に理解できるような工夫をした．その一環として，矢印を用いて各班間の情報の流れや連携関係を視覚的に表現した．
グループ活動には，前期での各班の活動内容を各班で詳細に分割して記述した．その中で，本プロジェクトが 4 つの班から構成されていることを視覚的に明確に表現するための工夫として，各班の見出しには他のテキストよりも大きな文字サイズを使用し，その見出しに対応するイメージカ
ラーを配置した．これにより，ポスター全体の統一感を保ちつつも，各班の独自性を際立たせることができた．
内容に関して，当初は前期の成果物と今後の方針について班ごとに記載する予定であったが，担当教員から班ごとに記載内容の抽象度に差が生じてしまうという指摘を受けた．これに対応するために，抽象度の高い文章と具体的な案を両方記述するという方策を取った．さらに，「前期の成果物」という狭い括りではなく，「前期の活動」という幅広い括りで構成した方が，プロセスや目標が漏れてしまう恐れがなくなるという指摘を受けたことから，「目標」「前期の活動内容」「今後のGroup Report of 2023 SISP

- 89 -

Group Number 07

CreativeAI
目標」という構成で記述した．加えて，「今後の目標」の密度の差，鉤括弧の使い方，細かな文章
表現の違いについての指摘も受け，全体的な統一感が保たれるような表現になるように一部の文章を修正した．
その結果，全体的に整合性や一貫性がよく取れていて，初めて見る人にも伝わりやすいポスターに仕上げることができた．その他に担当教員から頂いた現状を掘り下げた指摘や細かな文章表現についてのアドバイスは，各班の思考過程や進行状況を深く考慮した上で，後期の成果発表会に向けてすりあわせを行う予定である．進捗が比較的具体的な成果物として反映されている班からは画像や表を提出してもらい，これらを活用することで，各領域のスペースをうまく活用してより見やすいレイアウトを実現できるのではないかと考えた．
ポスターに関しては，画像やイラストなどの視覚的な面白さがなく，少し硬い印象になってしまった．しかし， プロジェクトの目標や目的，各グループの成果などを簡潔に分かりやすく説明することができた．特に白と黒を基調とした配色や，班ごとに設定したイメージカラーは，後期の成果報告会に使用するポスターでも継続して採用するつもりである．しかし，後期の成果報告会では今回と同じ構成を使用しない可能性があるため，今回のポスター制作で得たアドバイスを活かして，プロジェクトの活動と並行してポスター制作を円滑に進めることを目指す．
（※文責: 長瀬悠太）

7.2.2

発表用スライド

聴衆に活動内容を理解してもらうべく， 全体スライドと 4 つの班それぞれのスライドを作成した．全体スライドは 16 枚，物語班は 14 枚，音響班は 9 枚，システム班は 8 枚，視覚班は 13 枚のスライドを作成した．作成時は全体スライドの発表時間を 4 分に決定し，残りの時間でそれぞれの班の発表時間を設定した．そして，全体スライド制作担当者と各班のスライド制作担当者でスライドの中身を作成した．全体スライドの内容は六つに大別でき，それぞれプロジェクトの概要，生成系 AI の利用，プロダクト概要，グループ構成と関係性，各グループ概要，各グループの説明で構成されている．最初にタイトルと目次を載せたスライドを一枚使用し，プロジェクトの概要ではスライドを二枚作成した．最初のスライドでプロジェクトの目的と達成意義について，次のスライドでゲームである理由について説明した．生成系 AI の利用ではスライドを三枚作成した．生成系

AI の基本説明と例として物語班のシナリオ自動生成プロセス，生成系 AI を利用したツールの取り上げのスライドを作成した．プロダクト概要では，ゲームコンセプトをまとめた一枚のスライドを作成し，ループものを選んだ理由についてのスライドを二枚作成した．グループ構成と関係性では，それぞれの簡単な概要と関係を一枚ずつ作成した．各グループの説明では四つの班の概要と目標を一枚ずつにまとめ，最後のスライドでは，グループの誘導のスライドを作成した．物語班のス
ライドの内容は八つに大別でき，目標，ループものについて・選んだ理由，生成プロセス，生成系

AI の問題点，物語論について，分析作品，分析結果，今後の展望で構成されている．最初にタイ
トルと目次を載せたスライドを一枚使用し，目標，ループものについて・選んだ理由，生成プロセ
スでは，一枚ずつ簡単に言葉のみでまとめたものと図を使ったものを作成した．生成系 AI の問題
点では，現状とその課題解決の必要な方法についてまとめた一枚のスライドを作成し，解決方法では，物語の分析からシナリオの自動生成までを図を使用し一枚のスライドで説明した．分析作品では，現在分析している六作品を記述し，内容選定方法の説明として KJ 法を用いたことを説明し，決定した分析内容についてのスライドを一枚作成した，合計三枚のスライドを作成した．分析結果

Group Report of 2023 SISP

- 90 -

Group Number 07

CreativeAI
では KJ 法でだした分析結果の要素をパラメータとして作成した一部をスライド二枚にわたって説明した．そして最後に，今後の展望を作成した．視覚班のスライドは六つの内容に大別でき，目標設定，具体案，Stable Diﬀusion とは，Stable Diﬀusion の活用法，行なってきたこと，展望で構成されている．目標設定では AI と視覚化を掛け合わせて行ないたい目標と現時点で困難なこととについての説明を二枚のスライドで行なった．具体案では，カヤラクターの映像の自動生成の具体的な動画での例と使うソフトについてスライド二枚で説明した．Stable Diﬀusion とはでは，画像生成 AI の簡単な説明をした．Stable Diﬀusion の活用法では，LoRa と ControlNet の画像を使用
した説明とその二つを掛け合わせて作成したいものについてを三枚のスライドで説明している．行
なってきたことでは，LoRa と ControlNet について中間発表までに行なってきたことをまとめた．
展望では目標に掲げていたことを達成するためへの計画を説明した． システム班は四つの内容に大別できる．2D アドベンチャーゲームについて，活動目標，前記の活動内容，後期の活動計画に構成することができる．2D アドベンチャーゲームについてでは，探索型 2D アクションアドベン
チャーゲームの説明を図で表し，特徴を他の班との関連性を表しながら説明を行なった．活動目標
では，二つの大きな説明を行ない，その目標に向けた取り組みを説明したスライドを二枚制作した．前期の活動内容では，いままで行なってきた，Unity の勉強について，エリア開発，キャラク
ターのモーションの開発について詳しく行なったことを記述している．後期の活動計画では，今後の予定で行なうことをスライドにまとめている．そして最後に中間発表までの作業内容を視覚的に表現するためにプロトタイプを作成し，それをプレイしている動画をデモ動画とした．デモ動画では基本的な操作ができることを伝えるほか，作成したギミックや敵キャラクターも出現させるようにした．音響班は六つの内容に大別できる．目標，実装するシステム，再生する BGM，データ処理班の成果，モデル班の成果，今後の展望で構成されている．目標では，自分たちの行ないたいこととそれがゲームにおいてどのような効果をもたらすのかを説明した．実装するシステムでは，2つの行ないたいシステムをスライド一枚で説明した．再生する BGM では，メロディ，ベース，ド
ラムを どのように選択し BGM を作成するのかを図示している．データ処理班の成果では，データ分析・成形，音響分析ライブラリの勉強について二枚のスライドを作成した．モデル班の成果では，機械学習についての勉強や TensorFlow についてスライド一枚にまとめた．また，今後の展望
では，やるべきことを決定していることと，話し合うべき課題に分け，まとめた．スピーチでは，全体発表を四分，移動を一分，各班での発表を五分に設定していた．全体発表の時間が短いため，細かい説明ができず，全ての班の詳細な説明を行なうことができなかった．
（※文責: 田中良磨）

7.3

評価

アンケートは発表技術と発表内容の項目に分け，10 段階評価とコメントを回答してもらった. 前
述した聴衆からのアンケートで 50 名の評価を受けた．結果は表 7.3.1 に示す．

Group Report of 2023 SISP

- 91 -

Group Number 07

CreativeAI
表 7.3.1

評価点

中間発表での評価

発表技術

発表内容

1

0

0

2

0

1

3

1

0

4

0

1

5

1

0

6

0

0

7

10

5

8

14

14

9

9

16

10

15

13

平均

8.42

8.54

発表技術についてのコメントの一例を示す.

• やりたいことや活動内容がわかりやすく説明されている．
• 今の目標とこれからどうしていきたいのかが明確でとても良かったけど現在の課題がよく分からなかった．

• 聞き取りやすく，よくまとめられていた．
• 全体の流れが分かりやすいが，それぞれの説明はもっと掘り下げてほしかった．
• ビジュアルが見える状態で発表されていたので，非常にイメージがつきやすかったです．欲を言えば，さらに踏み込んだ技術の説明とかが聞いてみたかったです．

• それぞれの班が持つ目的や行っている事を網羅した上でその後追加で各班の細かな内容を説明する形なのが分かりやすかった．

• 分析がちゃんとされていて今後に期待したいと思った．ループ系のゲームも実際にやってみた方がいいと思った．

• 聞き取りやすかった．話す速度が適切であった．
• 物語構造とかの専門用語っぽい用語の説明をもうちょっと詳しく説明するともっと良くなると思いました．

• スライドが簡潔．ハキハキ発表している．
全体として使用する技術の詳細や専門用語のわかりやすくかみ砕いた説明が足りないなどのスライドの内容について改善するべきという感想が多く寄せられた．一方で，はきはきとしゃべっている，質問への対応，ジェスチャーなど発表者の技術は高評価であった．しかし，台本を見ていることが気になるという意見も少数だがみられた．
発表内容についてのコメントの一例を示す.

• やりたいことの大枠がよく分かった．完成系がとても楽しみ．
• 内容はとても良いし面白いと思った．しかし実験にとどまっていることと，今後やらなければいけないことを考慮すると，ペース配分が少し心配というか，追い込み時とても苦しくな
らないか不安だった．こだわりたいところと現実的なラインをしっかりと見極めて頑張って欲しいです．応援しています．

Group Report of 2023 SISP

- 92 -

Group Number 07

CreativeAI• 内容がトレンドで今年は受ける内容だと思った．
• 視覚班が AI イラストの倫理的な問題に配慮しているのが伝わりました．
• 人工知能という比較的難しい内容を具体例など含めて，上手く目標設定出来ていると思った．
• 音響班が音楽的要素を考慮せずに音楽を作ろうとしていたのが気になった．(コード感やノンダイアトニックなど) 全体的に音楽を機械的に処理しようとしており，例外だらけの音楽要素を処理する為には作業量が多くなりそうで，展望が甘いと感じた．

• ひとつの大きな目標に向けてそれぞれの班が持つ目標が具体的に決められているのがいいなと思った．

• どんなふうに最終的にゲームになるのかがよくわからない．
• できれば，今できている映像などを見せてくれると，適切なアドバイスが得られやすいと思います．最終成果物を期待しています．

• 内容，技術的なチャレンジとして期待できる．後期頑張って欲しい．
前期活動内容，目標の高さに対する評価が高く，後期の活動，今後の成果に期待するといった感想が大半を占めていた．しかし，目標の高さゆえに成果発表までに完成するのかなどペース配分に不安を持つ意見がみられた．
（※文責: 佐藤玲）

Group Report of 2023 SISP

- 93 -

Group Number 07

CreativeAI

第8章
8.1

成果発表

概要

2023 年 12 月 8 日, 公立はこだて未来大学において対面形式での最終成果発表会が行われた. 本
プロジェクトでは, スライドを制作し，それを使用して発表を行なった. 前半発表と後半発表毎に発表者を分け, 約 3 分間の全体説明を行い, その後約 12 分間で各グループごとの説明と質疑応答を行なった. この 15 分間を１つのセットとして, 前半後半それぞれ 3 セット, 合わせて 6 セットの発表を行った. また, 聴衆に発表内容と発表技術についてのアンケートに答えてもらい, 10 段階での評価とコメントをいただいた.
（※文責: 山本拓摩）

8.2

制作物

8.2.1

ポスター

本プロジェクトの今年度のポスターは A1 サイズで日本語と英語のバイリンガルとなっており,

Adobe Illustrator を使用して制作した. 基本的な構成は中間発表用ポスターと同じになっている.
下図は最終成果発表用に制作したポスターである.

図 8.2.1

Group Report of 2023 SISP

成果発表用ポスター- 94 -

Group Number 07

CreativeAI
図 8.2.1 のポスターの上部にはプロジェクト名, プロジェクト番号, 担当教員名などの情報を記載
した. ポスター本文の上部に，「概要」としてプロジェクトの目的や意義, 目標などプロジェクトについてイメージができるように情報をまとめた. その下に各グループがどのような活動を行ってき
たかがわかるように各グループごとに主な活動の説明と成果物の画像などを掲載した. グループによって文章量や画像の形が異なっていたので, 全ての班が同じ面積のスペースを使用するように調整を行った. また, 各グループの主な活動のタイトルを強調し, 各グループが分かれていることを強調するために, 主な活動のタイトルの下線を各班のイメージカラーで配色した. 物語班は赤色, 視覚班は緑色, 音響班は青色, システム班は黄色となっている. 最後に, 今後の展望を各班ごとに記載した. この部分はスペースが少ないことも考慮して簡潔に一文で表現するように文章の調整を行った.
前期の中間発表ポスターの制作では, グループごとに文章を書いた後, 各グループの内容を統合する際, 文章量の違いや方向性の違いから各グループが文章を何度も再調整する必要が生じた. その反省を生かして, 後期では, 文章量の目安や画像の枚数, 記述する内容の詳細な指示をすることでス
ムーズにポスターを完成させることができた. 内容の整合性やバランスを重視したためかなりシンプルなデザインとなったが, その分違和感がなく, 全体としてもグループとしても最低限伝えたい
内容を伝えられるポスターを制作することができた.
（※文責: 山本拓摩）

8.2.2

発表用スライド

物語班

物語班の発表スライドは, 活動目標, 生成 AI の課題, シナリオ作成の流れ, 分析と結果, シ

ナリオの作成, 今後の展望という流れで構成した. スライド構成における工夫としては, 重要な情報が一目で分かるようにしたことだ. 具体的には, データに対しての因子分析の結果や, プロンプトに対してのプロンプトに基づいて生成されたあらすじを 1 ページにまとめる工夫をした. また, 補色を用いて特に重要なポイントを強調し, これらの言葉を他のスライドで繰り返し使用することで,視聴者に伝えたい主要なポイントを際立たせた. スライドの色合いに関しては, 暗い藍色の背景に白とオレンジの文字を組み合わせることで視認性を高めた. フォントに関してはタイトルのフォン
トは「マティス」を使用し, それ以外では「はんなり明朝」を使用した. また, スライドを作成する
際には PowerPoint は使わず, Canva のスライド作成機能を活用した.
（※文責: 大柳裕士）
視覚班 視覚班のスライドでは，始めに視覚班が制作したものの全容を示した．全容をもとに分野別に章を 3 つ立て，章ごとに経緯と解説を行った．1 章を『AI を用いたアニメーション制作』，2章を『マップ・UI の制作』
，3 章を『敵キャラクターの制作』としている．全体を通して，文字を使わず画像と図によって説明が完結することを意識してスライドを制作した．ほとんどのスライドで画像か，できるのであれば GIF 画像によるアニメーションを挿入している．文字色は黒，白，赤，青，黄の 5 色に絞り，赤と青は対比として，黄は黒地を背景として使用することで際立たせ，強調としての意味を持たせて使用した．文字のフォントは游明朝と游ゴシックのみを使用しており，章のタイトルと英字では游明朝を，それ以外では游ゴシックを用いた．スライドでは PowerPoint によるアニメーションを入れていない．これは PDF 化した際の視認性の低下を危惧したための措置である．しかし，口頭での説明に合わせて図や矢印などの記号がスライドに現れて欲しい時もあるため，アニメーションを用いれば 1 枚のスライドで済むところを複数スライドに分けて表現していGroup Report of 2023 SISP

- 95 -

Group Number 07

CreativeAIる．そのためスライド数は 23 枚にまで肥大しているが，実際のスライド枚数は 18 枚である．スラ
イドとそれを用いた発表は大変好評を博し，よくお褒めの言葉を頂ける良い出来栄えとなった．
（※文責: 松下瑚南）
音響班 音響班の発表用スライドは，全部で 16 ページにわたり，シンプルかつ統一感のあるフラットデザインを採用した．これにより，聞き手が視覚的に快適に情報を得られるように配慮されている．まず最初に，音響班の活動目標を提示し，それに関連する二つの主な課題を提示した．一つ目の課題に対する解決方法と手段を明確にし，そのアルゴリズムを理解しやすくするために図を用いて説明した．二つ目の課題も同様に提示し，ここでも図を使用した．スライド数が多いことを考慮
し，聞き手が内容を消化しやすいように，ここまでの内容をまとめるスライドを挿入した．次に，音響班の具体的な活動内容について説明し，目標達成のために必要な事前知識と，開発した学習モ
デルの仕組みを図を用いて説明した．この部分では，聞き手の理解が追いついていけるように，スライドを簡潔かつ内容豊かにすることを心掛けた．最後には，実際に作成した BGM のデモを数曲流し，音響班の成果物を実際に体験してもらった．全体を通して，音響班は聞き手の理解を深める
ための工夫を随所に散りばめ，技術的な内容を視覚的にも分かりやすく伝えることに専念した．
（※文責: 長瀬悠太）
システム班

システム班の発表用スライドは，活動目標，活動内容，今後の課題で構成した．全体

的に聴講者の方が直観的に理解できるように GIF やデモ動画をスライド内に埋め込むことを意識した．活動目標ではゲームの基盤の開発，ボスキャラクターの強化学習，各班の成果物の統合についてまとめた．活動内容についてはこれらの活動目標ごとに具体的に行った活動を記述した．ゲー
ムの基盤の開発についてのスライドには敵キャラクターやギミックを開発する意味を文字で書き込
み，これらの GIF をいくつか埋め込んだ．ボスキャラクターの強化学習については直面した問題
点と解決方法，具体的に改善された数値，調整を加えた能力値などを記述した．また，強化学習についての知識がない聴講者の方でも直観的に強化学習が有益であることがわかるように強化学習前
半の GIF と強化学習後半の GIF をスライドに埋め込んだ．各班の成果物の統合についてのスライドでは統合のときに生じた課題と解決方法をまとめ，発表の最後に統合が完了した成果物のデモ動画を公開した．デモ動画では各班の成果物が見られるように，物語班が開発したテキスト，視覚班
が開発したアニメーションや画像，音響班が開発した BGM を動画として収めた．
（※文責: 村岡広海）

8.2.3

デモ

成果発表会では，ゲームのデモ版を開発し本プロジェクトのブース内に設置することで来場者の方が実際にゲームをプレイできるようにした．デモ版を設置した目的は各班の成果物がどのような形で統合されゲームとしての役割をしているのかを来場者の方に直観的に確認できるようにするためであった．このデモ版はモニターとゲーム用コントローラーを接続した PC を各 2 台ずつ配置
し，発表前や発表後の空き時間に来場者の方が自由にプレイできるようにすることで公開した．最終的な成果物のゲームでは物語の 1 周目から統合された各班の成果物が確認できる仕様になっているので，デモ版として成果発表会の時点で最新の成果物を公開した．最終的な成果物とデモ版の違Group Report of 2023 SISP

- 96 -

Group Number 07

CreativeAI
いは敵キャラクターや主人公の能力値の調整など，ゲーム難易度に関する調整が完了していなかったことや統合の済んでいない部分が一部存在するなどであった．
（※文責: 村岡広海）

8.3

評価

アンケートは発表技術と発表内容の項目に分け,10 段階評価とコメントを回答してもらった. 前
述した聴衆からのアンケートで 61 名の評価を受けた. 結果は表 8.3.1 に示す.
表 8.3.1

評価点

成果発表での評価

発表技術

発表内容

1

0

0

2

0

0

3

0

1

4

0

1

5

1

0

6

2

4

7

10

5

8

15

18

9

21

13

10

12

19

平均

8.46

8.48

発表技術についてのコメントの一例を示す.

• 専門用語や説明すべき点を伝えていたので，不明点が少ない分かりやすい発表だったと思います．発表者の立ち位置がスライドと重なっていて，少し見にくいことが気になりました• 活動した班ごとに説明がしっかりしてて，デモ画面もついており，分かりやすかったです• 順序が非常にわかりやすく，話の構成が伝わりやすかったです．ただ，発表がやや平坦に聞こえました．最も伝えたい部分をより強調するとよりよい発表になると思います• 分析の画面とか，スライドが分かりやすくまとめてあり，よかった．専門的な用語だらけではなく，理解しやすかった• 声が聞き取りにくいときがあった．下を向いているときが多い気がした• 聴衆をしっかりと見て，身振り手振りをうまく取り入れて，理解を促しており，素晴らしい発表であった．他のプロジェクトにも，まねをしてほしいと思う• 発表する人たちの説明がとてもわかりやすく，スライドの内容も見やすかったので，このような評価をしました．質問にもしっかり答えていただいて，今後のプロジェクト選びの参考になりました• 完成品を視聴できていいなと思いました• 発生した問題と解決方法の流れが見やすかった• 図が簡潔．図の配置がバラバラ
Group Report of 2023 SISP

- 97 -

Group Number 07

CreativeAI
全体的に聴衆から高い評価を得ることができた．また，中間発表の最も大きな反省点であった，
使用する技術の詳細や専門用語のかみ砕いた説明は十分に達成できたと頂いた評価から言える．しかし，声が聞き取りにくいといった意見も少数だが見られた．新たにレーザーポインターを用いて発表を行ったことに加え，想定を超えた聴衆の数，4 班による並列での発表により，我々の声が届きにくい環境を作り出してしまったことが原因だと考えられる．
続いて，発表内容についてのコメントの一例を示す.

• 物語生成のための AI の利用方法をうまく考えている• 面白さを損ねず，なおかつ時間がかからないような工夫が散りばめられてて良かった• 強化学習を用いた場合と用いなかった場合の違いが分からなかった• 音響班の話を聞いて，感情を読み取り 1 つの音楽になっているという点がすごいと感じた• 生成系 AI の苦手分野や得意分野を明確に把握していたので効果的な演出をできていると感じた• レベルが高く特にシステム班の内容が唯一無二で素晴らしいと感じました• 未開拓の領域に対して，非常にユニークな視点から成果を作っていると思いました• AI を利用してのゲーム作成で様々なアプローチをしていて良かった• AI でゲームを作るという目標に対してのチーム分け，コミュニケーションが効果的にできているとおもった• 制作物はすごく面白いと感じたのですが，なぜゲームを作るかの全体としての目的が分からなかった
後期活動内容，特に成果のクオリティーの高さ，問題解決のための取り組みに対して高い評価を得ることができた．一方で，なぜゲームを題材としたのかが分からないといった評価を一部の方から頂いた．全体の発表内容に不足があったと考えられる．
（※文責: 佐藤玲）

Group Report of 2023 SISP

- 98 -

Group Number 07

CreativeAI

第 9 章 まとめ9.1

全体

前年度にテキスト生成 AI の ChatGPT や画像生成 AI の Stable Diﬀusion といった，精度の高い生成系 AI が一般向けに公開されたことで AI は広く認知され，第 4 次 AI ブームと呼べるほど著しい発展を今もなお遂げている．そのような中で，本プロジェクトでは，人工知能を用いてどのように創造性を生み出すかを，ゲーム制作というアプローチから検証した．5 月初めからプロジェクトを開始し，初週に CreativeAI のメンバー全員で制作するゲームのジャンルとテーマを決定した．2 週目からはゲーム制作に必要な役割ごとに班分けを行い，その結果以下の 4 つの班に分かれて活動を開始した．ループものシナリオの構造を分析し，分析結果をもとにテキスト生成系 AI を用いることで，物語のあらすじを自動生成する物語班，画像生成 AI を用いてフレーム毎のブレが小さいアニメーションを作成する視覚化班，教師あり学習を用いて物語の場面にあった BGM を擬
似的に自動生成する音響班，ゲームの基盤となるシステムの作成，強化学習を用いたボスキャラク
ターの行動制御，各班の成果物を統合するシステム班である．7 月には中間発表を行うことで，各班のこれまでの成果と後期の展望を確認でき，夏休みの活動や後期の活動に活かすことができた．
後期の活動も前期と同じく 4 つの班に分かれて開発を行った．後期の活動では，各班が相互に関わる部分についての話し合いや開発をすることが増えた．また，ゲームの SE や UI などのゲームに必要な素材の開発も手作業で行った．11 月には函館アカデミックリンクと呼ばれている，函館の大学や高専の学生や企業の方々が行っている研究内容や成果を発表する合同研究発表会にブース
セッションで参加し，参加者から様々な反応を得られた．函館アカデミックリンク後には，各班がゲーム制作の進捗状況に応じて班ごとに人員を移動することで，制作物の完成を目指した．12 月には成果発表会を行うことで学内の人だけでなく，学外の方にも成果物発表を通して研究の意義を伝えることができた．今後は制作物であるゲームを一般向けに公開するために，細かな調整やデバッグを行っている．
（※文責: 尾崎陽彦）

9.2

各グループ成果

9.2.1

物語班

物語班は, 目標としていたループものシナリオの自動生成を達成することができた. 実際に自動生成した部分は, シナリオ執筆をするためのあらすじであったが, AI を効果的に利用することがで
き, AI がシナリオ執筆の大きな手助けとなった. また, プロンプトに細かな制約をたくさん加えるなど工夫を凝らすことで, 意図するあらすじを生成することができた. これにより, シナリオ制作において生成系 AI を有効に使う方法があるとわかった. また, ループものの分析においても, 「ループの一周を単位として関係性を探る視点」, 「繰り返される出来事に注目してその役割を探る視点」
両方で, 分析結果を得ることができ, 新たな発見や妥当と言える結果を得ることができた. また, 全体を通してほとんど計画通りに課題をこなせたことも正しいマネジメントができたことによる成果

Group Report of 2023 SISP

- 99 -

Group Number 07

CreativeAIであると考えられる.
（※文責: 山本拓摩）

9.2.2

視覚班

視覚班は，ゲームにおける視覚的要素全般を各班と連携しながら制作した．制作物には，AI を用いたアニメーション，マップ背景と，AI を用いなかった UI，敵キャラクターがある．AI を用いたアニメーション，マップ背景では，既存の技術を組み合わせ独自に考案した手法を用いて制作を行った．AI を活用することで，新たな可能性を見いだせたり，本来自力では作れなかったようなものが制作できた．また，アイディア出しや作業効率化といった面でも活用できたと考えている．

AI を用いなかった UI，敵キャラクターは，ペイントソフトや 3D モデリングソフト等を使用し必
要な視覚的要素の制作を行った．
（※文責: 森正樹）

9.2.3

音響班

音響班は，感情データを用いて音響特徴量を予測する学習モデルを開発し，これにより場面に合った音源の選択が可能となった．感情データは Hevner の感情カテゴリーを基にした 8 次元ベク
トルで，既存作品の BGM を参考に評価した．このモデルを用いて，物語班が作成したストーリーに応じて感情データを付与し，それに基づいて音響特徴量を予測した．予測された音響特徴量を使って，場面に適した音源を選択し，これらを組み合わせることで，場面にマッチする BGM を生成することに成功した．
（※文責: 長瀬悠太）

9.2.4

システム班

システム班は，最終的に各班の成果物を１つに統合したゲームを開発することができた．各班の成果物は CSV ファイルであったり，MP3 ファイルであったり，PNG ファイルであった．CSV
ファイルや MP3 ファイルについてはゲームに統合するために，統合用のシステムを開発する必要があり，そのシステムを開発することで各班の要望を叶えられるような統合を行うことができた．
ゲームの基盤部分についてもシステム班のメンバーが追加したい要素や調整を行うことができた．
一方で，敵キャラクターに対する強化学習については，学習が収束せず，複雑な行動をする敵キャ
ラクターを開発することはできなかった．
（※文責: 村岡広海）

Group Report of 2023 SISP

- 100 -

Group Number 07

CreativeAI

第 10 章10.1

物語班

10.1.1

反省

反省・今後の展望

物語班は, 全体を通して計画通りに作業することができたが, 議論をする場面で作業が滞ることが多くあった. この原因はグループ全体で意識の共有ができていなかったことであると考えられる.
例えばスライド制作では, シナリオの自動生成のプロセスを説明する部分で, プロセスの一部をなんのために行ったのか認識の違いがあり, その認識をもう一度合わせてからスライドの制作に取り掛かる必要があった. このように全員が共通の認識を持っていると思い, 認識をきちんと合わせて作業を進めることを怠ってしまったことが反省として挙げられる. 他にも, なぜこの作業を行っていたか十分に意識を合わせないままに作業を行っていた可能性は考えられる. また, シナリオ生成の部分でも反省があった. 物語班では, ChatGPT に送るプロンプトを作り, シナリオを執筆するためのあらすじを生成させるグループと, そのあらすじをもとに加筆・修正し最終的なシナリオを執筆するグループに分かれていた. そのため, ChatGPT に送るプロンプトに最終的なシナリオを執筆するグループの意向は十分に反映されなかったため, 加筆・修正の工数が増えてしまった. このようにグループ全体で十分にコミュニケーションを取らなかったことが大きな反省として挙げられる.
（※文責: 山本拓摩）10.1.2展望

今後は, OpenAI の API を利用してセリフの自動アレンジを行うシステムの構築や, ループもの分析やループものシナリオの自動生成などの活動を人工知能学会などの学会で発表することを考えている. セリフの自動アレンジシステムは, 後期の時点で Python を利用して元のセリフファイ
ルを１つの文字列に変換して, それをゲームをプレイするユーザが設定した「優しさ」などのパラメータを指定しているプロンプトと結合し, OpenAI の API にそのプロンプトを送ることで元のセリフの口調を変換するシステムを構築した. しかし, 変換したセリフが会話ウィンドウに表示できる最大文字数を超えてしまう問題や, プレイするユーザが指定するパラメータを変更してもセリフに大きな変化が見られない場合がある問題などがあった. また, 実際にゲームに導入するにあたって, ゲームのプレイ中に変換したセリフファイルがゲームにうまく反映されるかや, セリフ変換システムのプログラムをどのように適用するかなどは未検証であり, システム班と話し合う必要があった. このような問題を解決し, セリフが動的に変換され, ゲームに AI が組み込まれているということが実感できるようなゲームになるように, システムの完成を目指す. また, ループものシナリオを分析した例は現在までにほとんど存在していないため, 今回の成果を学会で発表することで第３者から活動の評価をいただきたいと考えている.
（※文責: 山本拓摩）Group Report of 2023 SISP

- 101 -

Group Number 07

CreativeAI

10.2

視覚班

10.2.1

反省本プロジェクトを進めるにあたり，視覚班としては計画に遅れが出てしまったということが一番の反省である．待ちの姿勢で活動を行ってしまったため，物語班の物語の内容やシステム班のゲー
ムの仕様が確定するまで視覚的要素を制作することができなかった．そのため，マップや UI，敵キャラクターの制作が後ろ倒しになってしまい，余裕がなくなってしまった．改善策として，視覚班自らが能動的に動き，各班に提案や意思疎通を定期的に行うことで，すばやくゲームに必要な要
素を制作できたのではないかと考える．また，AI の活用といった面では，AI の表面的な部分を活用することはできたが機械学習といったよりディープな内容には踏み込めなかったことも反省の一つである．
（※文責: 森正樹）

10.2.2

展望

視覚班の今後の展望は，ゲームの視覚的要素を生成 AI を活用してより実践的に運用できるようにすることである．今回のマップ背景の生成はかなりよい精度で生成できることが分かった．しかし，キャラクターのアニメーションや UI といった部分ではまだ AI を活用しきれないということも同時にわかった．今後，特に力を入れて制作したキャラクターのアニメーションについて，より精度の高いものを制作したいと考えている．活動当初にはなかったような技術で，より一貫性のあるアニメーションを作ることができるものもでてきている．そのような技術を改善したり，これまで行ってきた手法を組み合わせることにより実用的なキャラクターのアニメーションが作れるのではないかと考えている．
（※文責: 森正樹）

10.3

音響班

10.3.1

反省• 今年度音響班が取り組んだこと音響班は「場面に合った曲の自動生成」を目標に掲げ，ゲーム全体の雰囲気を BGM として表現し，没入感を高めることを目指した．これを達成するために，2 つの主要な課題に取り組んだ．1 つ目は「自動生成アルゴリズム」の開発で，完全な自動生成ではなく，分離された音源を組み合わせることで曲を疑似的に生成する方法を採用した．音楽の各パートをド
ラム，ベース，その他として分類し，場面に応じて最適な音源を選択するシステムを開発した．2 つ目は「場面に合った音源選択」で，音響特徴量を基準にして音源を選択する方法を採用した．音響特徴量を予測する AI を用いて，場面に適した音響特徴量を特定し，これをもとに音源を選択した．

• 今年度の全体的な成果
音響班は，感情データを用いて音響特徴量を予測する学習モデルを開発し，これにより場Group Report of 2023 SISP

- 102 -

Group Number 07

CreativeAI面に合った音源の選択が可能となった．感情データは Hevner の感情カテゴリーを基にした

8 次元ベクトルで，既存作品の BGM を参考に評価した．このモデルを用いて，物語班が作成したストーリーに応じて感情データを付与し，それに基づいて音響特徴量を予測した．予
測された音響特徴量を使って，場面に適した音源を選択し，これらを組み合わせることで，場面にマッチする BGM を生成することに成功した．

（※文責: 長瀬悠太）

展望

10.3.2• 音響特徴量の評価
今年度の活動では，モデル構築と音源合成・選択システムの開発において，以下の六つの音響特徴量を活用した．これらは BPM（Beats Per Minute），スペクトル重心（Spectral

Centroid），クロマ分散（Chroma Variance），クロマ距離（Chroma Distance），RMS（RootMean Square），ZCR（Zero Crossing Rate）である．これらの音響特徴量は音楽のリズム，
和音など，音楽の根本的な要素を捉えるために重要である．
しかしながら，これら各音響特徴量がモデルの予測結果にどの程度影響を及ぼしているのかについては，現時点では具体的には明らかになっていない．この不明瞭さは，モデルの精度や効率性において重要な潜在的な問題点を示唆している．したがって，今後は特定の音響
特徴量の有無がモデルの予測結果にどのような影響を及ぼすかを比較分析する必要がある．
具体的には，特定の特徴量を排除した場合と含めた場合の予測結果を比較し，それぞれの特徴量の重要性を定量的に評価する．
この比較分析を通じて，現在扱っている音響特徴量が場面の雰囲気や感情表現にどれほど寄与しているかを明確にすることができる．

• 分析対象作品の増加
今年度の活動では，分析対象作品を特定のジャンルに限定して選定していた．理由として
は，特定のジャンルの作品に扱われている BGM を分析用音源とすることにより，モデルの学習効率と精度を向上させることを意図してした．
しかし，このような限定的なアプローチは，モデルの完成度に制限をもたらす可能性がある．そのため，今後は分析対象の作品の範囲を拡大し，さまざまなジャンルからの作品を取り入れることが重要である．映画やゲームに限らず，さまざまな書籍や小説などのデータを含めることにより，モデルはより多様なパターンを学習し，精度の更なる向上が期待でき
る．
作品数の増加は，モデルに対するデータの多様性を高め，未知のデータに対する予測能力の強化が期待できる．また，異なるジャンル間の共通点や相違点を学習することによって，モデルはより複雑なデータ構造を理解し，予測精度の向上を実現できる可能性がある．

• 音源選択・合成システムの改良
今年度の活動において，音源選択・合成システムでは，音源を合成する際に BGM に違和感が生じないよう，RMS を細かく調整していた．RMS は音の大きさを示す指標であり，合Group Report of 2023 SISP

- 103 -

Group Number 07

CreativeAI
成された音源が BGM として調和するためには，この指標の正確な調整が不可欠であった．
しかしながら，現在のシステムでは，RMS の調整のみに焦点を当てており，他の重要な

BPM などの音響特徴量の調整機能が備わっていない．BPM は音楽のテンポを示す指標であり，これを適切に調整する機能を実装することで，さらに自然で調和の取れた音源合成ができる可能性がある．
さらに，現時点では，選択用の音源が一定の BGM に基づいて作成されている．そのため，音源選択・合成システムに BPM の変更機能を追加することで，既存の選択用音源に対して多様なバリエーションを加えることが可能となる．例えば，同じ音源で異なるテンポのバリエーションを生成することで，より多様な場面に対応する音源が作成できるようになる．
このような改良により，音源選択・合成システムは，より幅広い用途に対応し，様々な場
面に合わせた柔軟な音源生成が可能となることが期待される．

• 選択用音源の編集と追加
今年度の活動における選択用音源に関して，いくつかの課題が明らかになった．初めに，各パートごとの音源から得られる音響特徴量に顕著な偏りが生じてしまったことが確認された．この偏りは，音源選択システムにおいて特定のパートからの音源が優先される傾向を生んでしまい，結果的に音源の多様性とバランスに影響を与えてしまっている．
この問題の一因として，分析対象作品のジャンルが限定されている点が挙げられる．特定のジャンルに偏った音源は，必然的に特定の音響特徴量を強調し，他の特徴量を欠落させてしまう可能性がある．このため，分析する作品のジャンルの範囲を拡大し，多様な作品からの音源を取り入れることで，どのような違いが生じるかを検証する必要がある．
また，現在のシステムでは，単に各パートごとの選択用音源の数が不足している可能性も考えられる．これは音源の多様性に直接的な影響を及ぼし，特定のパターンや傾向に偏った結果をもたらす恐れがある．この問題に対処するためには，新たなパートごとの音源を追加で自作し，音源選択の多様性を高める必要がある．

• モデル精度改善
データの量に関して，初めの段階での計画や評価が不十分であった．ジャンルの選定において，深海ホラーに焦点を当てることで，データの多様性やモデルの学習能力に影響を及ぼす可能性が考慮されるべきであった．アンビエント音楽の分析対象としての適切性についての疑問も，その時点での明確な検討が欠けていた．
感情の分類方法に関しても，4 つのデータの平均を基にしたアプローチが採用されていたが，より効果的な分析手法の探求が十分に行われていなかったと感じている．特に，Pythonの特定のライブラリの活用が適切であった可能性があり，この点に関する検討が必要である．

Hevner の 8 つの感情の要素についても，それぞれの要素がモデルの学習にどのように影響を与えるかについての詳細な検討が不十分であったと考えている．
最後に，各作品や曲の独自性を考慮したデータの取り扱いに関して，具体的な分析手法やアプローチの検討が不十分であったと感じている．作品ごとの相対的なデータの取得や分析方法の探求が，モデルの精度向上に有効であった可能性が考えられる．

Group Report of 2023 SISP

- 104 -

Group Number 07

CreativeAI（※文責: 長瀬悠太）

10.4

システム班

10.4.1

反省

前期のシステム班は，計画通りに作業を進めることができた．当初は，中間発表会までに主人公をゲーム内で動かせる程度までの最低限の進捗を生む予定であり，その計画通りに開発を完了することができた．また，中間発表会の準備についても余裕を持って終わらせることができたので，計画通りに作業を進めることができたと言える．それに加えて，当初の予定以上に進捗を生むことができた．たとえば，この段階ではエリアに配置していないけれども開発が完了したギミックが複数存在していた．たとえば，「壊せる地形」や「レバー」などのギミックは，必要となればいつでもエリアに配置することが可能な状態であった．一方で，中間発表までに予定していたところ以上の開発が出来たものの，最終的なゲームの完成品からはほど遠く，進捗が遅いように感じられた．
ギミックに関しては当初の予定以上に開発することが出来たが，エリアに関しては主人公や基本的な要素の確認用のものしか開発が完了していなかった．また，当初の予定以上の開発を進めることができたが，計画立てが雑な部分が存在した．たとえば，作業の進行度に応じてこまめにリスケ
ジューリングを行わなかったり具体的な作業内容をその場で決定したりする場面もあった．
前期の時点での後期の方針としては，エリアの拡大，新しい要素の追加を行う．たとえば，ボス
キャラクターが登場するためのエリアを開発したり，プレイヤーに重要なアイテムを回収させるためのエリアを開発したりする．また，新しい要素の追加も行う予定であり，具体的にはボスキャラ
クターやさまざまな行動パターンを持つ敵キャラクターの追加をしたり，開発済みのギミックのベースを組み合わせることで新しいギミックを開発したりする．また，後期の始めの段階で時間的な余裕や作業量的な余裕が生まれることが予測される場合には，AI を使用した動的難易度調整にも取り組む予定である．具体的な手法については，まだ決定していないため手法を決めるところから開始する必要がある．それに加えて，後期には前期よりも予定と作業の進行度に差が生じる場面が発生すると考えられるため，丁寧な計画立てを行う．たとえば，後期の後半には他班の成果物を統合する必要があるため各班の作業の進行度によっては予定が崩れる可能性がある．その場合には，予定が変更になるごとにリスケジューリングにも時間をかけるようにする．
後期のシステム班は，成果発表会までに遊べる状態まで成果物を完成させることができた．デモ版ではあるものの，実際に成果発表会に来場された来場者の方々に遊んでいただける状態まで完成させることができた．統合用のシステム開発やゲームの基盤の開発には前期から取り組んでいたた
め結果的にそれらの開発に時間をかけることができ，スムーズに開発を進めることができた．エリ
アや敵キャラクターについても後期の活動では前期の活動よりも多く開発したが，開発を完了することができた．また，各班の成果物の統合については差し替えや微調整を行うことで可能であった
ため重大なバグを発生させることなく統合を行えた．それらに加えて，前期には行えていなかった
こまめなリスケジューリングを行うことで計画的に開発を進められた．一方で，強化学習に時間をかけられなかったことは問題であった．一部の敵キャラクターに対して強化学習を行うという活動
目標は後期の活動のはじめの時点で目標に加えたものであったため，時間をかけることができな
かった．そのため，学習が収束するまで強化学習を行うことができず，複雑な行動をする敵キャラ

Group Report of 2023 SISP

- 105 -

Group Number 07

CreativeAI
クターの開発を最後まで完了することが出来なかった．また，強化学習を行った敵キャラクターが強化学習を行わなかった敵キャラクターよりも強いのかについて評価実験による検証を行うことができなかった．
（※文責: 村岡広海）

10.4.2展望

今後の展望としては強化学習を改善することとプレイヤーの練度に適したエージェントの開発をすること，ゲームのクオリティを上げる要素を追加することが挙げられる．強化学習を改善することについては強化学習を行った敵キャラクターに対して，より複雑な行動をする敵を開発したいと考えている．また，プレイヤーの練度に適したエージェントの開発をすることについては，プレイ
ヤーの練度に適した敵キャラクターのエージェントの開発をすることによってプレイヤーが快適にゲームをプレイできるようにしたいと考えている．ゲームをプレイするプレイヤーのゲームの練度はさまざまであり，ゲームが得意なプレイヤーからゲームが苦手なプレイヤーまで練度は多様である．そのため，それぞれのプレイヤーに対して適切な難易度のゲームになるようにプレイヤーの練度に適したエージェントを開発したいと考えている．ゲームのクオリティを上げる要素を追加することについては，敵キャラクターを新たに増やしたり既存の敵キャラクターの攻撃方法を追加した
りしたいと考えている．
（※文責: 村岡広海）

10.5

全体

10.5.1

反省

プロジェクト全体の反省としては，各班が互いに尊重し合い過ぎたがために身動きが取れなくなってしまったことが挙げられる．例として，視覚班が素材を作るためにはシステム班による要件定義が必要だが，その要件定義をシステム班が制定するには物語班からのストーリーラインが必要となる．そのストーリーラインでのキャラクターの所作を決定するためには実は視覚班によるキャラクターデザインが必要となっている．そのキャラクターデザインを決定するためにはシステム班の…．などといった製作過程での必要要件で循環が起こってしまった．これにより各班が作業に取り掛かるまでの時間に大幅なロスが生じてしまった．どこか単一の班が船頭を切り，他班に関係なく製作を推し進めてプロジェクト全体を引っ張る必要があったと考えられる．全ての班が他班に対し遠慮し過ぎてしまったことが反省点であった．
（※文責: 松下瑚南）

10.5.2

展望プロジェクト全体の今後の展望としては，課外発表と学会発表を行うことを検討している．課外発表では代表者 2 名が秋葉原にて活動の発表を予定し，学会発表ではプロジェクトメンバーから希望者を募り，それぞれがメインで担当した内容に合致した学会での発表形式で行う予定である．そGroup Report of 2023 SISP

- 106 -

Group Number 07

CreativeAIのためプロジェクト全体の内容を学会発表するのではなく，プロジェクト内での活動のうち，特筆するものを選んでの学会発表となる．また，制作したゲームはインターネット上での公開を予定している．
（※文責: 松下瑚南）

Group Report of 2023 SISP

- 107 -

Group Number 07

CreativeAI

参考文献[1] 松原仁，佐藤理史，赤石美奈，角薫，迎山和司，中島秀之，瀬名秀明，村井源，大塚裕子．コンピュータに星新一のようなショートショートを創作させる試み．人工知能学会全国大会，

2D1-1(2013)．
[2] 栗原将風. 多変量解析を用いた 2000 年以降の日本のループ物語作品の傾向分析. 公立はこだて
未来大学卒業論文, 2019.

Group Report of 2023 SISP

- 108 -

Group Number 07