示例#1
0
        public static void InitAid(OCIRoutePoint _ocirp)
        {
            bool flag = _ocirp.routePointInfo.aidInfo == null;

            if (flag)
            {
                _ocirp.routePointInfo.aidInfo = new OIRoutePointAidInfo(Studio.Studio.GetNewIndex());
            }
            Transform transform = _ocirp.routePoint.objAid.get_transform();

            if (flag)
            {
                _ocirp.routePointInfo.aidInfo.changeAmount.pos = transform.get_localPosition();
            }
            GuideObject _guideObject = Singleton <GuideObjectManager> .Instance.Add(transform, _ocirp.routePointInfo.aidInfo.dicKey);

            _guideObject.enableRot    = false;
            _guideObject.enableScale  = false;
            _guideObject.enableMaluti = false;
            _guideObject.scaleSelect  = 0.1f;
            _guideObject.scaleRot     = 0.05f;
            _guideObject.parentGuide  = _ocirp.guideObject;
            _guideObject.changeAmount.OnChange();
            _guideObject.mode          = GuideObject.Mode.World;
            _guideObject.moveCalc      = GuideMove.MoveCalc.TYPE2;
            _ocirp.pointAidInfo        = new OCIRoutePoint.PointAidInfo(_guideObject, _ocirp.routePointInfo.aidInfo);
            _ocirp.pointAidInfo.active = false;
            _ocirp.routePointInfo.aidInfo.changeAmount.onChangePosAfter += new Action(_ocirp.route.UpdateLine);
        }
示例#2
0
        private void Awake()
        {
            this.m_DicKey           = -1;
            this.isActiveFunc       = (GuideObject.IsActiveFunc)null;
            this.parentGuide        = (GuideObject)null;
            this.enableMaluti       = true;
            this.calcScale          = true;
            this.visibleTranslation = Singleton <Studio.Studio> .Instance.workInfo.visibleAxisTranslation;
            this.visibleCenter      = Singleton <Studio.Studio> .Instance.workInfo.visibleAxisCenter;
            this.SetVisibleCenter(false);
            Renderer component = (Renderer)this.objectSelect.GetComponent <Renderer>();

            if (Object.op_Implicit((Object)component))
            {
                component.get_material().set_renderQueue(3500);
            }
            ObservableExtensions.Subscribe <bool>((IObservable <M0>) this._visible, (Action <M0>)(_b =>
            {
                foreach (GuideBase guideBase in this.guide)
                {
                    guideBase.draw = _b & this.visibleOutside;
                }
            }));
            ObservableExtensions.Subscribe <bool>((IObservable <M0>) this._visibleOutside, (Action <M0>)(_b =>
            {
                foreach (GuideBase guideBase in this.guide)
                {
                    guideBase.draw = _b & this.visible;
                }
            }));
            for (int index = 0; index < this.guide.Length; ++index)
            {
                this.guide[index].guideObject = this;
            }
        }
示例#3
0
        private bool SetGuideObject(GuideObject _object)
        {
            bool flag = Input.GetKey((KeyCode)306) || Input.GetKey((KeyCode)305);
            bool key  = Input.GetKey((KeyCode)120);

            if (flag && !key)
            {
                if (this.hashSelectObject.Contains(_object))
                {
                    return(false);
                }
                this.AddObject(_object);
            }
            else
            {
                foreach (GuideObject guideObject in this.hashSelectObject)
                {
                    ChangeAmount changeAmount = guideObject.changeAmount;
                    changeAmount.onChangePos   -= new Action(this.SetInputTextPos);
                    changeAmount.onChangeRot   -= new Action(this.SetInputTextRot);
                    changeAmount.onChangeScale -= new Action <Vector3>(this.SetInputTextScale);
                }
                this.hashSelectObject.Clear();
                this.AddObject(_object);
            }
            return(true);
        }
        public static void InitLookAt(OCIChar _ociChar)
        {
            bool flag = _ociChar.oiCharInfo.lookAtTarget == null;

            if (flag)
            {
                _ociChar.oiCharInfo.lookAtTarget = new LookAtTargetInfo(Studio.Studio.GetNewIndex());
            }
            Transform lookAtTarget = _ociChar.preparation.LookAtTarget;

            if (flag)
            {
                _ociChar.oiCharInfo.lookAtTarget.changeAmount.pos = lookAtTarget.get_localPosition();
            }
            GuideObject _guideObject = Singleton <GuideObjectManager> .Instance.Add(lookAtTarget, _ociChar.oiCharInfo.lookAtTarget.dicKey);

            _guideObject.enableRot    = false;
            _guideObject.enableScale  = false;
            _guideObject.enableMaluti = false;
            _guideObject.scaleRate    = 0.5f;
            _guideObject.scaleSelect  = 0.25f;
            _guideObject.parentGuide  = _ociChar.guideObject;
            _guideObject.changeAmount.OnChange();
            _guideObject.mode          = GuideObject.Mode.World;
            _guideObject.moveCalc      = GuideMove.MoveCalc.TYPE2;
            _ociChar.lookAtInfo        = new OCIChar.LookAtInfo(_guideObject, _ociChar.oiCharInfo.lookAtTarget);
            _ociChar.lookAtInfo.active = false;
        }
示例#5
0
 public void AddSelectMultiple(GuideObject _object)
 {
     if (this.hashSelectObject.Contains(_object))
     {
         return;
     }
     this.AddObject(_object);
     this.SetInputText();
 }
示例#6
0
 public void AddSelectMultiple(GuideObject _object)
 {
     if (Object.op_Equality((Object)_object, (Object)null) || this.hashSelectObject.Contains(_object) || this.hashSelectObject.Count != 0 && !_object.enableMaluti)
     {
         return;
     }
     this.AddObject(_object, this.hashSelectObject.Count == 0);
     this.guideInput.AddSelectMultiple(_object);
 }
示例#7
0
        private void SetSelectObject(GuideObject _object, bool _multiple = true)
        {
            bool flag = Input.GetKey((KeyCode)306) || Input.GetKey((KeyCode)305);
            bool key  = Input.GetKey((KeyCode)120);

            if (_multiple && flag && !key)
            {
                if (Object.op_Equality((Object)_object, (Object)null) || this.hashSelectObject.Contains(_object) || this.hashSelectObject.Count != 0 && !_object.enableMaluti)
                {
                    return;
                }
                this.AddObject(_object, this.hashSelectObject.Count == 0);
            }
            else
            {
                switch (Studio.Studio.optionSystem.selectedState)
                {
                case 0:
                    this.StopSelectObject();
                    break;

                case 1:
                    GuideObject selectObject = this.selectObject;
                    if (!Object.op_Equality((Object)selectObject, (Object)null))
                    {
                        if (!selectObject.isChild)
                        {
                            if (Object.op_Implicit((Object)_object) && _object.isChild)
                            {
                                selectObject.SetActive(false, false);
                                break;
                            }
                            this.StopSelectObject();
                            break;
                        }
                        selectObject.SetActive(false, false);
                        break;
                    }
                    break;
                }
                this.hashSelectObject.Clear();
                if (Object.op_Implicit((Object)_object) && !_object.enables[this.m_Mode])
                {
                    for (int index = 0; index < 3; ++index)
                    {
                        if (_object.enables[index])
                        {
                            this.mode = index;
                            break;
                        }
                    }
                }
                this.AddObject(_object, true);
            }
            this.guideInput.guideObject = _object;
        }
