ロボマインド・プロジェクト、第102弾!
こんにちは、ロボマインドの田方です。
前回、最近のゲームエンジンはスゴイって話しましたよね。
ホント、最近の3DCGって、本物と見分けがつかないんですよ。
たとえば、これ、見てください。
もう、CGの不自然さが、全然ないですよね。
前回、いかに本物に近づけるかは、ポリゴンの数が重要だっていいました。
ポリゴンって、表面の形を作ってる小さい三角形のことで、最近のゲームは10億ポリゴンもあるって話しました。
でも、顔の表情とか、普段見慣れてるものは、ちょっとでも不自然な動きになると、すぐにCGやってバレるんです。
でも、さっきのCG、そんな不自然さもなかったですよね。
重要なのは、表面のポリゴンだけじゃなくて、骨格まで再現してるってことなんです。
表面だけで顔の表情を変化させても、なめらかすぎて、不自然に感じるんですよ。
骨格を作って、その上に、きれいな表面をかぶせると、初めて、人間と見分けがつかないぐらいのCGが創れるんですよ。
って、CGの話をしたいんじゃないですよ。
こっからですよ、本題は。
見た目が人間そっくりに作れるなら、中身、つまり心も創れるはずですよね。
見た目は、目で判断します。
じゃぁ、相手に心があるかって、どうやって判断するんでしょう?
それは、会話です。
AIスピーカーとか、iPhoneのSiriとか、ペッパー君とか、会話AIはいろいろあります。
でも、実際に話すと、人間じゃないって、すぐに分かりますよね。
じゃぁ、それは、なんでわかるんでしょう?
それは、話が通じてないって感じるからです。
そこで、僕は、大きな発見をしました。
相手の言いたいことって、相手が感じた感情だって発見です。
そこで、マインド・エンジンでは、相手の言いたいことを感情に落とし込むことで、自然な会話を実現しようとしてるんです。
ということは、感情を表す単語がいっぱいあれば、それだけ、人間らしくなりそうです。
でも、単語を増やしただけじゃ、ダメなんですよ。
3DCGとおんなじです。
ポリゴンの数を増やしても、自然な表情にならないのと同じです。
重要なのは、骨格です。
つまり、表面に表れるのが感情を表す言葉だとすると、その骨格に相当するものを作らないといけないわけです。
今回のテーマは、感情の骨格です。
第100回、「待たせたな。これが心のプログラムだ」のマインド・エンジンのデモは、感情の一つとして、恐怖を取り上げました。
そこで、恐怖を中心に感情について考えてみたんですよ。
そしたら、なんか、変な感情が出てきたんですよ。
ちょっと、ややこしい話になるんで、順番に説明していきますよ。
それでは、恐怖の感情を紐解いていきますよ。
恐怖から、感情の骨格が何かを考えていきます。
まず、恐怖の本質ってなんでしょう?
それは、生命の危機です。
命に関わるかどうかって、軸が必要なんです。
その延長線上に生命の危機があるとか、死を連想させるときに来るのが恐怖なんです。
この、命に関わるかどうかって軸、これこそが、感情の骨格になるんです。
たとえば、高いところが怖いっていうのは、落ちたら死ぬかもしれないって思うからですよね。
想像の延長線上に死が存在するから恐怖を感じるわけです。
交通事故やケガを怖いと感じるのも同じですよね。
ガンとかの病気が怖いのも、死ぬかもしれないって思うからです。
それから、お化けとか幽霊が怖いのも、これで説明がつきます。
幽霊って、死んだ人ですよね。
つまり、死を想像させるものです。
想像の延長線上に死が存在するから、恐怖の感情がでるわけです。
これが、感情の骨格です。
会話で重要なのは、相手に発生した感情です。
感情は、たぶん、何十とか、何百ってあると思うんですよ。
イメージするとすれば、感情空間ってのがあるとして、感情を表す言葉は、その感情空間の一点なわけです。
感情空間は、X軸とかY軸で構成されてて、感情の一点は、X軸、Y軸で定義されるわけです。
このX軸、Y軸が、感情の骨格ってわけです。
だから、まず最初にすべきなのは、感情の軸を決定することなんです。
例えば、女の子のロボットが100階建てのビルの屋上に立っているとします。
手すりもない屋上で、その端に立ったとします。
落ちたら、木っ端みじんです。
そこで、「なんてキレイな青空なんでしょう」とか言ったらおかしいですよね。
「風が強くて気持ちいい」とか言ったら、心のプログラムにバグがあるって思いますよね。
その状況で出てくる言葉としたら「キャー、怖い」とかじゃないとだめなんですよ。
使うべき感情の軸は、生命の危機なんですよ。
つまり、感情の軸には、優先順位があるわけです。
何をしようとしてるかわかってきましたか?
今、心のプログラムを設計しようとしてるんです。
まだ、この分野は誰もやっていません。
やってたとしても、ペッパー君の感情の環ぐらいです。
ペッパー君の感情は、全ての感情の言葉を円形に並べただけです。
さっきも言いましたけど、重要なのは、感情の言葉じゃなくて、感情空間なんです。
感情空間の中に、感情を表す言葉が配置されるわけです。
先に決めないといけないのは、感情空間を構成する軸です。
その軸の一つが、生命の危機です。
それでは、マインド・エンジンのデモを見ながら、感情の軸から感情の言葉をだしていきます。
マインド・エンジンでは、子ブタさんは、オオカミが登場すると、すぐに恐怖の感情がでましたよね。
これは、オオカミはブタを食べるって知識を持たせてたからです。
状況が変化すると、感情の軸を当てはめて感情が発生するか判断するんですけど、最優先で判断する軸が生命の危機って軸です。
オオカミがいるって状況と、オオカミはブタを食べるって知識から、ブタは食べられる、ブタの命が危ないって推測できるわけです。
軸が決まれば、あとは、恐怖を構成する要素から具体的な数値を計算するわけです。
ブタとオオカミとの距離とか、ブタとオオカミとの間に到達経路があるかってことです。
最初にオオカミが出現したとき、距離が36.9mで、恐怖が6.3とか計算されるわけです。
次に、この恐怖を下げる行動を探索して、大岩の後ろとか、小屋の中とかを考えるわけです。
すると、小屋の中が恐怖の数値が一番低くなったわけです。
ここで、「-2.7」となってますよね。
これは、オオカミが登場したときに比べて、小屋の中に隠れたときは、2.7恐怖が下がったことを表しています。
この感情を言葉で表現すると、「安堵」となるわけです。
問題は、ここからです。
大岩の後ろに隠れた場合は、すぐに見つかってオオカミに食べられてしまうので、恐怖は増加します。「+1.8」恐怖が増えました。
恐怖が下がった場合は、「安堵」でしたよね。
じゃぁ、恐怖が増えた場合は、何て言うんでしょう?
これが、対応する言葉がないんですよ。
無理やり作るとすれば、恐怖が増えるから「増恐」とでも言うんでしょうか?
でも、対応する言葉がないからと言って、そんな感情がないわけではないですよね。
怖かった物が、より怖くなるってこと、ありますしね。
こうやって、感情の軸で感情空間を整理していくと、まだ、言葉が存在しない感情がいっぱい見つかるはずです。
だから、感情を表す言葉を集めて分析しても、あまり意味がないんです。
やらないといけないのは、その感情の言葉が出てきた感情空間を作り出すことなんです。
さて、こうやって言葉を整理してると、以前、動画で語った内容を思い出しました。
それは、第14回「ヴィトゲンシュタイン論理哲学論考 v.s. 松本人志」です。
ヴィトゲンシュタインは、言語を論理的に分析してて、同じことをしてたのが松本人志だって話でした。
どういうことかって言うと、当時、松ちゃんは、いろんな言葉を次々に生み出してましてね。有名なのに「逆切れ」って言葉があります。
これは、怒られてる人が、逆に、起こり返すって状況です。
「なんで、俺ばっかり怒られなあかんねん」とかって怒り返してる人のことです。
たしかに、こんな場面、今まで、何度も見た記憶があります。
でも、それを表現する言葉ってなかったんです。
それに、「逆切れ」って名付けたのが松ちゃんなんです。
頭の中の感情空間に、確実に存在したけど、まだ、名付けられてなかった感情なので、「それ、ぴったり」って、みんな思ったんですよ。
だから、一時の流行語で終わるんじゃなくて、今でも、普通に使われる言葉として定着してるわけです。
他にも、「ドヤ顔」ってのも、松ちゃんが作った言葉で有名です。
これなんか、感情の軸で数値化して分析できそうです。
なにか、みんなが「おっ」と思うような、ちょっとしたことをその人がしたわけです。
感情軸で表すと、自慢軸とか、誇り軸とかあって、その数値が7以上になるとかです。
それを、隠すことなく表情に出したとき、その表情が「ドヤ顔」となりそうです。
どうです。
こうやって、感情軸を使っていかにも人間らしい感情を表現できそうですよね。
本物そっくりのCGで、ドヤ顔したり、逆切れしたりするAIキャラクターがいたら、もう、人間と区別がつかなくなりそうです。
ホンマに、心があると思ってしまいます。
それができるのが、マインド・エンジンってわけです。
これからも、マインド・エンジンに、人間っぽい感情を一つずつ実装していきますよ。
興味があれば、ぜひ、チャンネル登録、お願いしますね。
それでは、次回も、お楽しみに!