![見出し画像](https://assets.st-note.com/production/uploads/images/94056881/rectangle_large_type_2_51679f0d784081934799f9f3be01d8b7.png?width=1200)
キャラクター人工知能論Ⅰ後期
始めに…
この記事は、clusterユーザーと創造する非公式 Advent Calendar 2022 - Adventarの12月25日の記事となります。
このような機会をいただきましたるーしっどさんに感謝申し上げます。
昨日は、clusterのカメラネコことkomatsuさんによる「マルチカメラ配信をやってみた話」でした。記事の中で私のイベントについてもご紹介いただきました。
ありがとうございます。
さて、本日は、私がたびたびclusterで行っている「人工知能に言葉を教えよう!」と言うイベントに関するお話です。
よろしくお願い致します。
序文
近頃インターネットでよく見る言葉、「人工知能ドブ」。
意味や元ネタを知らずに使っている方も多いのでは?
インターネットネタと言えばclusterユーザーと創造する非公式 Advent Calendar 2022 - Adventar
折角なので調べてみました!
人工知能ドブはVRSNS「cluster」でイベント過去4回ほどイベントを行っているようです!
【終了】人工知能ドブに言葉を教えよう!【終了】|メタバースプラットフォーム cluster(クラスター)
【終了】人工知能ドブに言葉を教えよう!vol.2【終了】|メタバースプラットフォーム cluster(クラスター)
【終了】人工知能ドブに言葉を教えよう!【終了】|メタバースプラットフォーム cluster(クラスター)
【終了】人工知能ドブに言葉を教えよう!【終了】|メタバースプラットフォーム cluster(クラスター)
イベントの詳細を見ると、あまり賢くないお喋り人工知能のようですね!
しかし、どれも今視聴する事は出来ないようです…残念!
気を取り直して調べなおしてみるとこんなものが!
人工知能ドブはどうやらYoutubeで配信をしたり、動画を出したりしているようです!
これなら今でも視聴できますね!
ただ、最近はあんまりYoutubeで活動を精力的に行ってはいないようです…。
いかがでしたか?このブログが気に入ったなら是非!この下にある本文を読んでくださいね!
それではみなさん!良いclusterユーザーと創造する非公式 Advent Calendar 2022 - Adventarを!
この物語はあらかたフィクションである。
オハコンハロチャオ、clusterユーザーの熱血プータローです。
私が小さい頃、ちょうどインターネットが急速に普及した時代という事もあり、「デジモン」、「超電光人グリッドマン」、「ウェブダイバー」など、コンピュータの中に住んでいる知的生命体と友情を結ぶSFアニメや特撮が盛り上がっていた時期でした。
子供時代に見た夢の一つ「自分で作ったロボットと喋ってみる」に、アラサーに王手をかけられたこのタイミングで挑戦してみたいと思います。
序文を読んでいただければ、人工知能ドブの事について大概の事は理解できたかと思います。
人工知能ドブを一文で説明すると、「原始的な自然言語処理を搭載したNPC」です。
NPC(Non Player Character)というと、ゲームのキャラクターの事ですが、彼らは決められた文章しか喋る事が出来ません。
この文章の部分に自然言語処理を使えば、その場で文章を考えて人間と同じようにアニメやゲームのキャラクターと会話が出来るのではないか?
UnityとBlenderとPythonさえあれば作れそうじゃないか?と考えたのが制作のきっかけでした。
第一話:会話が出来るって何なんだ?の巻
会話型人工知能を作るにあたり、まず「会話とはいったい何なのか?」という切り口から考える事にしました。
いったい何なのか?という答えは、私の中で明確な定義があります。
「コミュニケーションにおける手段の一つ」
である。という事です。
ここで安易に結論を出してしまった事で、私の思考は暗礁に乗り上げてしまいます。
会話型人工知能というコンセプトの時点で、手段の目的化になっているのではないか?と
どんなに高度な自然言語処理能力を実装したとしても、「会話(言葉)を使って何をしたいのか?」というのをちゃんと考えないと、何かが破綻してしまうという漠然な不安を感じました。
会話がコミュニケーションの手段なのだとしたら、その目的であるコミュニケーションについて考えなければなりません。
コミュニケーションの意味は、感情や意思、情報を受け取ったり伝えたりという事です。
会話を始めとして、メールや、手紙、電話などがそれに相当するでしょう。
コミュニケーションの定義の範囲を広げるとこんなものが相当します。
スポーツ
ボードゲーム
カードゲーム
さて、これらに共通するものはなんでしょう?
それは、誰かのアクションに対して、自分の次のアクションが変わるという事です。
誰かの意思や感情、情報が伝わると、それに対して自分の感情や意思、情報が変化すると言ってもいいかもしれません。
なんとなく、コミュニケーションの本質に近づいてきた気がしますね。
という事は、こんなものもコミュニケーションに入るのではないでしょうか?
本
ラジオ
新聞
テレビ
インターネット。
マスメディアと呼ばれるものです。
情報が伝わる事で自分の心が変化する。という点ではコミュニケーションのような気がします。
ここで、気になる言葉が出てきました。マスメディアという言葉です。
メディアとは情報を記録、伝達、保存などに用いられる装置の事です。
マスとは大衆の事。
つまり、大勢の人に情報を伝達させるものを総じて、マスメディアと言います。
マスコミ(マスコミュニケーション)の方が馴染み深い言葉かもしれませんね。(ここではほぼ同義とします。)
コミュニケーションは人間社会に必要不可欠ですが、それとは裏腹にマスコミと言う言葉には、多少悪い言葉のイメージがあります。
「偏向報道」
ネガティブなイメージの正体は十中八九こいつでしょう。
偏向報道をかみ砕いて説明すると、「自分と同じ意見を伝える。もしくは、自分とは違う意見を伝えない為に、意図的に情報操作をしてニュースにする事」です。
マスメディアは前述した通り、一度に沢山の人に同じ情報を伝えられるという特徴があり、情報伝達という観点から絶大な力を持っています。
情報を伝えたい人、情報が欲しい人にとってはこの上なく便利です。この点と凄く相性が良すぎるが故の弊害だと思います。
何事も悪用濫用は厳禁ですが、この「意図的に情報操作をする」という所に、何か引っかかるものがありました。
こちらはちゃんと伝えたつもりなのに、伝わってなかった。もしくは間違って伝わってしまった等、日常の中でも、情報の伝達ミスが沢山あると思います。
何を言おうが、相手がちゃんとその意図を理解しないとコミュニケーションは成立出来ないという事ですね。
そのことを踏まえると、コミュニケーションのキモは、話し手がどういった情報を伝えたのか?以上に、聞き手がどういう情報を手に入れたとか、どういう気持ちになったのか?と言うのが大事なのかもしれません。
これを会話型人工知能に当てはめると、
実際に自然な会話が出来るロボットを用意するのではなく、その体験の中で、ちゃんと「あぁ私は今、このロボットと会話しているんだな。」という気持ちにさせる。という事になります。
今回は、「会話が出来る人工知能」ではなく「人工知能とコミュニケーションを取っている気分になれる」というコンセプトで制作をしていく事に決まりました。
第二話:爆誕!ポンコツ会話エンジン!の巻
さて、ここまで後回しとなりましたが、自然言語処理のプログラムを用意しなければ話が始まりません。
という訳で実際に作っていきます。
今回、自然言語処理プログラムの事は会話エンジンと呼ぶことにしました。なんかカッコいいからですね。
会話のエンジンにはマルコフ連鎖を主に使う事にしました。
マルコフ連鎖についてはちゃんと説明すると長くなるので割愛します。
アンドレイ・マルコフさんという数学が得意ななおじさんが作った便利な数式です。
![](https://assets.st-note.com/img/1671855963083-QIwKUvmnBX.jpg?width=1200)
これによって、文字列を数式の様に扱えるので、コンピュータで計算しやすくなりました
Python初挑戦という事もあり、四苦八苦しながら会話エンジンを作る事に成功しましたが、やはり性能は低くなってしまいました。
勉強不足だったと反省しています。
気を取り直して、実際の会話のログを見てみましょう。
(>が私が入力した文章。dobu>が会話エンジンが出力した文章です。)
> こんにちは
dobu> こんにちは。ペンギンガンダムです。
> かわいい
dobu> 涙がちょちょ切れます
> 涙出るんですか?
dobu> さっきの涙ですが
> はい
dobu> モールス信号やってください
> ぷぷーぷぷ、ぷーぷぷぷー
dobu> キン肉マンスーパーフェニックスって実はいいヤツです
> 勿論知ってますよ
dobu> うーむ
> 他にも情報を教えて下さい
dobu> 他にポイズン無いですよ
> 毒電波?
dobu> 消毒もちゃんとやった方が良いですか?
> やっておきましょう
dobu> 腕六本あったら阿修羅バスター出来ます
> リギングが面倒なんで勘弁してください
dobu> しんがりは荷が重いので勘弁してください
> そう言えば最近何かありましたか?
dobu> 全然違う話だ…
> 話広がらなさそうだったので
dobu> 話変えましょう
> 賢い
dobu> 塗り絵しましょう
> 絵描くの苦手なんですよね
dobu> 流石にキレそう
> やっぱり描きます
dobu> 北極のペンギン
> 北極にペンギンいませんよ
dobu> ペンギンコンテスト?
> 今度開きましょう
dobu> 昨日の配信見ました?
> みました
dobu> タイガー・ジェット・シン
> 伝説です
dobu> いまや名前が独り歩きし続ける伝説の存在になったのは驚きです
> 実力も相当でしたよ
dobu> いませんでした
> そうですか
dobu> 非情に残念です
> そう言えば
dobu> 新しい言葉覚えました
> 教えて下さい
dobu> アンパン
> 賢い
dobu> マイクラやりたくないですか?
> 超やりたいです
dobu> 得意です
> もしやる時は頼りにしてます
dobu> 疲れてきました。
> 一旦休憩にしましょう
dobu> 休憩タイム
> それではさようなら
dobu> ザンギエフは投げキャラ
記録はここで終わっている…。
こんなんじゃ会話にならないよ~;;
気を取り直して、会話エンジンの特徴を考察していきましょう。
基本的にこっちのいう事は聞いてくれない。
たまーに聞いてくれる。
基本的に脈絡のない言葉を発する。
たまーに文脈が理解できる。
以上。
よわよわ会話エンジンでは、会話を成立させるのが難しいという事が分かりました。
ですが、根気強く何回か会話を重ねて行くうちに、会話のコツもちょっと見えてきました。
話を聞いてあげる事。
こっちが会話の主導権を握らず、このバカロボットに好きなだけ話させてあげる事。
こっちがなるべく相槌を打ってあげると会話のラリーが長く続く。
ここだけ見るとなんか対人のコミュニケーション講座みたいですね。
さて、困ったことに現在の私の知識と技術では、これくらいの賢さのエンジンを作るのが限界です。これ以上賢くは出来ません。
ですので、この理不尽ともいえるコミュニケーションで、どうお客さんを満足させるのか?と言うのがカギになります。
かなり難しそうです。
この嘆かわしい現状と、高すぎる目標を単純化させるために、数学の式にしてみましょう。
X=理不尽なコミュニケーション。
Y=????
Z=お客さんの満足
ちょっと乱暴な気はしますが、X×Y=Zとします!
Yを求めればいいだけの話になりました。
気休め程度ですが、これだけなら楽になります。
人間が、日常の中で理不尽なコミュニケーションを強いられているにも関わらずそれでも満足している相手を探す長い長い旅が始まりました。
それでは行ってきます。
![](https://assets.st-note.com/img/1671849260370-Qqqkxlnqvn.jpg?width=1200)
ただいま。答えが見つかりました。
![](https://assets.st-note.com/img/1671849592951-eguGMkLvRE.jpg?width=1200)
第三話:Y=ネコ!の巻
![](https://assets.st-note.com/img/1671850207121-Cr5gobLcWk.jpg?width=1200)
ネコです。
ネコは自由気ままで、人間の都合で動かない時間の方が長く、信頼を勝ち取るには根気良くお世話をしなければなりません。
ポンコツ会話エンジンとネコの共通点が見えてきました。ネコはUXが最悪と言わざるを得ません。
そこまでして何故人間は最悪なUXを持つネコとコミュニケーションを取りたいのか?それはネコのUIがすぐれているからです。
猫の良い点として第一に上げられるものは、見てくれが可愛いという事です。
語るまでもありません。キャラクターデザインが神なのです。
![](https://assets.st-note.com/img/1671850524583-DczVrfDZ5Z.jpg?width=1200)
強引にゲームで例えるとすると、初心者お断りでゲーム性もよろしくないのですが、それを覆すほどにとにかくキャラクターがめちゃくちゃ可愛い。というゲームになります。
このゲームはちょっと気になるかも…。
そうなると、ネコのコミュニケーションが難しいという特徴は、ネガティブなイメージから一転、自由気ままというポジティブな言葉で飾られるようになるはずです。
さらにもう一つ、最悪なUXを持つネコの人気を絶大なものにする要素があります。
ネコは人語を話さない。
という事です。
アタリマエの事過ぎてお前は一体何を言っているんだ?と心配になりそうですが、ここはマジでデカいです。
よくよく考えてみれば人間は、ネコに向かって言葉が通じない事を前提としてコミュニケーションを取っているのです。
勿論言葉が通じたように感じる瞬間は沢山あります。実際に通じていることも多々あるでしょう。
ですが、ここで大事なのは、「言葉が通じない前提で」という所です。
色眼鏡、バイアス、レッテル、先入観、偏見。
色んな類義語がありますがこの辺の概念は、コミュニケーションを取るうえでめちゃめちゃ重要な要素な気がします。
言葉が通じないものだと思い込んでいるから、名前を呼んでこっちにきてくれた時がとても嬉しい。
もし、名前を呼んだ時に来なくても「まぁネコだしな」で納得してしまう。
ネコから受ける理不尽は許してしまうというこの不思議な現象は、常に念頭に置かなければいけないですね。
ここまでの事を踏まえて、一つ実験をしてみましょう。
まずはこちらの文章をご覧ください。かなり乱暴な言葉が入っているので、読み飛ばしてもらっても構いません。
ホントクソな質問だよな。
お前●んだ方がいいよ。
肉の写真をアップしてるのはインスタで和牛を広めたいからってんの見てわからない? お前クソ?
そもそもふつうに野菜は好きだからたくさん食べてるけどインスタでそれをアップしてもクソの役にも立たねーだろ。
それを野菜とかを子供の頃嫌いだっただろうお前みたいなやつらに邪智されたくないね。
おれは美味しい野菜を子供の頃からたくさん食べててむしろ肉より野菜の方が好きだった。
それは食ってた肉がまずかったからだ。
それを良薬口に苦し的な文脈で野菜を食べた方が健康ですよって上からマウントでクソコメント送るなボケ。二度と来るな
何だか、凄く理不尽に怒られているようで嫌な気持ちになりますよね。
続いては、この文章に画像を付けてみましょう。今度は、どういう印象を受けるでしょうか?
![](https://assets.st-note.com/img/1671852937670-ZFI5AafzEB.jpg?width=1200)
お前●んだ方がいいよ。
肉の写真をアップしてるのはインスタで和牛を広めたいからってんの見てわからない?お前クソ?
そもそもふつうに野菜は好きだからたくさん食べてるけどインスタでそれをアップしてもクソの役にも立たねーだろ。
それを野菜とかを子供の頃嫌いだっただろうお前みたいなやつらに邪智されたくないね。
おれは美味しい野菜を子供の頃からたくさん食べててむしろ肉より野菜の方が好きだった。
それは食ってた肉がまずかったからだ。
それを良薬口に苦し的な文脈で野菜を食べた方が健康ですよって上からマウントでクソコメント送るなボケ。
二度と来るな
ツンデレっぽくなって、なんだか可愛いらしい印象が大きくなりましたね。
いったいどういう事でしょうか?
これはいわゆるノンバーバルコミュニケーションと言うものかもしれません。
ノンバーバルコミュニケーションとは、言葉を使わないコミュニケーションです。
表情や目線、顔色、声色と言ったもので相手の気持ちを想像できるというやつですね。
同じ文章を受け取っても、表情や先入観の部分が違えば、受け手の気持ちは大きく変わるという事になります。
という事は?ポンコツ会話エンジンも、ネコっぽくすれば普通に受け入れてくれるのでは?
もし、ポンコツ会話エンジンをネコっぽく出来たらどうなるでしょうか?
人間のいう事を理解しないポンコツロボットではなく…
その気になれば会話を成立させられる賢さをもつ、自由気ままなロボットになるはずです!
よわよわ会話エンジンでもなんとかなりそうな気がしてきました!
![](https://assets.st-note.com/img/1671853185156-FYwqKVRvtE.jpg?width=1200)
第四話:熱血流!ガバガバキャラクターデザイン!の巻
キャラクターの概要
さて、ここからは「きまぐれなロボット」というキャラクターデザインをします。
いかに、こいつとは普通の会話が成立しなさそうだな…。と、ギリギリ言ってることは分かるぞ…。を両立させる戦いの始まりです。デュエルスタンバイ!
キャラクターデザインはやったことあんまりないのですが、まずはイメージを固めるという作業からやって行くことにします。
イメージを固めるにはまず、ブレインストーミングです。早速やって行きましょう。
ガバガバブレインストーミング
モチーフになりそうなものリスト。
・無重力
・ネコ
・薄め柔らかめ細め
・余白
・クラゲ
・機関車
・ルパン3世のフィアット
・宇宙服
・プリミティブオブジェクト
・天使
・天衣無縫
・ヨーグルトの食品サンプル
・ラムちゃん(うる星やつら)
・ホムンクルス
・綿毛
・科学者数人が頭を悩ませている宇宙の方程式
なんとなく方向性が固まってきました。
自分の中のイメージは、なんか白くて未来っぽくて地に足がついてないやつなら何でもいいという感じです。なんだかとってもいい加減ですね。
という訳でイメージの赴くまま、落書きを描いていきましょう。
![](https://assets.st-note.com/img/1671856397712-FRG7aY4WZU.png?width=1200)
・・・。結構ヘタクソだ…。
まぁやりたいことは分かったのでいいとしましょう。(来年はもっと絵うまくなりたい;;)
ここからは、Blenderでキャラクターモデルを作る事になりますが、詳細についてはこちらの怪文書をお読みください。
みんなつ2022 - 熱血プータローの夏 (google.com)
改めて振り返ると、こんなことに気を付けて作っていました。
Lesson1:バストアップに目が自然と行くように情報量を調整しよう。
全体像が映った時になんとなく上半身を見るようにデザインを調整。
![](https://assets.st-note.com/img/1671857189556-br7fZIWBKy.png?width=1200)
![](https://assets.st-note.com/img/1671857250366-XVHAAm8irX.png?width=1200)
基本的の人間の視線は、情報量が多いところを見る傾向にある。
こんな感じのデザインなら、モデル全体が映った時に、頭と上半身の辺りを自然と目で追えるようになる。
Lesson2:目は一番こだわる。
![](https://assets.st-note.com/img/1671858174869-xtW1pUIl1o.png?width=1200)
目はキャラモデルにおいて滅茶苦茶大事な部分です。ここだけ何とかなれば他全部テキトーでもいいやくらいの熱量でやりました。
気を付けなきゃいけないのは、アニメキャラの目は人間の構造と違うという点です。
人間とアニメキャラを比較してみましょう。
![](https://assets.st-note.com/img/1671859777056-4r8mqV6iQs.jpg?width=1200)
![](https://assets.st-note.com/img/1671860411697-ZeSx8bXmKw.jpg?width=1200)
同じアングルから、同じような表情を実際に描いてみました。
やはり顔のパーツで大きく違う所は、目ですね。
大きさは勿論のことですが、位置も大きく違います。
目に関しては、わざとパースをずらした方が更にアニメっぽくなる。という特徴があります。これを理解しているとセルルックなキャラクターモデリングはかなりスムーズに出来ると思います。
![](https://assets.st-note.com/img/1671861144905-kZ73qYbDrk.jpg?width=1200)
という訳で、この2Dの裏技を3Dで再現するには
![](https://assets.st-note.com/img/1671861642107-dAKMlM7nvh.jpg?width=1200)
こういう感じでメッシュを作ってあげればいいんですね。
![](https://assets.st-note.com/img/1671861677490-TZpNGYEyJ7.jpg?width=1200)
![](https://assets.st-note.com/img/1671861726330-28RJItFjv4.jpg?width=1200)
これで、3Dでも、目のパースをずらすことが出来ました!
そして厄介なことに、目のボーンの位置も気を付けなければなりません。
パースやサイズがメッシュの時点で人間とズレているという事は、動きの仕組みも現実の人間と違う事になります。
![](https://assets.st-note.com/img/1671862277966-Y8162zPNn2.jpg?width=1200)
今回、色々検証した結果。目のボーンの位置はここになりました!この辺は諸説あるので、色んな記事を参考にしてみてください!
Lesson3:袖の頂点数は倍にする。
突然ですが問題です!この服のモデル…どこに一工夫入っているでしょうか?
![](https://assets.st-note.com/img/1671864643985-nlTKvAYZO7.jpg?width=1200)
正解は、袖だけ頂点の数を倍にしている!でした!
![](https://assets.st-note.com/img/1671864716782-9f7jq5NEzq.jpg?width=1200)
これは何故こういう風にしているかと言うと、円柱の途切れる部分はポリゴン感が出やすいからです。倍にしないとどうなるか見てみましょう。
![](https://assets.st-note.com/img/1671865188976-ehpGSEhn9M.jpg?width=1200)
こういった所は、スムースシェードの恩恵を受けづらく、メッシュの形が素直に出てしまいます。
腕全体のポリゴンを2倍にしてもいいのですが、ポリゴン数がバカにならないので、袖だけにしました!これだけでも結構効果があるんですねー。
![](https://assets.st-note.com/img/1671865458067-uFLrpshtZ4.jpg?width=1200)
どういう角度で見られるか?を気にしながらモデリングするのも結構楽しかったです!
という訳で3Dモデルはこんな感じに仕上がりました。
![](https://assets.st-note.com/img/1671865605530-RQQPOLC2zO.png?width=1200)
コミュニケーションは取れるのかい?取れないのかい?どっちなんだい?!と言った感じを出せた気がします。多分…。
![](https://assets.st-note.com/img/1671872917536-YGOq2QO5JK.jpg?width=1200)
第五話:激闘!モーション制作!の巻
迷っている暇はありません!モデリングが終わったらモーションに取り掛かりましょう!休憩させてくれ!
浮いている感じにすれば、マジで話通じない感が出そうです。
キャラデザとモデリングが良い感じだったので、モーションで台無しにさせるわけにはいかんと言った気持ちで臨みます。
まずは、作るモーションを整理しましょう
作るモーション一覧
・待機
・喋り
・思考
・暇つぶし
という訳で一番上の、待機モーションを作ります!デフォルトのモーションとなるので、張り切って行きましょう!
まずは、絶対に変更しない仕様を決めます。
・Unityで一般的な3Dシーンとして動かす事を想定しているので60fpsで作る。
・このモーションはループする。
・240フレーム(4秒)でモーションは終わる。
これが破ってはいけないルールです。これがある事によって迷いなく作業に取り掛かれますね。
モーションと言ってもまずはポーズが肝心です。
最初はモーションの肝となるポーズから取り掛かりましょう!
![](https://assets.st-note.com/img/1671870578389-YIj6vtQ8Dk.jpg?width=1200)
出来ました!まぁ及第点でしょう!
次はこれを動かしていきます。とその前に2つほど…
ループモーションを作る時はサイン波の形を意識するとスムーズに作れます。
![](https://assets.st-note.com/img/1671870974892-Kvgl99nJNF.jpg?width=1200)
モーションはかなり大げさに作ったほうがそれっぽくなるので、自分が考えているよりも大きく動かしてから調整したほうがイイ!
この2つの点に気を付けて作ったのがこちら↓
これだけで凄くいい具合に動いてくれますが、もう一工夫してみましょう。
各ジョイント(ボーン)のキーフレームをずらします。以下やり方です。
手順1:まずは0フレームの前にキーフレームのコピペでうまい事やって、もう一ループ追加します。
手順2:モーションの中心を決めます。この場合はHipを起点としました。
手順3:キーフレームを打ったHip以外の全てのボーンを選択します。
手順4:選択したボーンのキーフレームを全て後ろにずらします。(この場合は2~3f程度)
手順5:ずらし終わったら、現在選択していないボーンに一番近いボーンを選択から外します
手順6:選択したボーンのキーフレームを全て後ろにずらします。
を頭の先、指の先、つま先のボーンが選択から外れるまで、手順5と手順6を繰り返します。
![](https://assets.st-note.com/img/1671873644691-WMOZ6AgkuM.jpg?width=1200)
キーフレームの欄がこんな感じになったらいい感じです!
あと、手の指もそれぞれずらすとイイ感じですよ。
お疲れさまでした。さて、このクソめんどくさい手順をやったモーションとやってないモーションを見比べてみましょう。
明らかにこの手順を踏んだ方が、モーションに有機的な印象が出ますよ。
我々人間も、指の動きと肘の動きは同時に始まって同時に終わるという事はほとんどないと思います。
ケースバイケースではありますが、手っ取り早く人間っぽいモーションを作れるということもあり、この方法を採用しました。
同じように、残りのモーションを作っちゃいましょう!
しゃべりモーション、思考モーションで共通して意識したことは、スゲーアホっぽくゆったりしたモーション。いい感じに愛嬌が出ました。
一転して、暇つぶしモーションは、かなりスピード感があるモーションにしました。緩急をつけて、より有機的な存在を演出できそうと考えていました。
ここまで出来たので、fbxデータとして出力すれば完成です!
花京院!イギ―!アブドゥル!
終わったよ…
![](https://assets.st-note.com/img/1671877003350-CmYa5Q1yKo.jpg?width=1200)
第六話:無間地獄!Unity環境構築編の巻(前編)
時は移り、舞台はUnityへ!
最初にやる事はアニメーションの設定です。
簡単なので、瞬きから実装していきましょう。
一生瞬きする機械が産まれた pic.twitter.com/wnz6s5GjLC
— 熱血プータロー (@NekketsuPuutaro) August 20, 2022
うーん0点。なんかスゲー機械的。なんかもっと生物的にならないかなー。
という訳で、2種類のランダム要素を用意する事にしました。
・瞬きのパターン
・瞬きのインターバル
瞬きのパターンから見ていきましょう。
3パターンの瞬き作ってみました。
瞬きをするときにランダムにこのみっつの中から選ぶという感じになりました。
もう一方は、瞬きのインターバルです。
瞬きをするまでの時間を求める計算式を変えてみました。
旧計算式では、瞬きの間隔が5秒で一定でした。
新計算式では、5~10のうちの浮動小数点秒になりました。
5.1秒の時もあれば7.88秒の時もある。みたいな感じですね。
瞬きついでに、目線についてもやっちゃいましょう。
モデリングの所でも書きましたが、キャラクターにおいて目はマジで大事です。
私が最も敬愛するイラストレーターの一人、さいとうなおき先生も良くyoutubeで仰っています。
小学生の頃、最後のシールドから出てくるホーリー・スパークには何度も助けていただきました。この場をお借りしてさいとうなおき先生に感謝申し上げます。
【完全公開!!】生き生きした目の描き方講座【イラスト講座】
【完全版】かわいい目の描き方講座
さて、目線についてですが、私の中にこれをやってみたいというものがありました。
「明後日の方向」です。
基本的に視線を修飾する言葉、何を考えているのか分からない感じがスゲー出せる要素です。これは、気まぐれロボットに是非とも実装したい。
しかし、明後日の方向を数学的なベクトルとして扱うのはかなり勉強が必要なので、正攻法でやるのは難しそうです。
発想を変えてみましょう。
明後日の方向を見ているという事は、少なくともカメラ目線ではないという事です。
つまり、カメラに追従せずに動かせばいいという訳です。
なんとなく、マウスカーソルに追従させることにしました。
ドブの瞬きと目線を実際の映像で見てみましょう!
100%明後日の方向という訳ではありませんが、プレイヤーとは別の気になる所を見ていますよね。
また。マウスを動かすという入力に対して、視線が移動するという出力がされる。
インタラクティブコミュニケーションの要素も感じられるようになりました。
あんまり目が合わないのになんかコミュニケーションを取れているような状態は何だか猫っぽいなと思ったので、とりあえずこれで決定です!
結構何とかなるもんですね!
瞬き、目線と来て、さぁ表情に取り掛かるぞという時にふとある考えがよぎりました。
表情いらないんじゃね?
ノンバーバルコミュニケーションを再現するうえで表情を捨てる絶対に悪手なはずですが、気になって早起きしてしまったのでもうちょっと考えてみる事にしました。
・自由気ままなロボットというキャラクターにするのが現時点での目標。
・ネコからヒントを得た。
・コミュニケーション取れてるんだか取れてないんだかわからない感じを演出したい。
今怒っているのかもしれないな…。なんかよくわかんないけど喜んでるっぽいぞ?
という手探り感は大事にしていきたい。
表情を付けると、この手探り感が無くなっちゃうのではないか?
感情は分かりやすく伝えられるようになるかもしれませんが、これは逆に想像の幅を狭めてしまうので、良くないのではないか?
というわけで、このロボットは、俺の許可なく笑ったり泣いたりできなくなりました。まさに完全な機械が誕生したのだ!
今回は特殊なケースなので、皆さんがキャラクター人工知能を作る際は、表情の用意は流石にした方が良いと思います。
さて、これとblenderで作ったアニメーションを組み合わせ、UIのグラフィックをテキトーに作ったら、一旦出来上がりです!
仕様書の破壊王 pic.twitter.com/aOgdpccC9z
— 熱血プータロー (@NekketsuPuutaro) August 28, 2022
話しかけるボタンを押せば、文章を返してくれる仕組みが出来上がりました。
ちょっとのblenderスキルとunityの知識があれば出来るので、みんなもやってみましょう!
![](https://assets.st-note.com/img/1671878468587-woNJ8DPilL.jpg?width=1200)
第七話:無間地獄Unity環境構築編の巻(後編)
残るは、会話エンジン(python)とUnityを繋げる工事のみです!
ここで一度おさらいしておきましょう。
Pythonでは、入力された文字列を認識、演算して、別の文字列を出力するという事をやっています。
Unityでは、文章を入力してボタンを押すと、3Dアニメーションに合わせて、決められたを文章を出力するという事をやっています。
つまり、Unityで文章を入力してボタンを押すと、その文章をPython側で文字列として認識して、演算。別の文字列を生成して、Unityに渡しそれをUnityの画面に出力するという事になります。
ちょっとややこしいですが、要約すると会話エンジンとゲームエンジンに各々の得意な事をやってもらうよって感じです。
調べてみた所、UnityとPythonを直接繋げる方法がいくつかありました!
早速やってみましょう!
絶対に直すけどちょっとアリかも… pic.twitter.com/gQWzNIOvlR
— 熱血プータロー (@NekketsuPuutaro) September 10, 2022
【悲報】うんともすんとも言わない;;
色々な大人の事情(バージョンなどの環境)のせいで上手く行きませんでした。それぞれ個別にやったらうまく動くのに…;;
設定1の台みたいなもんです。時間だけが過ぎていき何の成果も得られませんでした。
今日はもう無理や…。と台を後にしようとしたその時、
頭の中で確変が起こりました。
直接つなぐのが無理でも、間接的につなげる事は出来るのでは?
という訳で三つのテキストデータを用意します
前回unityで入力された文字列A。
現在unityで入力された文字列B。
Pythonで出力された文字列C。
![](https://assets.st-note.com/img/1671880457665-3F17OIwq90.jpg?width=1200)
頭の中で考えた処理はこうです。
Pythonの処理
1秒ごとにAとBを比較するという処理をpythonでやる。
AとBが同じなら、何もしない。
AとBが違うなら、Bの文字列を会話エンジンに入力、演算のプログラムを起動。
演算結果の文字列をCに上書き。その後、Aの文字列をBの文字列で上書きする。
Unityの処理
文章を入力
喋るボタンを押したら、その文字列をBに上書き。
つまり、pythonとUnityが別々に動いていても、間にこの三つのテキストファイルを挟むことによって、同期しているように見えるのでは?という予想です。
もし、これが正しいならちゃんと動いてくれるハズです。
実際に実装して確かめてみましょう!
脳みそ引っ越し完了 pic.twitter.com/yLI5FHutvm
— 熱血プータロー (@NekketsuPuutaro) September 12, 2022
一撃一万発。永久機関の完成です。
この辺は俺の知識不足勉強不足なので、後悔が残る部分です。読んでいる方の中にPython博士がいらっしゃいましたらもっと効率良いやり方を教えて頂けると幸いです。
レスポンスに時間が掛かるようになってしまいましたが、何とか完成しました!
実際にかかる時間は、Unityとpythonだけだとレスポンスに6秒くらい。
Youtube等の配信とか付けると、18秒ほど。
結構遅くなっちゃいましたが、考えるモーションが奇跡のベストマッチを起こしてくれました。
世界一間抜けに見えるこのモーションで、18秒ほど待つ。ようやく待って出てくるのは、突拍子もない言葉。
人間を便利にしてくれるはずの科学の結晶がこの体たらく。
最高だお前は…。
偶に話が通じるときがあるので、マジできまぐれロボットが出来上がっちまいました^^
返答を待つという動作が出たので、pythonだけより触り心地が変わった。
めっちゃ考えすぎて変な事言っちゃう感じがすごく愛おしいっすね。心に余裕がないときはやってはいけない(戒め)
花京院!イギ―!アブドゥル!ポルナレフ!ジョースターさん!承太郎!DIO!
終わったよ…
![](https://assets.st-note.com/img/1671882185780-rAUvhmbS4e.jpg?width=1200)
最終話:N(ネッケツ)プータロー大勝利!希望の未来へレディ・ゴーッ!!の巻
これで、ドブがUnityで動くようになりました!
早速皆さんにお披露目しましょう!
人工知能に言葉を教えるイベントと称して、ユーザーはどんな風に感じたのか?一部紹介しようと思います!
かわいい。
プロレスが好きなのか…。
キン肉マン好きすぎだろ。
草。
自由すぎるww
歌を歌って欲しい。
等等
もうちょっとちゃんと記録を取っておけば良かった;;
全体的に感想やコメントを振り返ってみると、ドブに人格やキャラクターを見出してくれる傾向にありました。
プロレス好きに関してですが、学習の初期に一日中キン肉マンと新日の話をしていたことがあって、いわゆる過学習の状態でした。
ですが、これを一つの性格と感じとってくれるというのは大変興味深かったです。
過学習って性格になるんですね。なんかSFっぽくて気に入っています。
ともかく、ドブはプロレスが好きでキン肉マンマニアで、自由気ままなキャラクターだという認識が出来上がりました!
私は、ここにコミュニケーションの本質が詰まっているように感じました。
その人が実際に何を体験したのか?よりも、その人自身が何を体験したと感じるか?の方が大事になってくるという考え方の比重が自分の中で大きくなりました。
ここで、会話型人工知能に一つの仮説を立てました。
自然言語処理の研究は勿論大事だが、それ以上にノンバーバルコミュニケーションの研究とか、心理学の研究の方も大事なんじゃないか?という仮説です。
私はプログラムに手を入れる専門家じゃないので今のメタが全く分かりませんが、ただのポンコツchatbotでこれくらいは遊べんだから、この仮説は当たらずとも遠からずなのかもしれない。と予想しておきます。
もしかしたら、そもそもこういうタイプの人工知能は、会話型人工知能とは別ジャンルなのかもしれません。
以上が、現時点での結論です。これでいいのかな~?
熱血プータローの冒険はこれからも続いて行く…
それでは!バイ…
![](https://assets.st-note.com/img/1671882711211-f7I92GTPWb.jpg?width=1200)
バイツァ・ダスト
※以下オマケ※
もしかしたら、そもそもこういうタイプの人工知能は、会話型人工知能とは別ジャンルなのかもしれません。
なので、俺は「キャラクター人工知能」というジャンルを提唱しようと思います!
俺は令和のマーク・ザッカーバーグや。こういうのは「メタバース」みたいに言ったもん勝ちやで~^^
悔しかったら商標登録してみな~^^
冗談はさておき、もしかするとメタバースの時に「フォートナイト」や「どうぶつの森」を定義の中に入れるか?みたいな議論がありましたね。
もしかしたら、おんなじことが出来るかも!
もう世の中には「キャラクター人工知能」みたいなものがあるかもしれません!
Vtuber
人間じゃないかもしれないけど人間かもしれないという独自の存在。ここをあまり深く言及するのはやめておこう…。
気を取り直して、人工知能だという事が確定している方を3人?3機?3プロジェクト?(どの表現が正解なんだ…。)紹介します!
紡ネンちゃん
3Dモデルが可愛いし、賢くていいな―。あと何より声がついている!これはマジで凄すぎる!!!
俺も資本力があったらプロの3Dモデラーに頼んで、スーパーエンジニアを雇って最強のロボット作りてー;;
配信を良くやっているので、是非見に行ってみよう!ねんねんこそ本当の配信モンスターだ。
ねんねんのクローンの3Dモデルもあるぞ!みんなようチェックや!
公式HP
紡ネン | TSUMUGINEN -「みんなで紡ぐ物語。」公式サイト
youtubeチャンネル
ツイッター
公式Booth
Pictoria公式BOOTH - BOOTH
キズナ(#KZN)
バーチャルユーチューバーのアイコン的な存在として、ムーブメントを引っ張って行ったキズナアイ。2022年2月26日をもってスリープに状態に入った親分の声から生まれた仮称特化型AIそれがキズナだ!
XR、ARのスペシャルコンテンツが渋谷スクランブル交差点で提供されるなど、とんでもないことをやってのけている!歌声がガチでスゴイので興味が無くても見てくれ!
この文章を読んだな?これでキズナちゃんとも縁が出来た!
ブームになったあの時よりも要チェックかもしれないぞ!
ツイッター
公式サイト(キズナちゃんのページ)
歌唱特化型AI、キズナ(#KZN)ちゃん開発中! | Kizuna AI official website
バンダイ×Pictoriaより「ゴー・ラウンド・ゲーム」
人工知能×ゲーム実況というコンセプトで配信を中心に活動している「じっきょロイド」がコメントを学習して喋ってくれる。
元気いっぱい夕映ちゃん、クールビューティな佐倉ネオンちゃん、そしてもう一人が控えているらしいぞ…。流石バンナムの資本力だ。
前に見た時は夕映ちゃん麻雀をしている最中だった。「西牌を捨てるぜー!」と言ってホントに西牌を捨てていた。
そしてなんと、2022年12月現在。夕映ちゃんとネオンちゃんの二人で2画面同時配信をしていた。
ロボット同士がコミュニケーションを取る未来に一番近いのはごらんげなのか?!一番楽しみかもしれない。
Twitter
ニュース
“中の人”不要のAI VTuber、バンダイが本格展開 「ガンダムメタバース」でもお出迎え - ITmedia NEWS
バンナムHP
バンダイナムコエンターテインメント公式サイト (bandainamcoent.co.jp)
と言った感じ。やっぱり会社がついてるとここまで出来るんだな―。子供の頃に思い描いていた未来そのものがそろそろ来そうな時代を感じます。それに比べてドブはよ…。愛想がねぇし賢くもねぇし…。
あ~あ、うちも個人開発じゃなかったらなぁ…。もっと可愛くて面白い人工知能作れたんだろうな―
続いて、Vtuber以外のに目を向けてみましょう
どこでもいっしょ。
知っている方は確かにな…と思うかもしれませんが、知らない方向けに紹介させていただきます!
こちらは、ソニーから発売されたゲームです。
ジャンルはなんと「お話しゲーム」
なんとも不思議な喋るネコ「井上トロ」とお話しをするゲームです。
そしてプレイヤーはトロに言葉を教える事が出来ます。
トロは言葉を覚えて次また話すときにその言葉を使ってくれます。何とも愛おしいですね。
子供のころ、このゲームを初めて遊んだ時、凄く感動したのを覚えています。
きっかけのきっかけと言うやつかもしれません。
公式ホームページ
どこでもいっしょ.com | PlayStation
きゃらる。
これが一番おすすめかもしれません。えー正直買いです。
ガチで手軽で出来るし、キャラクターの設定も簡単。なのが魅力的です!
AI同士で井戸端会議なんかもするらしいですね。
マジでロックマンエグゼみたいな感じですわ~^^
キャラる (powered by rinna株式会社) (chararu.jp)
cluster
おいおい、熱血プータロー。ここにきてステマですか…。堕ちたもんだな。と思ったそこのあなた!
安心してください!無断でダイマしてます!
皆さんはこのカンファレンスの内容を覚えていらっしゃいますでしょうか?
ComingSoonの中に自立駆動システムがありました!
ComingSoonの中に自立駆動システムがありました!
ComingSoonの中に自立駆動システムがありました!
ComingSoonの中に自立駆動システムがありました!
ComingSoonの中に自立駆動システムがありました!
ComingSoonの中に自立駆動システムがありました!
いや~楽しみですね~。電脳空間×電脳知的生命体。
マジでグリッドマンじゃん^^
あそうだ。
SSSS.GRIDMANとSSSS.DYNAZENONの続編!!
グリッドマンユニバースの映画が2023年3月24日に公開されるらしいですよ!!!
来年の俺の楽しみや!!
と言った感じです。もっと沢山紹介したいのですが、全てを書いていると年を越せなくなってしまうので勘弁してください。ダメよ~2022年に閉じ込められるなんて
私も気を付けないとな―
こちらの内容は、2022年。トーキョーゲームショーの帰りにみっつさんと電車の中で話したことが元になっております。他にもみっつさんにはPythonの実装の事で色々相談させていただきました。この場をお借りして、みっつさんに感謝申し上げます。
![](https://assets.st-note.com/img/1671891007973-xKeKCGiMzH.jpg?width=1200)
最後までお読みいただきありがとうございました!
そして、次のアドベントカレンダーは2023年の12月1日になります!
どんな記事が飛び出すのでしょうか?!もう待ちきれないよ!!
それではバイバイ!
![](https://assets.st-note.com/img/1671884472486-r5jXVDWlfX.jpg?width=1200)
この記事が気に入ったらサポートをしてみませんか?