示例#8
0
        public static OCIFolder Load(
            OIFolderInfo _info,
            ObjectCtrlInfo _parent,
            TreeNodeObject _parentNode,
            bool _addInfo,
            int _initialPosition)
        {
            OCIFolder ociFolder = new OCIFolder();

            ociFolder.objectInfo = (ObjectInfo)_info;
            GameObject gameObject = new GameObject(_info.name);

            if (Object.op_Equality((Object)gameObject, (Object)null))
            {
                Studio.Studio.DeleteIndex(_info.dicKey);
                return((OCIFolder)null);
            }
            gameObject.get_transform().SetParent(Singleton <Scene> .Instance.commonSpace.get_transform());
            ociFolder.objectItem = gameObject;
            GuideObject guideObject = Singleton <GuideObjectManager> .Instance.Add(gameObject.get_transform(), _info.dicKey);

            guideObject.isActive    = false;
            guideObject.scaleSelect = 0.1f;
            guideObject.scaleRot    = 0.05f;
            guideObject.enableScale = false;
            guideObject.SetVisibleCenter(true);
            ociFolder.guideObject = guideObject;
            ociFolder.childRoot   = gameObject.get_transform();
            if (_addInfo)
            {
                Studio.Studio.AddInfo((ObjectInfo)_info, (ObjectCtrlInfo)ociFolder);
            }
            else
            {
                Studio.Studio.AddObjectCtrlInfo((ObjectCtrlInfo)ociFolder);
            }
            TreeNodeObject _parent1       = !Object.op_Inequality((Object)_parentNode, (Object)null) ? (_parent == null ? (TreeNodeObject)null : _parent.treeNodeObject) : _parentNode;
            TreeNodeObject treeNodeObject = Studio.Studio.AddNode(_info.name, _parent1);

            treeNodeObject.treeState               = _info.treeState;
            treeNodeObject.enableVisible           = true;
            treeNodeObject.visible                 = _info.visible;
            treeNodeObject.baseColor               = Utility.ConvertColor(180, 150, 5);
            treeNodeObject.colorSelect             = treeNodeObject.baseColor;
            guideObject.guideSelect.treeNodeObject = treeNodeObject;
            ociFolder.treeNodeObject               = treeNodeObject;
            if (_initialPosition == 1)
            {
                _info.changeAmount.pos = Singleton <Studio.Studio> .Instance.cameraCtrl.targetPos;
            }
            _info.changeAmount.OnChange();
            Studio.Studio.AddCtrlInfo((ObjectCtrlInfo)ociFolder);
            _parent?.OnLoadAttach(!Object.op_Inequality((Object)_parentNode, (Object)null) ? _parent.treeNodeObject : _parentNode, (ObjectCtrlInfo)ociFolder);
            return(ociFolder);
        }
示例#9
0
        private void SetInputTextScale(Vector3 _value)
        {
            GuideObject           guideObject = this.hashSelectObject.ElementAtOrDefault <GuideObject>(0);
            Vector3               baseValue   = !Object.op_Inequality((Object)guideObject, (Object)null) ? Vector3.get_zero() : guideObject.changeAmount.scale;
            IEnumerable <Vector3> source      = this.hashSelectObject.Select <GuideObject, Vector3>((Func <GuideObject, Vector3>)(v => v.changeAmount.scale));

            for (int i = 0; i < 3; ++i)
            {
                this.inputScale[i].set_text(!source.All <Vector3>((Func <Vector3, bool>)(_v => Mathf.Approximately(((Vector3) ref _v).get_Item(i), ((Vector3) ref baseValue).get_Item(i)))) ? "-" : ((Vector3) ref baseValue).get_Item(i).ToString("0.#####"));
            }
        }
示例#10
0
        private void AddObject(GuideObject _object)
        {
            if (Object.op_Equality((Object)_object, (Object)null))
            {
                return;
            }
            ChangeAmount changeAmount = _object.changeAmount;

            changeAmount.onChangePos   += new Action(this.SetInputTextPos);
            changeAmount.onChangeRot   += new Action(this.SetInputTextRot);
            changeAmount.onChangeScale += new Action <Vector3>(this.SetInputTextScale);
            this.hashSelectObject.Add(_object);
        }
示例#11
0
        private bool DeselectGuideObject(GuideObject _object)
        {
            if (Object.op_Equality((Object)_object, (Object)null) || !this.hashSelectObject.Contains(_object))
            {
                return(false);
            }
            ChangeAmount changeAmount = _object.changeAmount;

            changeAmount.onChangePos   -= new Action(this.SetInputTextPos);
            changeAmount.onChangeRot   -= new Action(this.SetInputTextRot);
            changeAmount.onChangeScale -= new Action <Vector3>(this.SetInputTextScale);
            this.hashSelectObject.Remove(_object);
            return(true);
        }
示例#12
0
 public OCIRoutePoint(
     OCIRoute _route,
     OIRoutePointInfo _info,
     GameObject _obj,
     GuideObject _guide,
     TreeNodeObject _treeNode)
 {
     this.route          = _route;
     this.objectInfo     = (ObjectInfo)_info;
     this.objectItem     = _obj;
     this.guideObject    = _guide;
     this.treeNodeObject = _treeNode;
     this.routePoint     = (RoutePointComponent)_obj.GetComponent <RoutePointComponent>();
     this.isParentDelete = false;
     this._line          = (VectorLine)null;
 }
示例#13
0
        public GuideObject Add(Transform _target, int _dicKey)
        {
            GameObject gameObject = (GameObject)Object.Instantiate <GameObject>((M0)this.objectOriginal);

            gameObject.get_transform().SetParent(this.transformWorkplace);
            GuideObject component1 = (GuideObject)gameObject.GetComponent <GuideObject>();

            component1.transformTarget = _target;
            component1.dicKey          = _dicKey;
            this.dicGuideObject.Add(_target, component1);
            Light component2 = (Light)((Component)_target).GetComponent <Light>();

            if (Object.op_Implicit((Object)component2) && component2.get_type() != 1)
            {
                this.dicTransLight.Add(_target, component2);
            }
            return(component1);
        }
        private static GuideObject AddBoneGuide(
            Transform _target,
            int _dicKey,
            GuideObject _parent,
            string _name)
        {
            GuideObject guideObject = Singleton <GuideObjectManager> .Instance.Add(_target, _dicKey);

            guideObject.enablePos    = false;
            guideObject.enableScale  = false;
            guideObject.enableMaluti = false;
            guideObject.calcScale    = false;
            guideObject.scaleRate    = 0.5f;
            guideObject.scaleRot     = 0.025f;
            guideObject.scaleSelect  = 0.05f;
            guideObject.parentGuide  = _parent;
            return(guideObject);
        }
