2018/12/7 成果発表 Project No.15

Project Member：鈴木 諒輔

Ryosuke Suzuki

Professor：

高橋 翔太

Shota Takahashi

南部 太雅

Taiga Nambu・概要

村井 源

Fumika Matsuura

Takumi Yoshida

Kazushi Mukaiyama

田柳 恵美子Emiko Tayanagi

平田 圭二
Keiji Hirata

クリエイティブ AI

松浦史佳

吉田 拓海

迎山 和司

Hajime Murai

寺島 啓悟

Keigo Terashima

Creative AI

城田 晃希 佐々木 奨之

Kouki Shirota

津沢 慎吾

Shingo Tsuzawa

Shono Sasaki

田中 瑞穂

渡邊 広基

Hiroki Watanabe

Mizuho Tanaka

三浦隆太郎

Ryutaro Miura

Abstract

クリエイティブ AI は，ホラーとバトルの物語を自動生成できる人工知能システムの開発を行うプロジェクトである．プロジェクトメンバーは物語分析班，システム班，視聴覚班に分かれて作業を分担し，開発を行った．前期では物語自動生成システムのプロトタイプを開発した．後期では物語のプロットを自動生成し，そのプロットに基づく映像表現を 3DCG で視覚化することで，統合的な物語の生成を行うシステムを開発した．

Creative AI is a project to develop an artiﬁcial intelligence system that can automatically generate astory of horror and battle. The project members are divided into three groups of story analysis

角薫

Kaoru Sumi

山田 康貴

Kouki Yamada

松原 千里

松原 仁

Hitoshi Matsubara

袴田 翔

Sho Hakamada

Chisato Matsubara

・目的 Purpose

自動生成された多種多様なプロットに基づく魅力的な映像を鑑賞できるシステムを開発する．
To develop a system that enables us to watch appealing visualization
based on automatically generated various plots.

・人工知能って何？ What is AI?

人間の知的ふるまいをアルゴリズムとデータを用いるこgroup, system group and audiovisual group. These groups share the work and developed a system.とで機械的に再現したもの．

In the ﬁrst semester, we developed a prototype of story automatic generation system. In the second

Mechanical reproduction of human intellectual behavior by using

semester, we developed an integrated system for generating stories. This system automaticallyalgorithm and data.

generates plots and visualizes that with 3DCG.

・システム概要 System overview
このシステムは初期設定に基づき，物語を映像として自動生成する．This system automatically generates story as visualization based on an initial setting.

物語分析データ
Story analysis data

物語構造データベース
Story structure database

視聴覚班（カメラワーク & モデリング）

The audiovisual group(Camerawork & Modeling)

物語へ没入させるために，ビジュアル面を良くした．
具体的にはカメラワークの自動生成をしたりモデリングを行った．
To make audience immerse into the story, we improved the visual aspect.
Speciﬁcally, we made automatic generated camera work system and created a model.

物語分析班（バトル & ホラー）

The story analysis group(Battle & Horror)

物語を分析し，遷移確率モデルを作成した．
The stories were analyzed and their models of probability transitions were created.

プロット生成Plot generation

システム班（Python & Unity）

The system group(Python & Unity)

物語分析データをもとにプロットを自動生成するシステムを開発した．
生成されたプロットに基づいて映像化を行った．

映像化

The system that automatically generates plots based on story analysis data was developed.
Visualization was performed based on the generated plot.

Visualization

・今後の展望・活動

Future prospects, activities

ユーザーが，さらに物語へ没入できるように，インタラクティブ性を向上させる
魅力的な映像化を実現するために，より効果的なカメラワークを実装する
自動生成できる物語の種類を増やすために，アルゴリズムの改良やデータの増量を行う
第 50 回 情報処理学会エンタテインメントコンピューティング研究会 研究発表会で発表予定
北の四大学ビジネスプラン発表会 2018 に参加予定
秋葉原でのプロジェクト学習成果発表会に参加予定
制作したシステムの評価実験として，アンケート調査を実施する予定である．その結果と考察はグループ報告書及びプロジェクト報告書で公表する予定である

