Exemplo n.º 1
0
    public void Open()
    {
        Debug.Log("OPening eyes");
        state = EYE_STATE.LOOKING;

        background.sprite = openSprite;
        pupil.SetActive(true);
    }
Exemplo n.º 2
0
    public void Close()
    {
        Debug.Log("Closing eyes");

        state = EYE_STATE.CLOSED;

        background.sprite = closedSprite;
        pupil.SetActive(false);
    }
Exemplo n.º 3
0
 public void SetEnabled(bool enabled)
 {
     if (_enabled != enabled)
     {
         if (enabled)
         {
             eyeState = EYE_STATE.STATE_FIRST;
         }
         _enabled = enabled;
     }
 }
Exemplo n.º 4
0
    int openingMotionMsec;     //眼が開くまでの時間


    /**
     * Constructor
     */
    public L2DEyeBlink()
    {
        eyeState = EYE_STATE.STATE_FIRST;

        blinkIntervalMsec = 4000;

        closingMotionMsec = 100;    //眼が閉じるまでの時間
        closedMotionMsec  = 50;     //閉じたままでいる時間
        openingMotionMsec = 150;    //眼が開くまでの時間

        closeIfZero = true;         //IDで指定された眼のパラメータが、0のときに閉じるなら true 、1の時に閉じるなら false

        eyeID_L = "PARAM_EYE_L_OPEN";
        eyeID_R = "PARAM_EYE_R_OPEN";
    }
Exemplo n.º 5
0
        public L2DEyeBlink()
        {
            eyeState = EYE_STATE.STATE_FIRST;

            blinkIntervalMsec = 4000;

            closingMotionMsec = 100;
            closedMotionMsec = 50;
            openingMotionMsec = 150;

            closeIfZero = true;

            eyeID_L = "PARAM_EYE_L_OPEN";
            eyeID_R = "PARAM_EYE_R_OPEN";
        }
Exemplo n.º 6
0
        public L2DEyeBlink()
        {
            eyeState = EYE_STATE.STATE_FIRST;

            blinkIntervalMsec = 4000;

            closingMotionMsec = 100;
            closedMotionMsec  = 50;
            openingMotionMsec = 150;

            closeIfZero = true;

            eyeID_L = "PARAM_EYE_L_OPEN";
            eyeID_R = "PARAM_EYE_R_OPEN";
        }
Exemplo n.º 7
0
        long stateStartTime; // 現在のstateが開始した時刻

        #endregion Fields

        #region Constructors

        public L2DEyeBlink()
        {
            eyeState = EYE_STATE.STATE_FIRST;

            blinkIntervalMsec = 4000;

            closingMotionMsec = 100;// 眼が閉じるまでの時間
            closedMotionMsec = 50;// 閉じたままでいる時間
            openingMotionMsec = 150;// 眼が開くまでの時間

            closeIfZero = true;// IDで指定された眼のパラメータが、0のときに閉じるなら true 、1の時に閉じるなら false

            eyeID_L = "PARAM_EYE_L_OPEN";
            eyeID_R = "PARAM_EYE_R_OPEN";
        }
