新しいLive2D公式コミュニティ(日本向け)が公開されました!
ぜひご利用ください!
Live2D公式コミュニティ

■このコミュニティの今後について
このコミュニティ(forum.live2d.com)につきましては、しばらくの間新コミュニティと並行して運営しますが、2022年内を目処に閉鎖する予定です。
閉鎖時期や内容については決定次第お知らせいたします。
海外向けコミュニティについては変更ございません。
【各最新OSの対応状況について】
Cubism Editorは 4.1.02 正式版以降でWindows 11 及び macOS Monterey に対応しております。ぜひ最新版をご利用ください。
※macOSをお使いの方でOSアップデートする際は必ずCubism Editorのライセンスを解除してください。
Cubism EditorをインストールしているmacOSをアップグレードしたい
Cubism SDKについては各SDKのREADMEまたはNOTICEをご確認ください。

【Mac各機種への対応状況について】
現在、Cubism EditorはApple M1チップ搭載機種には対応しておりません。
詳細は 動作環境 をご参照ください。
関連するお問い合わせへの対応はこの文章をもって代えさせていただきます。
Cubism 製品のマニュアル・チュートリアルはこちら
 
Cubism Editorマニュアル    Cubism Editorチュートリアル    Cubism SDKマニュアル    Cubism SDKチュートリアル

Unity上でのリップシンクについて

Unityでサンプルのリップシンクを参考に実装しているのですが、
リップシンクの終了時(音声再生終了時)に口が開いた状態から
元の口の状態に戻る際、アルファのフェードイン・フェードアウトが
かかってしまうのですが、OFFにすることって可能なのでしょうか?

コメント

  • ご質問されてから時間が空いてしまいましたが、その後、解決されたでしょうか?

    アルファのフェードイン・フェードアウトというと、normalizePartsOpacityGroup()あたりが
    思い当たるのですが、使われていたりするでしょうか?
    http://sites.cybernoids.jp/cubism2/sdk_tutorial/live2d_library/load_to_display/switch_parts

    おそらく、リップシンクのサンプルのみでは同件発生しなかったように思うのですが、
    サンプルを参考に実装していく過程で、どのような処理を追加したタイミングで
    現象発生したかなどもお教えいただければ、もしかしたらお力になれるかも知れません。

    また、モデルはサンプルに含まれるものでしょうか?
    もしくは、Modeler・Animatorを使ってご自身が作成されたものでしょうか?
    モデルの作りによっても、ご報告いただいた現象が出ることがありそうなので、
    ご回答いただけましたら幸いです。
  • normalizePartsOpacityGroup()は特に使用していないですね
    Live2Dモデルはサンプルのデータではなくオリジナルのものです

    リップシンクはサンプルコードを元にUpdate()に以下のようなコードを組み込んでます
    float volume; if (smoothing) { float currentVolume; currentVolume = (lipSyncText) ? lipTextVol : GetCurrentVolume(asVoice); if (Mathf.Abs(lastVolume - currentVolume) < 0.2f) { volume = lastVolume * 0.9f + currentVolume * 0.1f; } else if (lastVolume - currentVolume < 0.4f) { volume = lastVolume * 0.6f + currentVolume * 0.3f; } else if (lastVolume - currentVolume > 0.4f) { volume = lastVolume * 0.5f + currentVolume * 0.7f; } else { volume = lastVolume * 0.2f + currentVolume * 0.9f; } lastVolume = volume; } else { volume = (lipSyncText) ? lipTextVol : GetCurrentVolume(asVoice); } live2DModel.setParamFloat(lipSyncMouseParam, volume * scaleVolume);
  • 編集済: 4月 2015
    > 元の口の状態に戻る際、アルファのフェードイン・フェードアウトがかかってしまうのですが

    これが具体的にどういう状態なのかわからないのですが、もう少し詳しく教えていただけますか?
    口が閉じる際に意図していないのに半透明になってしまうという認識であってますでしょうか?
  • 音声再生が終了して口を閉じた状態に戻る際に、開いた口がフェードアウトして、
    閉じた口がフェードインする状態になってしまいます。

    モーション再生の時のフェードイン、フェードアウトのような感じです。
  • 編集済: 4月 2015
    なるほど。
    フェードがかかるということはsmoothingはONになってますよね?
    smoothingがONのときは開くときは素早く、閉じるときは遅くなってます。

    ちょっとだけ書き換えてみましたがこんな感じだとどうでしょう?
    
            if (smoothing)
            {
                float currentVolume = GetCurrentVolume(audio);
    
                if (currentVolume < 0.01)
                {
                    //音声終了してるとき(音量が0に近いとき)は閉じる速度を上げる
                    volume = lastVolume * 0.2f + currentVolume * 0.8f;
                }
                else if (Mathf.Abs(lastVolume - currentVolume) < 0.2f)
                {
                    volume = lastVolume * 0.9f + currentVolume * 0.1f;
                }
                else if (lastVolume - currentVolume > 0.2f)
                {
                    volume = lastVolume * 0.7f + currentVolume * 0.3f;
                }
                else
                {
                    volume = lastVolume * 0.2f + currentVolume * 0.8f;
                }
                lastVolume = volume;
            }
            else
            {
                volume = GetCurrentVolume(audio);
            }
           
    
            live2DModel.setParamFloat("PARAM_MOUTH_OPEN_Y", volume * scaleVolume);
    		
    
    t_shibaura
  • ありがとうございます
    解決しました
    閉じる時の速度が遅くなっているのに気付いてませんでした
コメントするにはサインインまたは登録して下さい。