示例#15
0
        private void AddObject(GuideObject _object, bool _active = true)
        {
            if (Object.op_Equality((Object)_object, (Object)null))
            {
                return;
            }
            if (_active)
            {
                _object.isActive = true;
            }
            Light _light = (Light)null;

            if (this.dicTransLight.TryGetValue(_object.transformTarget, out _light))
            {
                this.drawLightLine.Add(_light);
                this.dicGuideLight.Add(_object, _light);
            }
            this.hashSelectObject.Add(_object);
        }
        public static void InitHairBone(OCIChar _ociChar, Dictionary <int, Info.BoneInfo> _dicBoneInfo)
        {
            GameObject referenceInfo = _ociChar.charReference.GetReferenceInfo(ChaReference.RefObjKey.HeadParent);
            Dictionary <int, OCIChar.BoneInfo> dictionary = new Dictionary <int, OCIChar.BoneInfo>();

            foreach (KeyValuePair <int, Info.BoneInfo> keyValuePair in _dicBoneInfo.Where <KeyValuePair <int, Info.BoneInfo> >((Func <KeyValuePair <int, Info.BoneInfo>, bool>)(b => MathfEx.RangeEqualOn <int>(7, b.Value.group, 9))))
            {
                GameObject loop = referenceInfo.get_transform().FindLoop(keyValuePair.Value.bone);
                if (!Object.op_Equality((Object)loop, (Object)null))
                {
                    OCIChar.BoneInfo boneInfo1 = (OCIChar.BoneInfo)null;
                    if (dictionary.TryGetValue(keyValuePair.Value.sync, out boneInfo1))
                    {
                        boneInfo1.AddSyncBone(loop);
                    }
                    else
                    {
                        OIBoneInfo _boneInfo = (OIBoneInfo)null;
                        if (!_ociChar.oiCharInfo.bones.TryGetValue(keyValuePair.Key, out _boneInfo))
                        {
                            _boneInfo = new OIBoneInfo(Studio.Studio.GetNewIndex());
                            _ociChar.oiCharInfo.bones.Add(keyValuePair.Key, _boneInfo);
                        }
                        _boneInfo.group = OIBoneInfo.BoneGroup.Hair;
                        _boneInfo.level = keyValuePair.Value.level;
                        GuideObject      _guideObject = AddObjectAssist.AddBoneGuide(loop.get_transform(), _boneInfo.dicKey, _ociChar.guideObject, keyValuePair.Value.name);
                        OCIChar.BoneInfo boneInfo2    = new OCIChar.BoneInfo(_guideObject, _boneInfo, keyValuePair.Key);
                        _ociChar.listBones.Add(boneInfo2);
                        _guideObject.SetActive(false, true);
                        if (keyValuePair.Value.sync != -1)
                        {
                            dictionary.Add(keyValuePair.Key, boneInfo2);
                        }
                    }
                }
            }
            _ociChar.UpdateFKColor(OIBoneInfo.BoneGroup.Hair);
        }
示例#17
0
 public void Delete(GuideObject _object, bool _destroy = true)
 {
     if (Object.op_Equality((Object)_object, (Object)null))
     {
         return;
     }
     if (this.hashSelectObject.Contains(_object))
     {
         this.SetSelectObject((GuideObject)null, false);
     }
     this.dicGuideObject.Remove(_object.transformTarget);
     this.dicTransLight.Remove(_object.transformTarget);
     this.dicGuideLight.Remove(_object);
     if (_destroy)
     {
         Object.DestroyImmediate((Object)((Component)_object).get_gameObject());
     }
     if (!Object.op_Equality((Object)this.operationTarget, (Object)_object))
     {
         return;
     }
     this.operationTarget = (GuideObject)null;
 }
示例#18
0
        public void InitBone(OCIItem _ociItem, Info.ItemLoadInfo _loadInfo, bool _isNew)
        {
            Transform transform = _ociItem.objectItem.get_transform();

            _ociItem.listBones = new List <OCIChar.BoneInfo>();
            foreach (string bone in _loadInfo.bones)
            {
                GameObject loop = transform.FindLoop(bone);
                if (Object.op_Equality((Object)loop, (Object)null))
                {
                    Debug.LogWarning((object)string.Format("無い : {0}", (object)bone));
                }
                else
                {
                    OIBoneInfo _boneInfo = (OIBoneInfo)null;
                    if (!_ociItem.itemInfo.bones.TryGetValue(bone, out _boneInfo))
                    {
                        _boneInfo = new OIBoneInfo(Studio.Studio.GetNewIndex());
                        _ociItem.itemInfo.bones.Add(bone, _boneInfo);
                    }
                    GuideObject _guideObject = Singleton <GuideObjectManager> .Instance.Add(loop.get_transform(), _boneInfo.dicKey);

                    _guideObject.enablePos    = false;
                    _guideObject.enableScale  = false;
                    _guideObject.enableMaluti = false;
                    _guideObject.calcScale    = false;
                    _guideObject.scaleRate    = 0.5f;
                    _guideObject.scaleRot     = 0.025f;
                    _guideObject.scaleSelect  = 0.05f;
                    _guideObject.parentGuide  = _ociItem.guideObject;
                    _ociItem.listBones.Add(new OCIChar.BoneInfo(_guideObject, _boneInfo, -1));
                    _guideObject.SetActive(false, true);
                    this.listBones.Add(new ItemFKCtrl.TargetInfo(loop, _boneInfo.changeAmount, _isNew));
                }
            }
            this.count = this.listBones.Count;
        }
