Beispiel #1
0
    // 드래그한 결과를 Live2D 파라미터에 반영한다
    void Drag()
    {
        m_dragMgr.update();
        // 얼굴이 향한 방향을 따라가는 처리
        m_live2DModel.addToParamFloat("PARAM_ANGLE_X", m_dragMgr.getX() * 30);
        m_live2DModel.addToParamFloat("PARAM_ANGLE_Y", m_dragMgr.getY() * 30);

        // 몸이 향한 방향을 따라가는 처리
        m_live2DModel.addToParamFloat("PARAM_BODY_ANGLE_X", m_dragMgr.getX() * 10);

        // 눈이 따라가게 하는 처리
        m_live2DModel.addToParamFloat("PARAM_EYE_BALL_X", m_dragMgr.getX());
        m_live2DModel.addToParamFloat("PARAM_EYE_BALL_Y", m_dragMgr.getY());

        // 시간에 따라 변화하는 사인파 곡선에 맞춰 호흡 파라미터를 업데이트한다
        double timeSec = UtSystem.getUserTimeMSec() / 1000.0;
        double t       = timeSec * 2 * Math.PI;

        m_live2DModel.setParamFloat("PARAM_BREATH", (float)(0.5f + 0.5f * Math.Sin(t / 3.0)));
    }
 //:::::::::::::::::::::::::::::::::::::::::::::::::::::
 // PRIVATE FUNCTION
 //:::::::::::::::::::::::::::::::::::::::::::::::::::::
 // @Brief : Lip sync
 private void LipSync()
 {
     if (m_pLipSync != null)
     {
         m_pLipSync.Update();
         float fValue = m_pLipSync.GetValue();
         if (m_pLipSync.IsEnd())
         {
             m_pLipSync = null;
         }
         // Lip sync
         m_pLive2dModel.addToParamFloat("PARAM_MOUTH_OPEN_Y", fValue, 1);
     }
 }