Improve interactivity so that the user is further absorbed in thestory.
Implement more eﬀective camerawork to realize appealingvisualization.
In order to increase the types of story that can be automaticallygenerated, improve algorithms and increase data.
Scheduled for presentation at the 50th SIGEC.
Plan to join business plan presentation 2018.
Plan to join project learning achievement presentation inAkihabara.
We will conduct a questionnaire survey as an evaluation
experiment of the created system. The results and discussions
will be made public in the group report and the project report.

吉田拓海 袴田翔

概要
目標

手法

物語の様々な展開を繋ぎ合わせて一つの物語を作る

物語の展開をカテゴリ分けし、一般的な展開を再構成する

分析作品
・ジョジョの奇妙な冒険
・ジャンル：アクション・アドベ
ンチャー
・媒体：コミック・Fate/stay night
・ジャンル：バトルロイヤル
・媒体：ゲーム
・採用理由
・一つの物語で複数の展開が存在する。
・映像化や派生作品の数の多さから一定上の評価があると考えたため。

・採用理由
・物語の展開が一つ一つ細かくまとめられているため。
・発行部数が一億部を超え、世界的にも人気があると判断したから。

カテゴリ分け

物語の展開

分析方法
作品を読む

展開を表形式で記述
カテゴリ分けカテゴリから物語の構造をモデル化

分析結果

各カテゴリのシーンの例

物語の流れと遷移確率の例
0.1
0.4

日
常0.3
0.3

変化

勝利

0.4
0.5

0.3

問
題 0.7
被 1
害戦
闘敗
北解決

日常変化

問題

主人公の説明

敵の出現

主人公、敵の優秀さに嫉妬

主人公の旅立ち主人公、起床主人公、敵に気が付く

主人公はアイテムを見つける

主人公、敵地に赴く

被害

戦闘

主人公、敵に襲撃される

主人公、敵と戦う(主劣勢)

主人公、敵に悪評を流される
敵、誰かを攫う

主人公、敵と戦う(主優勢)
主人公、敵と戦う(戦力拮抗)

城田晃希

三浦隆太郎

・概要

・活動内容

映画やアニメには、カメラワークを用いた場面の効果的な描写手段がある。
我々カメラ班は目的は生成された物語を効果的に描写するために、既存のカメラワークを分析し、生成された物語にあうように再現することである。

カメラ班の活動内容は、映画「呪怨」をはじめとしたおよそ3500カットに及ぶカメラワークの分析や、カメラワークに存在する意味合いの学習、カメラワークアルゴリズ
ムの構想及び実装である。

・カメラワークアルゴリズム

この場合ロングショットやミディアムクローズショットが選ばれる物語から取得する情報

分析結果ルールベース

誰が主体かこの人物が主体

ロングショットORシーンの意味合い

ホラーシーン

どの様なアクションをしているか移動している

２
その場にいる人数

生成されたカメラワーク

その場に２人いる場面全体が映るように引きで映すショット。
場面の雰囲気を伝えることに適しているが、登場人物の表情などは読み取れない。

ミディアムクローズショット
主体となる人物の胸の上から顔を映すショット。
主体となる人物の表情が鮮明に見てとれるが、場面全体の状態などは読み取れない。

場面の情報からルールベースで合致するものを検索する

・カメラワーク分析
分析した作品呪怨
新耳袋
鬼談百景
Fate/ZeroFate/Apocrypha
ジョジョの奇妙な冒険
第一部および第二部

中間発表までに分類した
8種類のカメラワーク・ロングショット
・フルショット・ミディアムロングショット
・バストアップショット
・ミディアムクローズショット
・クローズアップショット
・ズームアウトショット
・肩越しショット

カメラワークにはそれぞれに固有な意味合いがある。
適切なカメラワー
クは物語の理解をしやすくする。

渡邊 広基 松浦 史佳