示例#19
0
        private void SetDeselectObject(GuideObject _object)
        {
            if (Object.op_Equality((Object)_object, (Object)null))
            {
                return;
            }
            bool isActive = _object.isActive;

            _object.isActive = false;
            Light _light = (Light)null;

            if (this.dicTransLight.TryGetValue(_object.transformTarget, out _light))
            {
                this.drawLightLine.Remove(_light);
                this.dicGuideLight.Remove(_object);
            }
            this.hashSelectObject.Remove(_object);
            this.guideInput.deselectObject = _object;
            if (this.hashSelectObject.Count <= 0 || !isActive)
            {
                return;
            }
            this.selectObject.isActive = true;
        }
        public static OCILight Load(
            OILightInfo _info,
            ObjectCtrlInfo _parent,
            TreeNodeObject _parentNode,
            bool _addInfo,
            int _initialPosition)
        {
            OCILight ociLight = new OCILight();

            Info.LightLoadInfo lightLoadInfo = (Info.LightLoadInfo)null;
            if (!Singleton <Info> .Instance.dicLightLoadInfo.TryGetValue(_info.no, out lightLoadInfo))
            {
                Debug.LogError((object)string.Format("存在しない番号[{0}]", (object)_info.no));
                return((OCILight)null);
            }
            ociLight.objectInfo = (ObjectInfo)_info;
            GameObject gameObject = Utility.LoadAsset <GameObject>(lightLoadInfo.bundlePath, lightLoadInfo.fileName, lightLoadInfo.manifest);

            gameObject.get_transform().SetParent(Singleton <Scene> .Instance.commonSpace.get_transform());
            ociLight.objectLight = gameObject;
            GuideObject guideObject = Singleton <GuideObjectManager> .Instance.Add(gameObject.get_transform(), _info.dicKey);

            guideObject.scaleSelect = 0.1f;
            guideObject.scaleRot    = 0.05f;
            guideObject.isActive    = false;
            guideObject.enableScale = false;
            guideObject.SetVisibleCenter(true);
            ociLight.guideObject = guideObject;
            ociLight.lightColor  = (LightColor)gameObject.GetComponent <LightColor>();
            if (Object.op_Implicit((Object)ociLight.lightColor))
            {
                ociLight.lightColor.color = _info.color;
            }
            ociLight.lightTarget = lightLoadInfo.target;
            switch (lightLoadInfo.target)
            {
            case Info.LightLoadInfo.Target.Chara:
                int num1 = ociLight.light.get_cullingMask() ^ LayerMask.GetMask(new string[2]
                {
                    "Map",
                    "MapNoShadow"
                });
                ociLight.light.set_cullingMask(num1);
                break;

            case Info.LightLoadInfo.Target.Map:
                int num2 = ociLight.light.get_cullingMask() ^ LayerMask.GetMask(new string[1]
                {
                    "Chara"
                });
                ociLight.light.set_cullingMask(num2);
                break;
            }
            if (_addInfo)
            {
                Studio.Studio.AddInfo((ObjectInfo)_info, (ObjectCtrlInfo)ociLight);
            }
            else
            {
                Studio.Studio.AddObjectCtrlInfo((ObjectCtrlInfo)ociLight);
            }
            TreeNodeObject _parent1       = !Object.op_Inequality((Object)_parentNode, (Object)null) ? (_parent == null ? (TreeNodeObject)null : _parent.treeNodeObject) : _parentNode;
            TreeNodeObject treeNodeObject = Studio.Studio.AddNode(lightLoadInfo.name, _parent1);

            treeNodeObject.enableAddChild          = false;
            treeNodeObject.treeState               = _info.treeState;
            guideObject.guideSelect.treeNodeObject = treeNodeObject;
            ociLight.treeNodeObject = treeNodeObject;
            if (_initialPosition == 1)
            {
                _info.changeAmount.pos = Singleton <Studio.Studio> .Instance.cameraCtrl.targetPos;
            }
            _info.changeAmount.OnChange();
            Studio.Studio.AddCtrlInfo((ObjectCtrlInfo)ociLight);
            _parent?.OnLoadAttach(!Object.op_Inequality((Object)_parentNode, (Object)null) ? _parent.treeNodeObject : _parentNode, (ObjectCtrlInfo)ociLight);
            ociLight.Update();
            return(ociLight);
        }
        private static OCICharFemale Add(
            ChaControl _female,
            OICharInfo _info,
            ObjectCtrlInfo _parent,
            TreeNodeObject _parentNode,
            bool _addInfo,
            int _initialPosition)
        {
            OCICharFemale ociCharFemale = new OCICharFemale();
            ChaFileStatus _status       = new ChaFileStatus();

            _status.Copy(_female.fileStatus);
            _female.ChangeNowCoordinate(false, true);
            _female.Load(true);
            _female.InitializeExpression(1, true);
            ociCharFemale.charInfo         = _female;
            ociCharFemale.charReference    = (ChaReference)_female;
            ociCharFemale.preparation      = (Preparation)_female.objAnim.GetComponent <Preparation>();
            ociCharFemale.finalIK          = _female.fullBodyIK;
            ociCharFemale.charInfo.hideMoz = false;
            for (int index = 0; index < 2; ++index)
            {
                GameObject gameObject = _female.objHair.SafeGet <GameObject>(index);
                if (Object.op_Inequality((Object)gameObject, (Object)null))
                {
                    AddObjectAssist.ArrangeNames(gameObject.get_transform());
                }
            }
            AddObjectAssist.SetupAccessoryDynamicBones((OCIChar)ociCharFemale);
            AddObjectAssist.DisableComponent((OCIChar)ociCharFemale);
            ociCharFemale.objectInfo = (ObjectInfo)_info;
            GuideObject guideObject = Singleton <GuideObjectManager> .Instance.Add(((Component)_female).get_transform(), _info.dicKey);

            guideObject.scaleSelect   = 0.1f;
            guideObject.scaleRot      = 0.05f;
            guideObject.isActiveFunc += new GuideObject.IsActiveFunc(((ObjectCtrlInfo)ociCharFemale).OnSelect);
            guideObject.SetVisibleCenter(true);
            ociCharFemale.guideObject               = guideObject;
            ociCharFemale.optionItemCtrl            = (OptionItemCtrl)((Component)_female).get_gameObject().AddComponent <OptionItemCtrl>();
            ociCharFemale.optionItemCtrl.animator   = _female.animBody;
            ociCharFemale.optionItemCtrl.oiCharInfo = _info;
            _info.changeAmount.onChangeScale       += new Action <Vector3>(ociCharFemale.optionItemCtrl.ChangeScale);
            ociCharFemale.charAnimeCtrl             = ociCharFemale.preparation?.CharAnimeCtrl;
            if (Object.op_Implicit((Object)ociCharFemale.charAnimeCtrl))
            {
                ociCharFemale.charAnimeCtrl.oiCharInfo = _info;
            }
            ociCharFemale.yureCtrl = ociCharFemale.preparation.YureCtrl;
            ociCharFemale.yureCtrl.Init((OCIChar)ociCharFemale);
            if (_info.animeInfo.group == 0 && _info.animeInfo.category == 2 && _info.animeInfo.no == 11)
            {
                int   group               = _info.animeInfo.group;
                int   category            = _info.animeInfo.category;
                int   no                  = _info.animeInfo.no;
                float animeNormalizedTime = _info.animeNormalizedTime;
                ociCharFemale.LoadAnime(0, 1, 0, 0.0f);
                _female.animBody.Update(0.0f);
                _info.animeInfo.group     = group;
                _info.animeInfo.category  = category;
                _info.animeInfo.no        = no;
                _info.animeNormalizedTime = animeNormalizedTime;
            }
            IKSolver ikSolver = ((IK)ociCharFemale.finalIK).GetIKSolver();

            if (!ikSolver.get_initiated())
            {
                ikSolver.Initiate(((Component)ociCharFemale.finalIK).get_transform());
            }
            if (_addInfo)
            {
                Studio.Studio.AddInfo((ObjectInfo)_info, (ObjectCtrlInfo)ociCharFemale);
            }
            else
            {
                Studio.Studio.AddObjectCtrlInfo((ObjectCtrlInfo)ociCharFemale);
            }
            TreeNodeObject _parent1       = !Object.op_Inequality((Object)_parentNode, (Object)null) ? (_parent == null ? (TreeNodeObject)null : _parent.treeNodeObject) : _parentNode;
            TreeNodeObject treeNodeObject = Studio.Studio.AddNode(_info.charFile.parameter.fullname, _parent1);

            treeNodeObject.enableChangeParent      = true;
            treeNodeObject.treeState               = _info.treeState;
            treeNodeObject.onVisible              += new TreeNodeObject.OnVisibleFunc(((ObjectCtrlInfo)ociCharFemale).OnVisible);
            treeNodeObject.enableVisible           = true;
            treeNodeObject.visible                 = _info.visible;
            guideObject.guideSelect.treeNodeObject = treeNodeObject;
            ociCharFemale.treeNodeObject           = treeNodeObject;
            _info.changeAmount.OnChange();
            AddObjectAssist.InitBone((OCIChar)ociCharFemale, _female.objBodyBone.get_transform(), Singleton <Info> .Instance.dicBoneInfo);
            AddObjectAssist.InitIKTarget((OCIChar)ociCharFemale, _addInfo);
            AddObjectAssist.InitLookAt((OCIChar)ociCharFemale);
            AddObjectAssist.InitAccessoryPoint((OCIChar)ociCharFemale);
            ociCharFemale.voiceCtrl.ociChar = (OCIChar)ociCharFemale;
            ociCharFemale.InitKinematic(((Component)_female).get_gameObject(), ociCharFemale.finalIK, _female.neckLookCtrl, (DynamicBone[])null, AddObjectFemale.GetSkirtDynamic(_female.objClothes));
            treeNodeObject.enableAddChild = false;
            Studio.Studio.AddCtrlInfo((ObjectCtrlInfo)ociCharFemale);
            _parent?.OnLoadAttach(!Object.op_Inequality((Object)_parentNode, (Object)null) ? _parent.treeNodeObject : _parentNode, (ObjectCtrlInfo)ociCharFemale);
            if (_initialPosition == 1)
            {
                _info.changeAmount.pos = Singleton <Studio.Studio> .Instance.cameraCtrl.targetPos;
            }
            ociCharFemale.LoadAnime(_info.animeInfo.group, _info.animeInfo.category, _info.animeInfo.no, _info.animeNormalizedTime);
            for (int index = 0; index < 5; ++index)
            {
                ociCharFemale.ActiveIK((OIBoneInfo.BoneGroup)(1 << index), _info.activeIK[index], false);
            }
            ociCharFemale.ActiveKinematicMode(OICharInfo.KinematicMode.IK, _info.enableIK, true);
            // ISSUE: object of a compiler-generated type is created
            foreach (\u003C\u003E__AnonType18 <OIBoneInfo.BoneGroup, int> anonType18 in ((IEnumerable <OIBoneInfo.BoneGroup>)FKCtrl.parts).Select <OIBoneInfo.BoneGroup, \u003C\u003E__AnonType18 <OIBoneInfo.BoneGroup, int> >((Func <OIBoneInfo.BoneGroup, int, \u003C\u003E__AnonType18 <OIBoneInfo.BoneGroup, int> >)((p, i) => new \u003C\u003E__AnonType18 <OIBoneInfo.BoneGroup, int>(p, i))))
            {
                ociCharFemale.ActiveFK(anonType18.p, ociCharFemale.oiCharInfo.activeFK[anonType18.i], false);
            }
            ociCharFemale.ActiveKinematicMode(OICharInfo.KinematicMode.FK, _info.enableFK, true);
            for (int categoryNo = 0; categoryNo < _info.expression.Length; ++categoryNo)
            {
                ociCharFemale.charInfo.EnableExpressionCategory(categoryNo, _info.expression[categoryNo]);
            }
            ociCharFemale.animeSpeed        = ociCharFemale.animeSpeed;
            ociCharFemale.animeOptionParam1 = ociCharFemale.animeOptionParam1;
            ociCharFemale.animeOptionParam2 = ociCharFemale.animeOptionParam2;
            foreach (byte num in _female.fileStatus.siruLv)
            {
                num = (byte)0;
            }
            _status.visibleSonAlways = _info.visibleSon;
            ociCharFemale.SetSonLength(_info.sonLength);
            ociCharFemale.SetVisibleSimple(_info.visibleSimple);
            ociCharFemale.SetSimpleColor(_info.simpleColor);
            AddObjectAssist.UpdateState((OCIChar)ociCharFemale, _status);
            return(ociCharFemale);
        }
