FANDOM


m (minor format edit. Alverik)
(Adding categories)
Line 72: Line 72:
 
}</span>
 
}</span>
 
<span style="font-size:14px;font-weight:normal;line-height:22px;">-Original code provided by user Larsos-</span>
 
<span style="font-size:14px;font-weight:normal;line-height:22px;">-Original code provided by user Larsos-</span>
  +
[[Category:Integrations]]

Revision as of 06:54, August 28, 2016

Note: This is an alternative integration for Rogo LipSync and is intended to allow emotions and mouth movement to be played independently from any audio. The integration consists of three AC actions. These will be posted in separate articles to avoid clutter.

Author's quote:

This as a means to have emotions/mouth movement that plays with text (no audio) and limit the .asset files to just a handful - short speech, medium speech, long speech. I also use it for asset files that just sync gestures and emotions. 

The code for the Stop action is as follows:

using UnityEngine;
using System.Collections;
using RogoDigital.Lipsync;


#if UNITY_EDITOR
using UnityEditor;
#endif

namespace AC
{
    [System.Serializable]
    public class RogoLipSync_Stop : Action
    {
        public bool isPlayer;
        public LipSync lipSyncTarget;
        private LipSyncData dataClip;
        
        public RogoLipSync_Stop()
        {
            this.isDisplayed = true;
            category = ActionCategory.Custom;
            title = "Rogo LipSync - Stop";
            description = "Stops a LipSyncData clip on a LipSync component when a LipSync animation is already playing.";
            isPlayer = true;

        }

        override public float Run()
        {
            if (isPlayer)
            {
                lipSyncTarget = KickStarter.player.GetComponent<LipSync>();

                if (lipSyncTarget == null)
                {
                    Debug.LogWarning("RogoLipSync_Play: No LipSync component found on Player.");
                    return 0f;
                }
            }

            lipSyncTarget.Stop(dataClip);
            return 0f;
        }


        override public void Skip(){

        }



#if UNITY_EDITOR
        override public void ShowGUI()
        {
            isPlayer = EditorGUILayout.Toggle("Is player?", isPlayer);

            if (!isPlayer)
            {
                lipSyncTarget = (LipSync)EditorGUILayout.ObjectField("Character:", lipSyncTarget, typeof(LipSync), true);
            }
            AfterRunningOption();
        }
#endif
    }
}

-Original code provided by user Larsos-

Community content is available under CC-BY-SA unless otherwise noted.