LiplisTalkingAnimation の変更点
Top/LiplisTalkingAnimation
- 追加された行はこの色です。
- 削除された行はこの色です。
- LiplisTalkingAnimation へ行く。
#author("2022-03-05T22:35:57+09:00","","") #setlinebreak(on) *おしゃべりアニメーション [#u5f0687a] おおまかには、以下のような流れでおしゃべり時のポーズや表情が決定されます。 #html{{ <div align="center"> <img src="/lipliswiki/webroot/image/common/LiplisTalkingAnimation/1.gif" alt="Liplisおしゃべりフロー" /> <img src="/lipliswiki/webroot/image/common/LiplisTalkingAnimation/2.gif" alt="Liplisおしゃべりフロー" /> </div> }} &ref(202225223549.png); &ref(202225223556.png); ① ニュースの読み込み ニュースの文章を取得します。 ② 単語分解, ③感情ID、強度取得 ニュースデータを単語単位に分解します。 ニュースデータは以下の様な書式で送られてきます。 今日,0,0;は,0,0;晴れ,0,0; 文字と数字が混在していて、パッと見どのような情報か分からないかと思います。 コンマ区切りで1かたまりとなっています。これをたてに並べてみると・・・。 今日,0,0; は,0,0; 晴れ,0,0; のようになります。 1つのかたまりがコンマ区切りで「単語+数字+数字」となっているかと思います。 これは、Liplisのおしゃべりに必要な感情メタデータとなります。以下のようになっています。 単語 , 感情ID , 感情強度 感情IDは、「うれしい」や「かなしい」等の感情に対応しています。 Liplisでは、感情IDに対応する感情と立絵を結びつけて、表情やポーズを表示しています。 感情ID、感情強度についての詳細は「LiplisEmotion」を参照してください。 ④口調変換 口調変換を行います。 口調変換の詳細については「NoralisToneXml」を御覧ください。 ⑤ おしゃべりアニメーション 感情IDと立絵画像画像ファイルの紐づけは「body.xml」で行っています。 たとえば感情ID:1,感情強度+1:「うれしい」の場合に選択される定義を見ると、 以下のようになります。 #sh(xml){{ <joy_p> <emotion>joy_p</emotion> <joy_p11>joy_p_1_1_1.png</joy_p11> <joy_p12>joy_p_1_1_2.png</joy_p12> <joy_p21>joy_p_1_2_1.png</joy_p21> <joy_p22>joy_p_1_2_2.png</joy_p22> <joy_p31>joy_p_1_3_1.png</joy_p31> <joy_p32>joy_p_1_3_2.png</joy_p32> </joy_p> }} データを見てみると、6つの画像ファイルが記述されているのが分かります。 これは、口パク、まばたたきの状態を表した画像になっています。 口パク、まばたきを表すために以下のように画像を定義しています。 |1|目 : 開き|口 : 閉じ| |2|目 : 開き|口 : 開き| |3|目 : 半目|口 : 閉じ| |4|目 : 半目|口 : 開き| |5|目 : 閉じ|口 : 閉じ| |6|目 : 閉じ|口 : 開き| おしゃべり、まばたきの状態によって、表示される画像を決定しています。 おしゃべり中は口パク状態、瞬き状態が常に変化するため、6つの画像がぐるぐるまわって アニメーションします。 感情が違う単語が読まれると、別の感情の画像が読み込まれる、といった具合です。