示例#22
0
        public static OCIItem Load(
            OIItemInfo _info,
            ObjectCtrlInfo _parent,
            TreeNodeObject _parentNode,
            bool _addInfo,
            int _initialPosition)
        {
            OCIItem _ociItem = new OCIItem();

            Info.ItemLoadInfo loadInfo = AddObjectItem.GetLoadInfo(_info.group, _info.category, _info.no);
            if (loadInfo == null)
            {
                Debug.LogWarningFormat("存在しない : G[{0}] : C[{1}] : N[{2}]", new object[3]
                {
                    (object)_info.group,
                    (object)_info.category,
                    (object)_info.no
                });
                loadInfo = AddObjectItem.GetLoadInfo(0, 0, 399);
            }
            _ociItem.objectInfo = (ObjectInfo)_info;
            GameObject gameObject = CommonLib.LoadAsset <GameObject>(loadInfo.bundlePath, loadInfo.fileName, true, loadInfo.manifest);

            if (Object.op_Equality((Object)gameObject, (Object)null))
            {
                Debug.LogError((object)string.Format("読み込み失敗 : {0} : {1} : {2}", (object)loadInfo.manifest, (object)loadInfo.bundlePath, (object)loadInfo.fileName));
                Studio.Studio.DeleteIndex(_info.dicKey);
                return((OCIItem)null);
            }
            gameObject.get_transform().SetParent(Singleton <Scene> .Instance.commonSpace.get_transform());
            _ociItem.objectItem    = gameObject;
            _ociItem.itemComponent = (ItemComponent)gameObject.GetComponent <ItemComponent>();
            _ociItem.arrayRender   = ((IEnumerable <Renderer>)gameObject.GetComponentsInChildren <Renderer>()).Where <Renderer>((Func <Renderer, bool>)(v => v.get_enabled())).ToArray <Renderer>();
            ParticleSystem[] componentsInChildren = (ParticleSystem[])gameObject.GetComponentsInChildren <ParticleSystem>();
            if (!((IList <ParticleSystem>)componentsInChildren).IsNullOrEmpty <ParticleSystem>())
            {
                _ociItem.arrayParticle = ((IEnumerable <ParticleSystem>)componentsInChildren).Where <ParticleSystem>((Func <ParticleSystem, bool>)(v => v.get_isPlaying())).ToArray <ParticleSystem>();
            }
            MeshCollider component = (MeshCollider)gameObject.GetComponent <MeshCollider>();

            if (Object.op_Implicit((Object)component))
            {
                ((Collider)component).set_enabled(false);
            }
            _ociItem.dynamicBones = (DynamicBone[])gameObject.GetComponentsInChildren <DynamicBone>();
            GuideObject guideObject = Singleton <GuideObjectManager> .Instance.Add(gameObject.get_transform(), _info.dicKey);

            guideObject.isActive      = false;
            guideObject.scaleSelect   = 0.1f;
            guideObject.scaleRot      = 0.05f;
            guideObject.isActiveFunc += new GuideObject.IsActiveFunc(((ObjectCtrlInfo)_ociItem).OnSelect);
            guideObject.enableScale   = !Object.op_Inequality((Object)_ociItem.itemComponent, (Object)null) || _ociItem.itemComponent.isScale;
            guideObject.SetVisibleCenter(true);
            _ociItem.guideObject = guideObject;
            if (Object.op_Inequality((Object)_ociItem.itemComponent, (Object)null) && Object.op_Inequality((Object)_ociItem.itemComponent.childRoot, (Object)null))
            {
                _ociItem.childRoot = _ociItem.itemComponent.childRoot;
            }
            if (Object.op_Equality((Object)_ociItem.childRoot, (Object)null))
            {
                _ociItem.childRoot = gameObject.get_transform();
            }
            _ociItem.animator = (Animator)gameObject.GetComponentInChildren <Animator>();
            if (Object.op_Implicit((Object)_ociItem.animator))
            {
                ((Behaviour)_ociItem.animator).set_enabled(Object.op_Inequality((Object)_ociItem.itemComponent, (Object)null) && _ociItem.itemComponent.isAnime);
            }
            if (Object.op_Inequality((Object)_ociItem.itemComponent, (Object)null))
            {
                _ociItem.itemComponent.SetGlass();
                _ociItem.itemComponent.SetEmission();
                if (_addInfo && _ociItem.itemComponent.check)
                {
                    Color[] defColorMain = _ociItem.itemComponent.defColorMain;
                    for (int index = 0; index < 3; ++index)
                    {
                        _info.colors[index].mainColor = defColorMain[index];
                    }
                    Color[] defColorPattern = _ociItem.itemComponent.defColorPattern;
                    for (int index = 0; index < 3; ++index)
                    {
                        _info.colors[index].pattern.color = defColorPattern[index];
                        _info.colors[index].metallic      = _ociItem.itemComponent.info[index].defMetallic;
                        _info.colors[index].glossiness    = _ociItem.itemComponent.info[index].defGlossiness;
                        _info.colors[index].pattern.clamp = _ociItem.itemComponent.info[index].defClamp;
                        _info.colors[index].pattern.uv    = _ociItem.itemComponent.info[index].defUV;
                        _info.colors[index].pattern.rot   = _ociItem.itemComponent.info[index].defRot;
                    }
                    _info.colors[3].mainColor = _ociItem.itemComponent.defGlass;
                    _info.emissionColor       = _ociItem.itemComponent.DefEmissionColor;
                    _info.emissionPower       = _ociItem.itemComponent.defEmissionStrength;
                    _info.lightCancel         = _ociItem.itemComponent.defLightCancel;
                }
                _ociItem.itemComponent.SetupSea();
            }
            _ociItem.particleComponent = (ParticleComponent)gameObject.GetComponent <ParticleComponent>();
            if (Object.op_Inequality((Object)_ociItem.particleComponent, (Object)null) && _addInfo)
            {
                _info.colors[0].mainColor = _ociItem.particleComponent.defColor01;
            }
            _ociItem.iconComponent = (IconComponent)gameObject.GetComponent <IconComponent>();
            if (Object.op_Inequality((Object)_ociItem.iconComponent, (Object)null))
            {
                _ociItem.iconComponent.Layer = LayerMask.NameToLayer("Studio/Camera");
            }
            _ociItem.VisibleIcon    = Singleton <Studio.Studio> .Instance.workInfo.visibleGimmick;
            _ociItem.panelComponent = (PanelComponent)gameObject.GetComponent <PanelComponent>();
            if (_addInfo && Object.op_Inequality((Object)_ociItem.panelComponent, (Object)null))
            {
                _info.colors[0].mainColor     = _ociItem.panelComponent.defColor;
                _info.colors[0].pattern.uv    = _ociItem.panelComponent.defUV;
                _info.colors[0].pattern.clamp = _ociItem.panelComponent.defClamp;
                _info.colors[0].pattern.rot   = _ociItem.panelComponent.defRot;
            }
            _ociItem.seComponent = (SEComponent)gameObject.GetComponent <SEComponent>();
            if (_addInfo && Object.op_Inequality((Object)_ociItem.itemComponent, (Object)null) && !((IList <ItemComponent.OptionInfo>)_ociItem.itemComponent.optionInfos).IsNullOrEmpty <ItemComponent.OptionInfo>())
            {
                _info.option = Enumerable.Repeat <bool>(true, _ociItem.itemComponent.optionInfos.Length).ToList <bool>();
            }
            if (_addInfo)
            {
                Studio.Studio.AddInfo((ObjectInfo)_info, (ObjectCtrlInfo)_ociItem);
            }
            else
            {
                Studio.Studio.AddObjectCtrlInfo((ObjectCtrlInfo)_ociItem);
            }
            TreeNodeObject _parent1       = !Object.op_Inequality((Object)_parentNode, (Object)null) ? (_parent == null ? (TreeNodeObject)null : _parent.treeNodeObject) : _parentNode;
            TreeNodeObject treeNodeObject = Studio.Studio.AddNode(loadInfo.name, _parent1);

            treeNodeObject.treeState               = _info.treeState;
            treeNodeObject.onVisible              += new TreeNodeObject.OnVisibleFunc(((ObjectCtrlInfo)_ociItem).OnVisible);
            treeNodeObject.enableVisible           = true;
            treeNodeObject.visible                 = _info.visible;
            guideObject.guideSelect.treeNodeObject = treeNodeObject;
            _ociItem.treeNodeObject                = treeNodeObject;
            if (!loadInfo.bones.IsNullOrEmpty <string>())
            {
                _ociItem.itemFKCtrl = (ItemFKCtrl)gameObject.AddComponent <ItemFKCtrl>();
                _ociItem.itemFKCtrl.InitBone(_ociItem, loadInfo, _addInfo);
            }
            else
            {
                _ociItem.itemFKCtrl = (ItemFKCtrl)null;
            }
            if (_initialPosition == 1)
            {
                _info.changeAmount.pos = Singleton <Studio.Studio> .Instance.cameraCtrl.targetPos;
            }
            _info.changeAmount.OnChange();
            Studio.Studio.AddCtrlInfo((ObjectCtrlInfo)_ociItem);
            _parent?.OnLoadAttach(!Object.op_Inequality((Object)_parentNode, (Object)null) ? _parent.treeNodeObject : _parentNode, (ObjectCtrlInfo)_ociItem);
            if (Object.op_Implicit((Object)_ociItem.animator))
            {
                if (_info.animePattern != 0)
                {
                    _ociItem.SetAnimePattern(_info.animePattern);
                }
                _ociItem.animator.set_speed(_info.animeSpeed);
                if ((double)_info.animeNormalizedTime != 0.0 && _ociItem.animator.get_layerCount() != 0)
                {
                    _ociItem.animator.Update(1f);
                    AnimatorStateInfo animatorStateInfo = _ociItem.animator.GetCurrentAnimatorStateInfo(0);
                    _ociItem.animator.Play(((AnimatorStateInfo) ref animatorStateInfo).get_shortNameHash(), 0, _info.animeNormalizedTime);
                }
            }
            _ociItem.SetupPatternTex();
            _ociItem.SetMainTex();
            _ociItem.UpdateColor();
            _ociItem.ActiveFK(_ociItem.itemInfo.enableFK);
            _ociItem.UpdateFKColor();
            _ociItem.ActiveDynamicBone(_ociItem.itemInfo.enableDynamicBone);
            _ociItem.UpdateOption();
            _ociItem.particleComponent?.PlayOnLoad();
            return(_ociItem);
        }