概要
物語を分析し、システムが物語を生成・映像化するために必要なデータの抽出を行った。また、物語のプロットを分析し、プロットの機能を物語の時系列順に分類した。さらに、分析したデータをできるだけ抽象的な記号に変更した。これに加えて、記号化したデータに因子分析を行い、その結果から物語を生成するためのモデルを作成した。これらのデータを最終的にシステムが読み込めるようなデータ形式に変更を行い、表記ゆれやデータミスを調整した。

活動内容
因子分析について

分析手順

因子分析

１. 物語分割とプロット分類−物語を展開ごとに区切り、時系列順にプロットを分類

ある観測された変数がどのような潜在的な変数から影響を受けているか探る手法

２. プロット分類と登場人物の関係性
ー因子分析を行いプロット分類と登場人物の関係性を調査

３. プロット分類の遷移確率モデル−因子分析の結果を基にプロット分類の遷移をモデル化

その作品らしい物語の構造を明らかに

因子分析の結果

プロット分類導入

登場人物の紹介や生い立ちを説明し、主人公に何らかの目的・謎が提示される
語り手

物語に登場する人物以外の人が、導入部を説明する

行動

登場人物が、人物の紹介や生い立ちを説明し、目的・謎のために行動する現象

登場人物が、人物の紹介や生い立ちを説明し、目的・謎が提示される

予告

登場人物の周辺に何らかの現象が起こり、霊の出現を予感させる
直接

霊が登場人物に姿を現す

間接

霊が姿を現さず、その場所の現象で出現を予感させる

出現

霊が出現し、登場人物に何らかの行動を起こす
自力

霊が登場人物に行動を起こし、自らの目的を達成しようとする

依頼

霊が登場人物に依頼をし、自らの目的を達成しようとする

解決行動

登場人物が霊の行動に応じてとる行動
受容

霊の行動・要求を受け入れる反抗

霊の行動・要求を受け入れず、反抗する

パニック 霊の行動・要求に対して、パニックを起こす
成功

解決行動が成功する

失敗

解決行動が失敗する

解説

因子1

因子2

主人公が女性で霊が化け物だと締めは後日談になりやすい。

予告が直接だと、解決行動は反抗が多く、成功しやすい。

出現した例に対する生い立ちや目的などの説明
あり
なし

締め

出現した霊に対して、生い立ちや目的などが明かされる
出現した霊に対して、生い立ちや目的などが明かされない物語の締めくくり

後日談

一連の出来事の後、どのようになったかについての説明

増長

一連の出来事を、より強調して伝えようとする

登場人物の属性

主人公の属性幽霊の属性

性別 ( 男 / 女 ) 、世代 ( 子供 / 大人 )形態 ( 人 / 化け物 / 場所物 )遷移確率モデルの一例
語り手

0.62
0.38

行動

0.5
0.5

システムがデータを読み込める形式にするため、各行動単位で、場所、主体、セリフ、役割、ポーズ、方向、位置、表情、効果の9つの情報を付与した。

直接
間接

0.62

現象

データ形式

0.38

主人公の性別や世代、霊の形態によって値が変化

テキストの組み合わせ…248,832 通り

視聴覚班 : モデリング

田中瑞穂

松原千里

・概要

視聴覚班では、物語を視覚的に表現するための素材制作を行った。素材とは、主に３D モデルと３D モデルのモーションである。目標は、自分たちのオリジナルのモデルに表情を実装し表現の幅を広げること、モデルやモーションを用いて、自動生成される物語の場面に適した表現を実現させることである。

・活動内容

メインとなるモデルの制作は Blender で、モーションの制作などは MMD で行った。各ソフトの使い方の学習と表情の分析を並行して行い、残りは実際の制作期間に充てた。

・表情の実装基本となる無表情という表情をはじめ、喜びや怒り悲しみなど合計11 種類の表情と、汗や涙など 9 通りの付属品を組み合わせた 99通りの表情が実装できた。
モデル自身の持つモーフという自然なポリゴンの移動によって、瞬きや口の開閉、眉の上げ下げを実装した。それらの移動具合を調整してモデルに表情をつけ、モーションのファイルとして保存した。

・モーションの実装

