Beispiel #1
0
        public bool Bake(apModifiedBone srcModBone, apPortrait portrait)
        {
            _portrait         = portrait;
            _meshGroupID_Bone = srcModBone._meshGropuUniqueID_Bone;
            apOptTransform meshGroupTransform = portrait.GetOptTransformAsMeshGroup(_meshGroupID_Bone);

            if (meshGroupTransform == null)
            {
                Debug.LogError("[ModBone] Bake 실패 : 찾을 수 없는 OptTransform [" + _meshGroupID_Bone + "]");
                return(false);
            }

            _transformUniqueID = meshGroupTransform._transformID;
            _meshGroup_Bone    = meshGroupTransform;

            _boneID = srcModBone._boneID;

            _bone = meshGroupTransform.GetBone(_boneID);
            if (_bone == null)
            {
                Debug.LogError("[ModBone] Bake 실패 : 찾을 수 없는 Bone [" + _boneID + "]");
                return(false);
            }
            _transformMatrix = new apMatrix(srcModBone._transformMatrix);
            return(true);
        }
                public bool Link(apPortrait portrait, apCache <apOptTransform> cache)
                {
                    _bone = null;

                    //Cache를 통해서 일단 MeshGroup에 해당하는 optTransform을 찾자
                    apOptTransform meshGroup = null;

                    if (cache.IsContain(_meshGroupID))
                    {
                        meshGroup = cache.Get(_meshGroupID);
                    }
                    else
                    {
                        meshGroup = portrait.GetOptTransformAsMeshGroup(_meshGroupID);
                        if (meshGroup == null)
                        {
                            Debug.LogError("VertRig Bake 실패 : MeshGroup을 찾을 수 없다. [" + _meshGroupID + "]");
                            return(false);
                        }

                        //캐시에 담고
                        cache.Add(_meshGroupID, meshGroup);
                    }

                    //본을 찾자
                    _bone = meshGroup.GetBone(_boneID);
                    if (_bone == null)
                    {
                        Debug.LogError("VertRig Bake 실패 : Bone을 찾을 수 없다. [" + _boneID + "]");
                        return(false);
                    }

                    return(true);
                }
Beispiel #3
0
        public void Link(apOptTransform targetOptTransform)
        {
            _parentOptTransform = targetOptTransform;
            if (_parentOptTransform == null)
            {
                //??
                Debug.LogError("[" + transform.name + "] OptBone의 ParentOptTransform이 Null이다. [" + _meshGroupID + "]");
                _IKTargetBone      = null;
                _IKNextChainedBone = null;
                _IKHeaderBone      = null;

                //LinkBoneChaining();


                return;
            }


            _IKTargetBone      = _parentOptTransform.GetBone(_IKTargetBoneID);
            _IKNextChainedBone = _parentOptTransform.GetBone(_IKNextChainedBoneID);
            _IKHeaderBone      = _parentOptTransform.GetBone(_IKHeaderBoneID);

            //LinkBoneChaining();
        }
Beispiel #4
0
            public bool Link(apPortrait portrait)
            {
                _meshGroup = portrait.GetOptTransformAsMeshGroup(_meshGroupID);
                if (_meshGroup == null)
                {
                    Debug.LogError("VertRig Bake 실패 : MeshGroup을 찾을 수 없다. [" + _meshGroupID + "]");
                    return(false);
                }

                _bone = _meshGroup.GetBone(_boneID);
                if (_bone == null)
                {
                    Debug.LogError("VertRig Bake 실패 : Bone을 찾을 수 없다. [" + _boneID + "]");
                    return(false);
                }

                return(true);
            }