示例#23
0
        public static OCICamera Load(
            OICameraInfo _info,
            ObjectCtrlInfo _parent,
            TreeNodeObject _parentNode,
            bool _addInfo,
            int _initialPosition)
        {
            OCICamera ocic = new OCICamera();

            ocic.objectInfo = (ObjectInfo)_info;
            GameObject gameObject = CommonLib.LoadAsset <GameObject>("studio/base/00.unity3d", "p_koi_stu_cameraicon00_00", true, string.Empty);

            if (Object.op_Equality((Object)gameObject, (Object)null))
            {
                Studio.Studio.DeleteIndex(_info.dicKey);
                return((OCICamera)null);
            }
            gameObject.get_transform().SetParent(Singleton <Scene> .Instance.commonSpace.get_transform());
            ocic.objectItem   = gameObject;
            ocic.meshRenderer = (MeshRenderer)gameObject.GetComponent <MeshRenderer>();
            GuideObject guideObject = Singleton <GuideObjectManager> .Instance.Add(gameObject.get_transform(), _info.dicKey);

            guideObject.isActive    = false;
            guideObject.scaleSelect = 0.1f;
            guideObject.scaleRot    = 0.05f;
            guideObject.enableScale = false;
            ocic.guideObject        = guideObject;
            if (_addInfo)
            {
                Studio.Studio.AddInfo((ObjectInfo)_info, (ObjectCtrlInfo)ocic);
            }
            else
            {
                Studio.Studio.AddObjectCtrlInfo((ObjectCtrlInfo)ocic);
            }
            TreeNodeObject _parent1       = !Object.op_Inequality((Object)_parentNode, (Object)null) ? (_parent == null ? (TreeNodeObject)null : _parent.treeNodeObject) : _parentNode;
            TreeNodeObject treeNodeObject = Studio.Studio.AddNode(_info.name, _parent1);

            treeNodeObject.onVisible              += new TreeNodeObject.OnVisibleFunc(((ObjectCtrlInfo)ocic).OnVisible);
            treeNodeObject.treeState               = _info.treeState;
            treeNodeObject.enableVisible           = true;
            treeNodeObject.enableAddChild          = false;
            treeNodeObject.visible                 = _info.visible;
            treeNodeObject.baseColor               = !_info.active ? AddObjectCamera.baseColor : AddObjectCamera.activeColor;
            treeNodeObject.colorSelect             = treeNodeObject.baseColor;
            guideObject.guideSelect.treeNodeObject = treeNodeObject;
            ocic.treeNodeObject = treeNodeObject;
            ObservableExtensions.Subscribe <PointerEventData>((IObservable <M0>)ObservableTriggerExtensions.OnPointerClickAsObservable((UIBehaviour)treeNodeObject.buttonSelect), (Action <M0>)(_ped =>
            {
                if (_ped.get_button() != 1)
                {
                    return;
                }
                Singleton <Studio.Studio> .Instance.ChangeCamera(ocic);
                Singleton <Studio.Studio> .Instance.manipulatePanelCtrl.UpdateInfo(5);
            }));
            if (_initialPosition == 1)
            {
                _info.changeAmount.pos = Singleton <Studio.Studio> .Instance.cameraCtrl.targetPos;
            }
            _info.changeAmount.OnChange();
            Studio.Studio.AddCtrlInfo((ObjectCtrlInfo)ocic);
            _parent?.OnLoadAttach(!Object.op_Inequality((Object)_parentNode, (Object)null) ? _parent.treeNodeObject : _parentNode, (ObjectCtrlInfo)ocic);
            Singleton <Studio.Studio> .Instance.ChangeCamera(ocic, _info.active, false);

            return(ocic);
        }
