ホーム   Liplis   トップ   一覧 検索 最終更新   ヘルプ   最終更新のRSS
 

LiplisTalkingAnimation のバックアップの現在との差分(No.1)


  • 追加された行はこの色です。
  • 削除された行はこの色です。
#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つの画像がぐるぐるまわって
アニメーションします。

感情が違う単語が読まれると、別の感情の画像が読み込まれる、といった具合です。