【macOS 11.0 Big Surへの対応状況について】
現在公開中のCubism EditorおよびSDKはいずれのバージョンもmacOS 11.0 Big Surには対応しておりません。
正常に動作できない可能性がありますので、対応バージョンの提供開始まではOSのアップグレードをお待ちいただきますようお願いします。
関連するお問い合わせにつきましては、この文章をもって代えさせていただきます。
対応につきましては現在検証を進めております。対応バージョンの公開時期は追ってご案内いたします。

またApple Sillicon版のmacにつきましても、全てのCubism 製品において対応しておりませんのでこちらも合わせてご了承ください。
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
  • ありがとうございます
    解決しました
    閉じる時の速度が遅くなっているのに気付いてませんでした
コメントするにはサインインまたは登録して下さい。