示例#24
0
 public PointAidInfo(GuideObject _guideObject, OIRoutePointAidInfo _aidInfo)
 {
     this.guideObject = _guideObject;
     this.aidInfo     = _aidInfo;
 }
示例#25
0
        public static OCIRoutePoint LoadPoint(
            OCIRoute _ocir,
            OIRoutePointInfo _rpInfo,
            int _initialPosition)
        {
            int        index      = !_ocir.listPoint.IsNullOrEmpty <OCIRoutePoint>() ? _ocir.listPoint.Count - 1 : -1;
            GameObject gameObject = CommonLib.LoadAsset <GameObject>("studio/base/00.unity3d", "p_RoutePoint", true, string.Empty);

            if (Object.op_Equality((Object)gameObject, (Object)null))
            {
                Studio.Studio.DeleteIndex(_rpInfo.dicKey);
                return((OCIRoutePoint)null);
            }
            gameObject.get_transform().SetParent(_ocir.objectItem.get_transform());
            GuideObject _guide = Singleton <GuideObjectManager> .Instance.Add(gameObject.get_transform(), _rpInfo.dicKey);

            _guide.isActive    = false;
            _guide.scaleSelect = 0.1f;
            _guide.scaleRot    = 0.05f;
            _guide.enablePos   = index != -1;
            _guide.enableRot   = index == -1;
            _guide.enableScale = false;
            _guide.mode        = GuideObject.Mode.World;
            _guide.moveCalc    = GuideMove.MoveCalc.TYPE2;
            TreeNodeObject childRoot = _ocir.treeNodeObject.childRoot;

            _ocir.treeNodeObject.childRoot = (TreeNodeObject)null;
            TreeNodeObject _treeNode = Studio.Studio.AddNode(_rpInfo.name, _ocir.treeNodeObject);

            _treeNode.treeState               = _rpInfo.treeState;
            _treeNode.enableChangeParent      = false;
            _treeNode.enableDelete            = index != -1;
            _treeNode.enableAddChild          = false;
            _treeNode.enableCopy              = false;
            _treeNode.enableVisible           = false;
            _guide.guideSelect.treeNodeObject = _treeNode;
            _ocir.treeNodeObject.childRoot    = childRoot;
            OCIRoutePoint _ocirp = new OCIRoutePoint(_ocir, _rpInfo, gameObject, _guide, _treeNode);

            _ocir.listPoint.Add(_ocirp);
            _ocir.UpdateNumber();
            _treeNode.onVisible += new TreeNodeObject.OnVisibleFunc(((ObjectCtrlInfo)_ocirp).OnVisible);
            _guide.isActiveFunc += new GuideObject.IsActiveFunc(((ObjectCtrlInfo)_ocirp).OnSelect);
            Studio.Studio.AddCtrlInfo((ObjectCtrlInfo)_ocirp);
            AddObjectRoute.InitAid(_ocirp);
            if (_initialPosition == 1)
            {
                if (index == -1)
                {
                    _rpInfo.changeAmount.pos = _ocir.objectInfo.changeAmount.pos;
                }
                else
                {
                    OCIRoutePoint ociRoutePoint = _ocir.listPoint[index];
                    _rpInfo.changeAmount.pos = _ocir.objectItem.get_transform().InverseTransformPoint(ociRoutePoint.position);
                }
            }
            _rpInfo.changeAmount.OnChange();
            _rpInfo.changeAmount.onChangePosAfter += new Action(_ocir.UpdateLine);
            _rpInfo.changeAmount.onChangeRot      += new Action(_ocir.UpdateLine);
            _ocirp.connection = _ocirp.connection;
            return(_ocirp);
        }
        private static OCIChar.IKInfo AddIKTarget(
            OCIChar _ociChar,
            IKCtrl _ikCtrl,
            int _no,
            Transform _target,
            bool _usedRot,
            Transform _bone,
            bool _isRed)
        {
            OIIKTargetInfo _targetInfo = (OIIKTargetInfo)null;
            bool           flag        = !_ociChar.oiCharInfo.ikTarget.TryGetValue(_no, out _targetInfo);

            if (flag)
            {
                _targetInfo = new OIIKTargetInfo(Studio.Studio.GetNewIndex());
                _ociChar.oiCharInfo.ikTarget.Add(_no, _targetInfo);
            }
            switch (_no)
            {
            case 0:
                _targetInfo.group = OIBoneInfo.BoneGroup.Body;
                break;

            case 1:
            case 2:
            case 3:
                _targetInfo.group = OIBoneInfo.BoneGroup.LeftArm;
                break;

            case 4:
            case 5:
            case 6:
                _targetInfo.group = OIBoneInfo.BoneGroup.RightArm;
                break;

            case 7:
            case 8:
            case 9:
                _targetInfo.group = OIBoneInfo.BoneGroup.LeftLeg;
                break;

            case 10:
            case 11:
            case 12:
                _targetInfo.group = OIBoneInfo.BoneGroup.RightLeg;
                break;
            }
            GameObject gameObject = new GameObject(((Object)_target).get_name() + "(work)");

            gameObject.get_transform().SetParent(((Component)_ociChar.charInfo).get_transform());
            GuideObject _guideObject = Singleton <GuideObjectManager> .Instance.Add(gameObject.get_transform(), _targetInfo.dicKey);

            _guideObject.mode              = GuideObject.Mode.LocalIK;
            _guideObject.enableRot         = _usedRot;
            _guideObject.enableScale       = false;
            _guideObject.enableMaluti      = false;
            _guideObject.calcScale         = false;
            _guideObject.scaleRate         = 0.5f;
            _guideObject.scaleRot          = 0.05f;
            _guideObject.scaleSelect       = 0.1f;
            _guideObject.parentGuide       = _ociChar.guideObject;
            _guideObject.guideSelect.color = !_isRed?Color.get_blue() : Color.get_red();

            _guideObject.moveCalc = GuideMove.MoveCalc.TYPE3;
            OCIChar.IKInfo ikInfo = new OCIChar.IKInfo(_guideObject, _targetInfo, _target, gameObject.get_transform(), _bone);
            if (!flag)
            {
                _targetInfo.changeAmount.OnChange();
            }
            _ikCtrl.addIKInfo = ikInfo;
            _ociChar.listIKTarget.Add(ikInfo);
            _guideObject.SetActive(false, true);
            return(ikInfo);
        }