Exemplo n.º 8
0
    /**
     * モデルのパラメータを更新。
     * @param model
     */
    public void updateParam(ALive2DModel model)
    {
        long  time = UtSystem.getUserTimeMSec();
        float eyeParamValue;         //設定する値
        float t = 0;

        switch (this.eyeState)
        {
        case EYE_STATE.STATE_CLOSING:
            //閉じるまでの割合を0..1に直す(blinkMotionMsecの半分の時間で閉じる)
            t = (time - stateStartTime) / (float)closingMotionMsec;
            if (t >= 1)
            {
                t                   = 1;
                this.eyeState       = EYE_STATE.STATE_CLOSED;           //次から開き始める
                this.stateStartTime = time;
            }
            eyeParamValue = 1 - t;
            break;

        case EYE_STATE.STATE_CLOSED:
            t = (time - stateStartTime) / (float)closedMotionMsec;
            if (t >= 1)
            {
                this.eyeState       = EYE_STATE.STATE_OPENING;           //次から開き始める
                this.stateStartTime = time;
            }
            eyeParamValue = 0;             //閉じた状態
            break;

        case EYE_STATE.STATE_OPENING:
            t = (time - stateStartTime) / (float)openingMotionMsec;
            if (t >= 1)
            {
                t                  = 1;
                this.eyeState      = EYE_STATE.STATE_INTERVAL;        //次から開き始める
                this.nextBlinkTime = calcNextBlink();                 //次回のまばたきのタイミングを始める時刻
            }
            eyeParamValue = t;
            break;

        case EYE_STATE.STATE_INTERVAL:
            //
            if (this.nextBlinkTime < time)
            {
                this.eyeState       = EYE_STATE.STATE_CLOSING;
                this.stateStartTime = time;
            }
            eyeParamValue = 1;             //開いた状態
            break;

        case EYE_STATE.STATE_FIRST:
        default:
            this.eyeState      = EYE_STATE.STATE_INTERVAL;
            this.nextBlinkTime = calcNextBlink(); //次回のまばたきのタイミングを始める時刻
            eyeParamValue      = 1;               //開いた状態
            break;
        }

        if (!closeIfZero)
        {
            eyeParamValue = -eyeParamValue;
        }

        //---- 値を設定 ----
        model.setParamFloat(eyeID_L, eyeParamValue);
        model.setParamFloat(eyeID_R, eyeParamValue);
    }
Exemplo n.º 9
0
        public void updateParam(ALive2DModel model)
        {
            long time = UtSystem.getUserTimeMSec();
            float eyeParamValue;
            float t = 0;

            switch (this.eyeState)
            {
                case EYE_STATE.STATE_CLOSING:

                    t = (time - stateStartTime) / (float)closingMotionMsec;
                    if (t >= 1)
                    {
                        t = 1;
                        this.eyeState = EYE_STATE.STATE_CLOSED;
                        this.stateStartTime = time;
                    }
                    eyeParamValue = 1 - t;
                    break;
                case EYE_STATE.STATE_CLOSED:
                    t = (time - stateStartTime) / (float)closedMotionMsec;
                    if (t >= 1)
                    {
                        this.eyeState = EYE_STATE.STATE_OPENING;
                        this.stateStartTime = time;
                    }
                    eyeParamValue = 0;
                    break;
                case EYE_STATE.STATE_OPENING:
                    t = (time - stateStartTime) / (float)openingMotionMsec;
                    if (t >= 1)
                    {
                        t = 1;
                        this.eyeState = EYE_STATE.STATE_INTERVAL;
                        this.nextBlinkTime = calcNextBlink();
                    }
                    eyeParamValue = t;
                    break;
                case EYE_STATE.STATE_INTERVAL:
                    //
                    if (this.nextBlinkTime < time)
                    {
                        this.eyeState = EYE_STATE.STATE_CLOSING;
                        this.stateStartTime = time;
                    }
                    eyeParamValue = 1;
                    break;
                case EYE_STATE.STATE_FIRST:
                default:
                    this.eyeState = EYE_STATE.STATE_INTERVAL;
                    this.nextBlinkTime = calcNextBlink();
                    eyeParamValue = 1;
                    break;
            }

            if (!closeIfZero) eyeParamValue = -eyeParamValue;

            model.setParamFloat(eyeID_L, eyeParamValue);
            model.setParamFloat(eyeID_R, eyeParamValue);
        }
