ようこそ!

初めてですか? 参加するには、どちらかのボタンをクリックしてください!

【Live2D Creators Circleのご案内】
Live2Dでは現在、業務をお手伝いしていただけるユーザーの方々を募集しています。
もし、ご興味がありましたら下記URLより詳細をご確認ください。
https://goo.gl/0oBmkq
 
いつもLive2Dコミュニティをご活用いただきありがとうございます。

不具合のお問い合わせの際は迅速な対応にするため、
お問い合わせ内容に加えて下記の情報を明記してくださいますようお願い申し上げます。

・問題が発生したアプリケーション名とバージョン(例:Cubism Editor 3.1.02、Euclid Editor 1.2.0 など)
・ご利用のPC環境(例:Windows10、macOS HighSierra など)
・グラフィックボード(例:GeForce GTX 950M など)
・メモリ(例:8GB)
 

目や口が開きっぱなしになる

Unity 2017.3.0f3
Cubism 3.1 SDK for Unity
を使用しております。

以下の手順に従って、自動まばたきとリップシンク設定を行いました。

自動まばたきの設定
http://docs.live2d.com/cubism-sdk-tutorials/eyeblink/

リップシンクの設定
http://docs.live2d.com/cubism-sdk-tutorials/lipsync/

しばらくは期待通り自動的にまばたきをし、音声に合わせて口を開閉してくれますが、
開発を進めるうちに、目や口が開きっぱなしになることがあります。
感覚としては30分〜1時間くらいで発生しているように思います。
もしかすると、開発環境の再起動などと関係しているかもしれません。

CubismEyeBlinkControllerとCubismMouthControllerを
Inspectorから削除後に再度Add Componentで追加し直すと、
再び期待通りに開閉するようになります。

また、これを自動的に行うためにInspector上でAdd Componentせず、
スクリプトから以下のように追加した場合では
これが改善されず、目や口が開きっぱなしになります。

--
CubismEyeBlinkController = gameObject.AddComponent();
CubismEyeBlinkController.BlendMode = CubismParameterBlendMode.Override;

CubismAutoEyeBlinkInput = gameObject.AddComponent();
CubismAutoEyeBlinkInput.Mean = 4;
CubismAutoEyeBlinkInput.MaximumDeviation = 2;

CubismMouthController = gameObject.AddComponent();
CubismMouthController.BlendMode = CubismParameterBlendMode.Override;

CubismAudioMouthInput = gameObject.AddComponent();
CubismAudioMouthInput.AudioInput = gameObject.GetComponent();
CubismAudioMouthInput.Gain = 10;
CubismAudioMouthInput.Smoothing = 1.0f;
--

このような現象が発生した方はいらっしゃいませんでしょうか?
また、その際はどのように対応されましたでしょうか?

コメント

  • 申し訳ありません。
    <>で囲った部分が欠落していました。
    プレビューでは正しく表示されていたのですが・・・
    --
    CubismEyeBlinkController = gameObject.AddComponent<CubismEyeBlinkController>();
    CubismEyeBlinkController.BlendMode = CubismParameterBlendMode.Override;

    CubismAutoEyeBlinkInput = gameObject.AddComponent<CubismAutoEyeBlinkInput>();
    CubismAutoEyeBlinkInput.Mean = 4;
    CubismAutoEyeBlinkInput.MaximumDeviation = 2;

    CubismMouthController = gameObject.AddComponent<CubismMouthController>();
    CubismMouthController.BlendMode = CubismParameterBlendMode.Override;

    CubismAudioMouthInput = gameObject.AddComponent<CubismAudioMouthInput>();
    CubismAudioMouthInput.AudioInput = gameObject.GetComponent<AudioSource>();
    CubismAudioMouthInput.Gain = 10;
    CubismAudioMouthInput.Smoothing = 1.0f;
    --
  • edited 01/12
    @ganessa さん

    動作を確認してみましたが、目や口が開いたままになるという現象が再現できませんでした。
    もし可能であれば、現象が再現する最小のプロジェクトをいただけませんでしょうか?


    Cubismのコンポーネントを動的にアタッチする件ですが、この場合はチュートリアルには記述していない注意があります。
    各機能のControllerでは、値を適用するパラメータへの参照の取得を、Start()のタイミングで行っています。
    参照する対象は、まばたきやリップシンクの場合、CubismLookParameterまたはCubismMouthParameterがアタッチされたGameObjectです。

    そのため、Parameterをアタッチしないまま、先にControllerをアタッチしてしまうと、ParameterがアタッチされたGameObjectを見つけることが出来ず、Controllerの値を操作してもパラメータへ反映されないことがあります。
    もしこの減少が発生していた場合、Parameterをアタッチした後にControllerをアタッチする、または、Parameterをアタッチした後でControllerのRefresh()を呼び出すことで回避することが出来ます。

    こちらの注意点は後日チュートリアルへ追記させていただきます。
  • 再現しないのですね・・・
    最小プロジェクトを作成してみます。

    Refresh()は、何度も試してみましたので、
    別の要因かと思われます・・・
  • 最小プロジェクトを作成するために、
    モデルの差し替えやInputやControllerの
    アタッチ/デタッチを繰り返すうちに、
    本現象が再現しなくなりました。

    この作業の過程でInputやControllerを
    複数アタッチしていることがありました。
    もしかすると、それが原因だったのかもしれません。

    お騒がせして申し訳ありませんでした。
    また再発するようであれば、追記させていただきます。
Sign In or Register to comment.