public void Open() { Debug.Log("OPening eyes"); state = EYE_STATE.LOOKING; background.sprite = openSprite; pupil.SetActive(true); }
public void Close() { Debug.Log("Closing eyes"); state = EYE_STATE.CLOSED; background.sprite = closedSprite; pupil.SetActive(false); }
public void SetEnabled(bool enabled) { if (_enabled != enabled) { if (enabled) { eyeState = EYE_STATE.STATE_FIRST; } _enabled = enabled; } }
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"; }
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"; }
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"; }
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"; }
/** * モデルのパラメータを更新。 * @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); }
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); }
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); }
/* * モデルのパラメータを更新。 * @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); }