卒業制作「ココロネ」 システム解説編

はじめまして。牛さんと申します。
普段はデータサイエンティストとして、社内の分析環境の整備やAIの作成などを行なっています。

この度、友人のmorimotoさんの作品をエンジニアとしてお手伝いさせていただきました。

この記事ではココロネがどのようにして成長するのか、という問いに開発者の視点からお答えできればと思っております。
先に、上の記事を読んでいただいた方がわかりやすいかもしれません。



ココロネとは?

詳しくはデザイン編に譲りますが、この作品は、以下のようなコンセプトのもとデザインされました。

ココロネは、来場者の心をご飯にして、リアルタイムで成長していきます。
来場者にも展示に参加してもらうことで、来場者と一緒にココロネを研究している気持ちになってもらおうというコンセプトです。

https://note.com/meimorimoto/n/n13c1e1212109?magazine_key=m9147abaa64f1

私自身、データサイエンティストとして日々AIの開発に携わっています。昨今の生成系AIの発展の中で、AIの新しい役割として人と人のつながりに焦点を当てた非常に面白い試みだと感じ、お手伝いさせていただきました。

ココロネはどのようにして成長しているのか?


ココロネの形体

ココロネは来場者の感情によって、様々な形状に進化します。
この章では、この進化がどの様に実現されているのかについて解説します。

次の画像はココロネシステムの大まかな流れを示したものになります。
この流れに沿って各段階を説明します。

デザイン編より引用

マイクで音声入力

まず初めに、来場者に「今日世界が終わるとしたら何をする?」という質問を投げかけます。
来場者にはこの質問に自分の声で答えていただき、システム上でこの音声を録音します。

後に説明しますが、本システムはUnityというゲームエンジンを用いて開発されています。
音声の録音も、Unity上で行なっています

AIが感情を分析

本システムでは、ユーザーローカル様が開発及び提供されている「人物分析AI 」を利用させていただいています。

人物分析AIは、入力された音声に以下の7種類の感情がどれくらいの割合で含まれているのかを分析してくれます。

  1. angry (怒り)

  2. disgust (嫌悪)

  3. fear (恐怖)

  4. happy (喜び)

  5. sad (悲哀)

  6. surprise (驚き)

  7. neutral (平静)

この結果を以下の5感情に圧縮して、最も強い感情に応じてココロネを成長させています。

Angry(怒り) / Sad(悲しみ) / Happy(喜び) / Fear(恐怖) / Surprised(驚き)

結果を成長に反映

ココロネはLive2Dという技術を用いて動かしています。
もしかすると、Vtuberなどの文脈で聞いたことがある方も多いかもしれませんね。

Live2Dとは、イラストを自由に動かすことができる技術です。

ココロネのLive2Dモデルは6種類の体、5種類の顔、5種類の装飾品が一つのモデルデータの中に入っています。これらのパーツを進化モーションとともに表示非表示を切り替えることで、成長を表現しています。

使用した技術について

この章では、それぞれの技術がなぜ選択されたのかについて説明していきます。
本システムでは主に以下の様な技術を用いて開発されています。

  • Unity

    • 主にUIの実装や大まかなロジックの実装に使用

  • 人物分析AI

    • 音声から感情を分析するために使用

  • Live2D

    • ココロネのモーションの実現や、ココロネの進化の表現などに使用

Unity

Unityは基本無料で利用できるゲームエンジンです。

ゲームエンジンとは、「ボタンを押したら処理が走る」という様などんなゲームにも必要であろう基本的な機能がまとまった開発環境のことです。

この作品はゲームなのか?なぜココロネの開発にゲームエンジンを利用したのか?と疑問に思うことかと思います。

結論から申し上げれば、この作品はゲームでないと思います。
そんな中でUnityを利用した主な理由は2つです。

1つ目は、使い慣れていたということです。

元々morimotoさんとUnityを用いてゲームを共同開発した経験があったため、互いに勝手がわかっていました。

2つ目は、必要な機能が全て揃っていたことです。

Unityは非常に高機能なゲームエンジンであり、FPSから恋愛ゲームまで幅広く利用されています。
実際にみなさんがプレイしたことのあるゲームの中にも、調べてみるとUnityで開発されたゲームがあると思います。
このように広い要件に応えることができるゲームエンジンであるため、本作品の様に多少イレギュラーな用途でも十分に利用することができました。

さらにUnityはLive2Dとの相性が良いため、この作品に利用するにはぴったりでした。

人物分析AI

人物分析AIはユーザーローカル様が開発・提供されているAIです。

この作品では録音された音声から感情を抽出するために利用しています。

そもそもこの作品の構想段階では、分析方法の候補としては以下の3パターンを考えていました。

  1. 自分でAIを作成する。

  2. 既存の学習済みAIを用いて会場に設置してあるマシン内で推論を行う

  3. 外部サービスを利用する

ただし、1番と2番を実現するには、非常に強力なマシンを用意する必要があります。金銭的な面でも、できることならAIの推論処理は外部に任せたいというのが本音でした。

そこで3番に該当するサービスを探していたところ、人物分析AIを発見しました。
このサービスはインターネットに繋がってさえいれば、マシンのスペックに関係なく分析を行えるため、この作品との相性が良かったのです。

Live2D

Live2Dはイラストを自由に動かすことができるツールです。
ゲームだけにとどまらず、Vtuberやアニメーションなど幅広い分野で利用されています。

本作品ではココロネを動かすために利用しています。

ココロネを動かすだけであれば、動画を作成するといった方法もあります。

しかし、ココロネは体6種類、顔5種類、装飾品5種類のパーツを感情分析の結果に応じて組み合わせる必要があります。
結果として、150種類以上の形態をとるため、それぞれの形態について動画を作成するなどの方法は現実的ではありませんでした。


ココロネの取りうる形体

Live2DはUnityと非常に相性がよく、特別難しいことをしなくともパーツの表示非表示の切り替えだけで見た目を変えることができます。
3Dモデルを作成することも考えたのですが、二人とも3Dモデルの経験がほぼなかったため、Live2Dを選択しました。

まとめ

ココロネはみなさんの声から感情を読み取り、その感情に応じて進化を行います。
その裏側ではUnity・人物分析AI・Live2Dが連携して動くことでココロネが成長しているのです。

終わりに

ChatGPTをはじめとする生成系AIの台頭によって、様々なAIを用いたサービスが登場してきました。
しかし、それらの多くは一人の利用者の課題を解決する方向に向いています。
本作品は、コミュニケーションツールとしてAIを利用するという新しい可能性を見出した非常に興味深い作品だと思っています。

このような新たな試みに関わることができて、非常に楽しかったです。



この記事が気に入ったらサポートをしてみませんか?