コード例 #1
0
    private KrLive2DLipSync m_pLipSync              = null;                 // process for lip sync

    //:::::::::::::::::::::::::::::::::::::::::::::::::::::
    // UNITY FUNCTION
    //:::::::::::::::::::::::::::::::::::::::::::::::::::::
    // @Brief : Update
    void Update()
    {
        // Update motion parameter
        m_pIdleMotionManager.updateParam(m_pLive2dModel);
        m_pMotionManager.updateParam(m_pLive2dModel);

        LipSync();

        m_pLive2dModel.update();

        // Render type is Live2D.L2D_RENDER_DRAW_MESH
        if (m_pLive2dModel.getRenderMode() == Live2D.L2D_RENDER_DRAW_MESH)
        {
            m_pLive2dModel.draw();
        }
    }
コード例 #2
0
 void OnRenderObject()
 {
     if (live2DModel == null)
     {
         load();
     }
     if (live2DModel.getRenderMode() == Live2D.L2D_RENDER_DRAW_MESH_NOW)
     {
         live2DModel.draw();
     }
 }
コード例 #3
0
 void OnRenderObject()
 {
     if (live2DModel == null)
     {
         return;
     }
     if ((Camera.current.cullingMask & gameObject.layer) > 0)
     {
         if (live2DModel.getRenderMode() == Live2D.L2D_RENDER_DRAW_MESH_NOW)
         {
             live2DModel.draw();
         }
     }
 }
コード例 #4
0
    void Update()
    {
        if (live2DModel == null)
        {
            return;
        }



        if (auto)
        {
            if (link_animator)
            {
                AnimatorStateInfo state = GetComponent <Animator>().GetCurrentAnimatorStateInfo(0);
                timer = state.length * state.normalizedTime;


                //timer = (float)GetComponent<Animator>().GetTime();
                UtSystem.setUserTimeMSec((long)(timer * 1000.0f));
            }
            else
            {
                delta_timer = (Time.time - temp_real_timer) * speed;

                timer += delta_timer;

                UtSystem.setUserTimeMSec((long)(timer * 1000.0f));

                temp_real_timer = Time.time;
            }
        }

        bool motion_chenged = false;

        if (motionFile == null)
        {
            motion = null;


            temp_motionFile_name = "";
        }
        else
        {
            if (temp_motionFile_name != motionFile.name)
            {
                motion         = Live2DMotion.loadMotion(motionFile.bytes);
                motion_chenged = true;
            }

            temp_motionFile_name = motionFile.name;
        }



        if (live2DModel.getLayer() != gameObject.layer)
        {
            live2DModel.setLayer(gameObject.layer);
        }


        live2DModel.setMatrix(transform.localToWorldMatrix * live2DCanvasPos);

        if (!Application.isPlaying)
        {
            live2DModel.update();
            return;
        }



        if (motion != null)
        {
            motion.setLoop(true);
            motion.setFadeIn(0);
            motion.setFadeOut(0);

            if (motionMgr.isFinished())
            {
                motionMgr.startMotion(motion);
            }

            if (motion_chenged)
            {
                motionMgr.stopAllMotions();
                motionMgr.startMotion(motion);
            }


            motionMgr.updateParam(live2DModel);
        }
        else
        {
            motionMgr.stopAllMotions();

            if (motionFile != null)
            {
                motion = Live2DMotion.loadMotion(motionFile.bytes);
            }
        }



        live2DModel.update();

        if (live2DModel.getRenderMode() == Live2D.L2D_RENDER_DRAW_MESH)
        {
            Render();
        }
    }