Exemplo n.º 10
0
        public void updateParam(ALive2DModel model)
        {
            long  time = UtSystem.getUserTimeMSec();
            float eyeParamValue;
            float t = 0;

            switch (this.eyeState)
            {
            case EYE_STATE.STATE_CLOSING:

                t = (time - stateStartTime) / (float)closingMotionMsec;
                if (t >= 1)
                {
                    t                   = 1;
                    this.eyeState       = EYE_STATE.STATE_CLOSED;
                    this.stateStartTime = time;
                }
                eyeParamValue = 1 - t;
                break;

            case EYE_STATE.STATE_CLOSED:
                t = (time - stateStartTime) / (float)closedMotionMsec;
                if (t >= 1)
                {
                    this.eyeState       = EYE_STATE.STATE_OPENING;
                    this.stateStartTime = time;
                }
                eyeParamValue = 0;
                break;

            case EYE_STATE.STATE_OPENING:
                t = (time - stateStartTime) / (float)openingMotionMsec;
                if (t >= 1)
                {
                    t                  = 1;
                    this.eyeState      = EYE_STATE.STATE_INTERVAL;
                    this.nextBlinkTime = calcNextBlink();
                }
                eyeParamValue = t;
                break;

            case EYE_STATE.STATE_INTERVAL:
                //
                if (this.nextBlinkTime < time)
                {
                    this.eyeState       = EYE_STATE.STATE_CLOSING;
                    this.stateStartTime = time;
                }
                eyeParamValue = 1;
                break;

            case EYE_STATE.STATE_FIRST:
            default:
                this.eyeState      = EYE_STATE.STATE_INTERVAL;
                this.nextBlinkTime = calcNextBlink();
                eyeParamValue      = 1;
                break;
            }

            if (!closeIfZero)
            {
                eyeParamValue = -eyeParamValue;
            }


            model.setParamFloat(eyeID_L, eyeParamValue);
            model.setParamFloat(eyeID_R, eyeParamValue);
        }
Exemplo n.º 11
0
        /*
         * モデルのパラメータを更新。
         * @param model
         */
        public void updateParam(ALive2DModel model)
        {
            long time = UtSystem.getUserTimeMSec();
            float eyeParamValue;// 設定する値
            float t = 0;

            switch (this.eyeState)
            {
                case EYE_STATE.STATE_CLOSING:
                    // 閉じるまでの割合を0..1に直す(blinkMotionMsecの半分の時間で閉じる)
                    t = (time - stateStartTime) / (float)closingMotionMsec;
                    if (t >= 1)
                    {
                        t = 1;
                        this.eyeState = EYE_STATE.STATE_CLOSED;// 次から開き始める
                        this.stateStartTime = time;
                    }
                    eyeParamValue = 1 - t;
                    break;
                case EYE_STATE.STATE_CLOSED:
                    t = (time - stateStartTime) / (float)closedMotionMsec;
                    if (t >= 1)
                    {
                        this.eyeState = EYE_STATE.STATE_OPENING;// 次から開き始める
                        this.stateStartTime = time;
                    }
                    eyeParamValue = 0;// 閉じた状態
                    break;
                case EYE_STATE.STATE_OPENING:
                    t = (time - stateStartTime) / (float)openingMotionMsec;
                    if (t >= 1)
                    {
                        t = 1;
                        this.eyeState = EYE_STATE.STATE_INTERVAL;// 次から開き始める
                        this.nextBlinkTime = calcNextBlink();// 次回のまばたきのタイミングを始める時刻
                    }
                    eyeParamValue = t;
                    break;
                case EYE_STATE.STATE_INTERVAL:
                    //
                    if (this.nextBlinkTime < time)
                    {
                        this.eyeState = EYE_STATE.STATE_CLOSING;
                        this.stateStartTime = time;
                    }
                    eyeParamValue = 1;// 開いた状態
                    break;
                case EYE_STATE.STATE_FIRST:
                default:
                    this.eyeState = EYE_STATE.STATE_INTERVAL;
                    this.nextBlinkTime = calcNextBlink();// 次回のまばたきのタイミングを始める時刻
                    eyeParamValue = 1;// 開いた状態
                    break;
            }

            if (!closeIfZero) eyeParamValue = -eyeParamValue;

            // ---- 値を設定 ----
            model.setParamFloat(eyeID_L, eyeParamValue);
            model.setParamFloat(eyeID_R, eyeParamValue);
        }