日常シーン用 15 種、戦闘シーン用 14 種、計 29 種類のモーションを制作した。人物モデルの大きさが大人と子供で異なるため、モーションも大人用と子供用の 2 種類を用意している。また武器が手の中から飛び出ないように、武器用のモーションを用意してある。
なお今回のシステムは紙芝居のように表現するため、アニメーションのように動くことはない。

・人物

11 種類の人物モデルを制作した。
制作には 3D モデリングを行うための blender と、Pmx 形式のモデルにボーンやモーフを実装するための PmxEditer を使用している。

モーフと呼ばれる自然な変形が可能になったため、昨年度の課題であった表情の実装に成功している。

・武器

12 種類の武器モデル、その他小物各種を制作した。人物モデルと同じツールを用いて制作している。
武器の持ち手となる部分の太さを槍や剣などの種類ごとに統一することで、ポーズをとらせたときの手への貫通をなくすことに成功している。

・ステージ

６種類のステージを制作した。
Unity 上で 3D モデルを配置する形で制作している。
Unity 上でステージの調整を行うことにより、より詳細なライティングの設定などを行うことが出来た。
素材は主にフリーで配布されているものを活用している。

鈴木諒輔 寺島啓悟 山田康貴

概要システム班Pythonでは、物語分析班が作成した物語分析データから物語構造データベースを構築した。さらに、データベースから定めたフォーマットに従って、プロットを生成する。また、初期設定を行うためのGUIやプロットを自動生成するアルゴリズムを物語分析班と協同で考案した。

物語分析データ

Excelファイル

物語構造データベース

プロット

dbファイルtxtファイル

ホラー
シーン1

シーン2

シーン3(主人公)を太郎に変換
シーン5

シーン4

セリフ中の登場人物名をプレイヤー指定の名前に変換● 登場人物の属性と名前はプレイヤーが選択● 選択した登場人物によって物語が変化

シーン6

シーン7

シーン8

シーン9

シーン10

シーン11

● 物語分析班が用意したデータを元にシーンデータの結びつきを自動で導出● 分岐が実装されているためエンディングがそれぞれ用意されている

バトル
戦闘シミュレーションの全体像

戦闘の形式● 物語に戦闘シーンを組み込むために、戦闘シミュレーションを実装した● 主人公と敵の情報を与える ⇒ 戦闘の過程と結果をシミュレーション ⇒ 出力
● 出力されたデータを物語データとして用いることで、戦闘の表現を行っている● 戦闘の形式は、分析データに基づくように設計している

高橋翔太

津沢慎吾

佐々木奨之

南部太雅

概要
システム班Unity では、生成された物語をゲームエンジンであるUnity を用いて映像化する機構を作成した。今回システム班Unity は、モデル班がBlenderで制作したキャラクターとシステム班Pythonが生成した物語データをUnity 上で統合した。

システムの構成
Unity

物語データ
ストーリー（文章）

読み込み

スクリプト

キャラクター情報

マネージャー

シーン情報

呼び出し

etc

UIレイヤー

3Dレイヤー表示

カメラ

物語データの構成

物語データの取得

システム班Pythonから送られてくるストーリー情報やキャラクター情報、シーン情報などの物語データを読み込む。

物語データを読み込み、マネージャークラスが取得した情報に対応する各レイヤーにデータを渡す。

3D空間

ある日...二人の人間が画面での動き
画面上ではキャラクターの３Dデータとテキストウィンドウ、ステージ、状況に合ったカメラワークを出力する。

出力画面
p：場所
r：主体
a：ポーズ
d：向き
f：立ち位置
e：表情
c：選択肢
etc
Scene、Cutという構造に切り分け、それぞれの内容を順番に画面に表示する仕組みになっている。Sceneとは物語の中の一連の流れとして定義されており、物語を再生するにあたっての分解できない一つの単位である。CutとはScene内に複数属しているもので、キャラクターの配置や動き、テキスト等の情報が含まれた一画面を構成する要素の集合である。プロットから読み込んだ情報をもとにSceneを構成し、それをユーザーの操作ごとに画面に出力していくことで物語を表現している。