示例#27
0
        public static OCIRoute Load(
            OIRouteInfo _info,
            ObjectCtrlInfo _parent,
            TreeNodeObject _parentNode,
            bool _addInfo,
            int _initialPosition)
        {
            OCIRoute _ocir = new OCIRoute();

            _ocir.objectInfo = (ObjectInfo)_info;
            GameObject gameObject = CommonLib.LoadAsset <GameObject>("studio/base/00.unity3d", "p_Route", true, string.Empty);

            if (Object.op_Equality((Object)gameObject, (Object)null))
            {
                Studio.Studio.DeleteIndex(_info.dicKey);
                return((OCIRoute)null);
            }
            gameObject.get_transform().SetParent(Singleton <Scene> .Instance.commonSpace.get_transform());
            _ocir.objectItem = gameObject;
            GuideObject guideObject = Singleton <GuideObjectManager> .Instance.Add(gameObject.get_transform(), _info.dicKey);

            guideObject.isActive    = false;
            guideObject.scaleSelect = 0.1f;
            guideObject.scaleRot    = 0.05f;
            guideObject.enableScale = false;
            guideObject.SetVisibleCenter(true);
            _ocir.guideObject = guideObject;
            _ocir.childRoot   = gameObject.get_transform().GetChild(0);
            if (_addInfo)
            {
                Studio.Studio.AddInfo((ObjectInfo)_info, (ObjectCtrlInfo)_ocir);
            }
            else
            {
                Studio.Studio.AddObjectCtrlInfo((ObjectCtrlInfo)_ocir);
            }
            TreeNodeObject _parent1 = !Object.op_Inequality((Object)_parentNode, (Object)null) ? (_parent == null ? (TreeNodeObject)null : _parent.treeNodeObject) : _parentNode;
            TreeNodeObject _parent2 = Studio.Studio.AddNode(_info.name, _parent1);

            _parent2.treeState                     = _info.treeState;
            _parent2.enableVisible                 = true;
            _parent2.enableChangeParent            = false;
            _parent2.visible                       = _info.visible;
            _parent2.colorSelect                   = _parent2.baseColor;
            _parent2.onVisible                    += new TreeNodeObject.OnVisibleFunc(((ObjectCtrlInfo)_ocir).OnVisible);
            _parent2.onDelete                     += new Action(_ocir.OnDeleteNode);
            _parent2.checkChild                   += new TreeNodeObject.CheckFunc(_ocir.CheckParentLoop);
            _parent2.checkParent                  += new TreeNodeObject.CheckFunc(_ocir.CheckParentLoop);
            guideObject.guideSelect.treeNodeObject = _parent2;
            _ocir.treeNodeObject                   = _parent2;
            _ocir.routeComponent                   = (RouteComponent)gameObject.GetComponent <RouteComponent>();
            TreeNodeObject treeNodeObject = Studio.Studio.AddNode("子接続先", _parent2);

            treeNodeObject.enableChangeParent = false;
            treeNodeObject.enableDelete       = false;
            treeNodeObject.enableCopy         = false;
            treeNodeObject.baseColor          = Utility.ConvertColor(204, 128, 164);
            treeNodeObject.colorSelect        = treeNodeObject.baseColor;
            _parent2.childRoot  = treeNodeObject;
            _ocir.childNodeRoot = treeNodeObject;
            if (_info.route.IsNullOrEmpty <OIRoutePointInfo>())
            {
                _ocir.routeInfo.route.Add(new OIRoutePointInfo(Studio.Studio.GetNewIndex()));
            }
            foreach (OIRoutePointInfo _rpInfo in _info.route)
            {
                AddObjectRoute.LoadPoint(_ocir, _rpInfo, -1);
            }
            Singleton <Studio.Studio> .Instance.treeNodeCtrl.RefreshHierachy();

            if (_initialPosition == 1)
            {
                _info.changeAmount.pos = Singleton <Studio.Studio> .Instance.cameraCtrl.targetPos;
            }
            _info.changeAmount.OnChange();
            Studio.Studio.AddCtrlInfo((ObjectCtrlInfo)_ocir);
            _parent?.OnLoadAttach(!Object.op_Inequality((Object)_parentNode, (Object)null) ? _parent.treeNodeObject : _parentNode, (ObjectCtrlInfo)_ocir);
            _info.changeAmount.onChangePos += new Action(_ocir.UpdateLine);
            _info.changeAmount.onChangeRot += new Action(_ocir.UpdateLine);
            _ocir.ForceUpdateLine();
            _ocir.visibleLine = _ocir.visibleLine;
            if (_ocir.isPlay)
            {
                _ocir.Play();
            }
            else
            {
                _ocir.Stop(true);
            }
            return(_ocir);
        }
        public static void InitBone(
            OCIChar _ociChar,
            Transform _transformRoot,
            Dictionary <int, Info.BoneInfo> _dicBoneInfo)
        {
            Dictionary <int, OCIChar.BoneInfo> dictionary = new Dictionary <int, OCIChar.BoneInfo>();

            foreach (KeyValuePair <int, Info.BoneInfo> keyValuePair in _dicBoneInfo)
            {
                if (_ociChar.sex != 1 || keyValuePair.Value.level != 2)
                {
                    GameObject loop;
                    switch (keyValuePair.Value.group)
                    {
                    case 7:
                    case 8:
                    case 9:
                        loop = _ociChar.charReference.GetReferenceInfo(ChaReference.RefObjKey.HeadParent).get_transform().FindLoop(keyValuePair.Value.bone);
                        break;

                    default:
                        loop = _transformRoot.FindLoop(keyValuePair.Value.bone);
                        if (Object.op_Equality((Object)loop, (Object)null))
                        {
                            Debug.LogWarning((object)keyValuePair.Value.bone);
                            break;
                        }
                        break;
                    }
                    if (!Object.op_Equality((Object)loop, (Object)null))
                    {
                        OCIChar.BoneInfo boneInfo1 = (OCIChar.BoneInfo)null;
                        if (dictionary.TryGetValue(keyValuePair.Value.sync, out boneInfo1))
                        {
                            boneInfo1.AddSyncBone(loop);
                        }
                        else
                        {
                            OIBoneInfo _boneInfo = (OIBoneInfo)null;
                            if (!_ociChar.oiCharInfo.bones.TryGetValue(keyValuePair.Key, out _boneInfo))
                            {
                                _boneInfo = new OIBoneInfo(Studio.Studio.GetNewIndex());
                                _ociChar.oiCharInfo.bones.Add(keyValuePair.Key, _boneInfo);
                            }
                            switch (keyValuePair.Value.group)
                            {
                            case 0:
                            case 1:
                            case 2:
                            case 3:
                            case 4:
                                _boneInfo.group = (OIBoneInfo.BoneGroup)(1 << keyValuePair.Value.group | 1);
                                break;

                            case 7:
                            case 8:
                            case 9:
                                _boneInfo.group = OIBoneInfo.BoneGroup.Hair;
                                break;

                            case 10:
                                _boneInfo.group = OIBoneInfo.BoneGroup.Neck;
                                break;

                            case 11:
                            case 12:
                                _boneInfo.group = OIBoneInfo.BoneGroup.Breast;
                                break;

                            case 13:
                                _boneInfo.group = OIBoneInfo.BoneGroup.Skirt;
                                break;

                            default:
                                _boneInfo.group = (OIBoneInfo.BoneGroup)(1 << keyValuePair.Value.group);
                                break;
                            }
                            _boneInfo.level = keyValuePair.Value.level;
                            GuideObject _guideObject = AddObjectAssist.AddBoneGuide(loop.get_transform(), _boneInfo.dicKey, _ociChar.guideObject, keyValuePair.Value.name);
                            switch (_boneInfo.group)
                            {
                            case OIBoneInfo.BoneGroup.RightHand:
                            case OIBoneInfo.BoneGroup.LeftHand:
                                _guideObject.scaleSelect = 0.025f;
                                break;
                            }
                            OCIChar.BoneInfo boneInfo2 = new OCIChar.BoneInfo(_guideObject, _boneInfo, keyValuePair.Key);
                            _ociChar.listBones.Add(boneInfo2);
                            _guideObject.SetActive(false, true);
                            if (keyValuePair.Value.no == 65)
                            {
                                _ociChar.transSon = loop.get_transform();
                            }
                            if (keyValuePair.Value.sync != -1)
                            {
                                dictionary.Add(keyValuePair.Key, boneInfo2);
                            }
                        }
                    }
                }
            }
            _ociChar.UpdateFKColor(FKCtrl.parts);
        }