Exemplo n.º 1
0
        /// <summary>
        /// Parses camera data into BattleCamera struct. Main purpouse of this function is to
        /// actually read all the offsets and pointers to human readable form of struct. This
        /// function later calls ReadAnimation(n) where n is animation Id (i.e. 9 is camCollection=1
        /// and cameraAnim=0)
        /// </summary>
        public static Camera Read(BinaryReader br)
        {
            Camera c = new Camera();

            br.BaseStream.Seek(c.bs_cameraPointer, 0);
            uint cCameraHeaderSector        = br.ReadUInt16();
            uint pCameraSetting             = br.ReadUInt16();
            uint pCameraAnimationCollection = br.ReadUInt16();
            uint sCameraDataSize            = br.ReadUInt16();

            //Camera settings parsing?
            BattleCameraSettings bcs = new BattleCameraSettings()
            {
                unk = br.ReadBytes(24)
            };

            //end of camera settings parsing

            br.BaseStream.Seek(pCameraAnimationCollection + c.bs_cameraPointer, SeekOrigin.Begin);
            BattleCameraCollection bcc = new BattleCameraCollection {
                cAnimCollectionCount = br.ReadUInt16()
            };

            BattleCameraSet[] bcset = new BattleCameraSet[bcc.cAnimCollectionCount];
            bcc.battleCameraSet = bcset;
            for (int i = 0; i < bcc.cAnimCollectionCount; i++)
            {
                bcset[i] = new BattleCameraSet()
                {
                    globalSetPointer = (uint)(br.BaseStream.Position + br.ReadUInt16() - i * 2 - 2)
                }
            }
            ;
            bcc.pCameraEOF = br.ReadUInt16();

            for (int i = 0; i < bcc.cAnimCollectionCount; i++)
            {
                br.BaseStream.Seek(bcc.battleCameraSet[i].globalSetPointer, 0);
                bcc.battleCameraSet[i].animPointers = new uint[8];
                for (int n = 0; n < bcc.battleCameraSet[i].animPointers.Length; n++)
                {
                    bcc.battleCameraSet[i].animPointers[n] = (uint)(br.BaseStream.Position + br.ReadUInt16() * 2 - n * 2);
                }
            }
            CameraStruct cam = Extended.ByteArrayToStructure <CameraStruct>(new byte[Marshal.SizeOf(typeof(CameraStruct))]); //what about this kind of trick to initialize struct with a lot amount of fixed sizes in arrays?

            c.battleCameraCollection = bcc;
            c.battleCameraSettings   = bcs;
            c.cam = cam;

            c.ReadAnimationById(c.GetRandomCameraN(Memory.Encounters.Current), br);
            c.EndOffset = c.bs_cameraPointer + sCameraDataSize;
            //br.BaseStream.Seek(c.EndOffset, 0); //step out
            return(c);
        }

        #endregion Methods
    }
Exemplo n.º 2
0
    private IEnumerator acivateCamera(CameraStruct cameraStruct, float waitTime, int index)
    {
        yield return(new WaitForSeconds(waitTime));

        cameraStruct.camera.cameraActive = true;
        cameraStruct.camera.lightSource.SetActive(true);
        afterShutdown(cameraStruct);
        GetPlayer.Instance.CmdCameraBackOnline(index);
    }
Exemplo n.º 3
0
    void DrawCamera(int id)
    {
        if (!(id < mData.AnimationSkillList.Count))
        {
            return;
        }

        for (int i = 0; i < mData.AnimationSkillList[id].CameraStructList.Count; i++)
        {
            CameraStruct _eff = mData.AnimationSkillList[id].CameraStructList[i];

            EditorGUI.indentLevel++;
            EditorGUILayout.BeginVertical(EditorStyles.helpBox);

            string _titleName = "Camera" + (i + 1).ToString();
            EditorGUILayout.BeginHorizontal();
            //此子特效的界面折叠
            _eff.isFoldout = EditorGUILayout.Foldout(_eff.isFoldout, _titleName);
            GUILayout.FlexibleSpace();
            //此子特效是否可用
            _eff.isEnabled = EditorGUILayout.Toggle("", _eff.isEnabled);

            if (GUILayout.Button("DELETE"))
            {
                mData.AnimationSkillList[id].CameraStructList.Remove(_eff);
                return;
            }

            EditorGUILayout.EndHorizontal();

            mData.AnimationSkillList[id].CameraStructList[i] = _eff;

            if (_eff.isFoldout)
            {
                EditorGUI.BeginDisabledGroup(!_eff.isEnabled);
                _eff.DelayTime = EditorGUILayout.FloatField("Delay Time", _eff.DelayTime);
                if (_eff.DelayTime > mData.AnimationSkillList[id].fTime)
                {
                    _eff.DelayTime = mData.AnimationSkillList [id].fTime;
                }

                _eff.ShakeTime = EditorGUILayout.FloatField("Shake Time", _eff.ShakeTime);
                _eff.Strength  = EditorGUILayout.FloatField("Strength", _eff.Strength);
                _eff.Vibrato   = EditorGUILayout.IntField("Vibrato", _eff.Vibrato);

                string[] _nameArry = mData.VirtualPointList.ToArray();

                mData.AnimationSkillList[id].CameraStructList[i] = _eff;
            }
            EditorGUI.EndDisabledGroup();


            EditorGUILayout.EndVertical();
            EditorGUI.indentLevel--;
        }
    }
Exemplo n.º 4
0
 private void afterShutdown(CameraStruct cameraStruct)
 {
     if (maxDistance >= (Vector3.Distance(cameraStruct.camera.gameObject.transform.position, GetPlayer.Instance.getPlayer().transform.position)))
     {
         cameraStruct.camera.cameraState = CameraScript.CameraAState.AgentCloseEnough;
     }
     else
     {
         cameraStruct.camera.cameraState = CameraScript.CameraAState.Neither;
     }
 }
Exemplo n.º 5
0
        static void Main(string[] args)
        {
            Process.bsdfnum  = 0;
            Process.priminum = 0;

            FileStream   stream       = new FileStream("./bathroom-1/scene.json", FileMode.Open);// ofd.FileName;
            StreamReader streamReader = new StreamReader(stream);
            string       json         = streamReader.ReadToEnd();

            //var temp = JsonConvert.DeserializeObject(json);
            JsonFile temp = JsonConvert.DeserializeObject <JsonFile>(json);

            CameraStruct c = new CameraStruct();

            c.fov        = 55.0f;
            c.resolution = new[] { 1024, 1204 };
            c.look_at    = new float[]
            {
                (float)-2.787562608718872,
                0.9699121117591858f,
                -2.6775901317596436f
            };
            c.position = new float[] { 0.0072405338287353516f,
                                       0.9124049544334412f,
                                       -0.2275838851928711f };
            c.up = new[]
            {
                0.0f,
                1.0f,
                0.0f
            };

            Process.Path        = "bathroom-1/";
            Process.bSDF_s      = new List <BSDF_>();
            Process.Primitive_s = new List <Primitive_>();
            Process.ReadFile("bsdf.json");
            for (int i = 0; i < 10; i++)
            {
                Process.MakeFile("./test" + i.ToString() + ".json", 400, "test" + i.ToString() + ".exr", c);
            }

            //Process.ProcessBSDF(json,temp.bsdfs.Count);
            //Process.ProcessPRIMI(json,temp.primitives.Count);
            //Process.SaveBsdf("bsdf.json");
            // Type t = temp.GetType();
        }
Exemplo n.º 6
0
        private Camera(BinaryReader br) : this()
        {
            br.BaseStream.Seek(_bsCameraPointer + 4, 0);
            //uint cCameraHeaderSector = br.ReadUInt16();
            //uint pCameraSetting = br.ReadUInt16();
            uint pCameraAnimationCollection = br.ReadUInt16();
            uint sCameraDataSize            = br.ReadUInt16();

            //Camera settings parsing?
            //var battleCameraSettings = new BattleCameraSettings { unk = br.ReadBytes(24) };
            //end of camera settings parsing

            br.BaseStream.Seek(pCameraAnimationCollection + _bsCameraPointer, SeekOrigin.Begin);
            _battleCameraCollection = new BattleCameraCollection {
                cAnimCollectionCount = br.ReadUInt16()
            };
            var battleCameraSet = new BattleCameraSet[_battleCameraCollection.cAnimCollectionCount];

            _battleCameraCollection.battleCameraSet = battleCameraSet;
            for (var i = 0; i < _battleCameraCollection.cAnimCollectionCount; i++)
            {
                battleCameraSet[i] = new BattleCameraSet {
                    globalSetPointer = (uint)(br.BaseStream.Position + br.ReadUInt16() - i * 2 - 2)
                }
            }
            ;
            _battleCameraCollection.pCameraEOF = br.ReadUInt16();

            for (var i = 0; i < _battleCameraCollection.cAnimCollectionCount; i++)
            {
                br.BaseStream.Seek(_battleCameraCollection.battleCameraSet[i].globalSetPointer, 0);
                _battleCameraCollection.battleCameraSet[i].animPointers = new uint[8];
                for (var n = 0; n < _battleCameraCollection.battleCameraSet[i].animPointers.Length; n++)
                {
                    _battleCameraCollection.battleCameraSet[i].animPointers[n] = (uint)(br.BaseStream.Position + br.ReadUInt16() * 2 - n * 2);
                }
            }
            Cam = Extended.ByteArrayToStructure <CameraStruct>(new byte[Marshal.SizeOf(typeof(CameraStruct))]); //what about this kind of trick to initialize struct with a lot amount of fixed sizes in arrays?

            ReadAnimationById(GetRandomCameraN(Memory.Encounters.Current), br);
            EndOffset = _bsCameraPointer + sCameraDataSize;
            //br.BaseStream.Seek(c.EndOffset, 0); //step out
        }
Exemplo n.º 7
0
    IEnumerator WaitPlayCamera(CameraStruct es)
    {
        //如果特效没有启用则不进行播放
        if (es.isEnabled)
        {
            yield return(new WaitForSeconds(es.DelayTime));
        }
        else
        {
            yield break;
        }

        if (Camera.main != null)
        {
            Camera.main.transform.DOShakePosition(es.ShakeTime, es.Strength);
        }

        yield return(new WaitForEndOfFrame());
    }
Exemplo n.º 8
0
 public CameraModel(CameraStruct cameraStruct)
 {
     _cameraStruct = cameraStruct;
 }
Exemplo n.º 9
0
 public void SetCameraPos(double x, double y, int camid, bool keepfollowing = false)
 {
     int fobj = keepfollowing ? cameras[camid].followingObject : -1;
     cameras[camid] = new CameraStruct(x, y, camid, fobj);
 }
Exemplo n.º 10
0
    void DrawAnimation()
    {
        if (mData.AnimationSkillList == null)
        {
            return;
        }

        for (int i = 0; i < mData.AnimationSkillList.Count; i++)
        {
            EditorGUILayout.Space();

            AnimationSkillStruct _ass = mData.AnimationSkillList[i];

            if (_ass.IsFoldout)
            {
                EditorGUILayout.BeginVertical(EditorStyles.helpBox);

                EditorGUILayout.LabelField(_ass.Type.ToString());
                if (GUILayout.Button("Preview"))
                {
                    mASD.PlayAnimaState(_ass.Type);
                }

                _ass.AnimationClip = (AnimationClip)EditorGUILayout.ObjectField("AnimaitonClip:", _ass.AnimationClip, typeof(AnimationClip), true);

                EditorGUILayout.BeginHorizontal();
                if (_ass.AnimationClip == null)
                {
                    _ass.fTime = 1f;
                }
                else
                {
                    _ass.fTime = _ass.AnimationClip.length;
                }
                EditorGUILayout.LabelField("NextAnima After:", _ass.fTime.ToString());
                _ass.NextType = (NFAnimaStateType)EditorGUILayout.EnumPopup(_ass.NextType);

                EditorGUILayout.EndHorizontal();

                AnimatorController ctl = (AnimatorController)mASD.GetComponent <Animator> ().runtimeAnimatorController;
                if (ctl != null)
                {
                    AnimatorStateMachine state_machine = ctl.layers[0].stateMachine;
                    for (int j = 0; j < state_machine.states.Length; ++j)
                    {
                        if (state_machine.states [j].state.name == _ass.Type.ToString())
                        {
                            String        strPath = AssetDatabase.GetAssetPath(_ass.AnimationClip);
                            AnimationClip anim    = AssetDatabase.LoadAssetAtPath(strPath, typeof(AnimationClip)) as AnimationClip;
                            state_machine.states [j].state.motion = anim;
                            break;
                        }
                    }
                }

                mData.AnimationSkillList[i] = _ass;

                //添加特效与删除片断
                EditorGUILayout.BeginHorizontal();
                if (GUILayout.Button("ADD EFFECT"))
                {
                    EffectStruct _es = new EffectStruct();
                    _es.LifeTime  = 3;
                    _es.isFoldout = true;
                    mData.AnimationSkillList[i].EffectStructList.Add(_es);
                }
                if (GUILayout.Button("ADD Audio"))
                {
                    AudioStruct _es = new AudioStruct();
                    _es.LifeTime  = 3;
                    _es.isFoldout = true;
                    mData.AnimationSkillList[i].AudioStructList.Add(_es);
                }
                if (GUILayout.Button("ADD Bullet"))
                {
                    BulletStruct _es = new BulletStruct();
                    _es.isFoldout = true;
                    mData.AnimationSkillList[i].BulletStructList.Add(_es);
                }



                EditorGUILayout.EndHorizontal();

                EditorGUILayout.BeginHorizontal();
                if (GUILayout.Button("ADD Damage"))
                {
                    DamageStruct _es = new DamageStruct();
                    _es.isFoldout = true;
                    mData.AnimationSkillList[i].DamageStructList.Add(_es);
                }

                if (GUILayout.Button("ADD Movement"))
                {
                    MovementStruct _es = new MovementStruct();
                    _es.isFoldout = true;
                    mData.AnimationSkillList[i].MovementStructList.Add(_es);
                }

                if (GUILayout.Button("ADD Camera"))
                {
                    CameraStruct _es = new CameraStruct();
                    _es.isFoldout = true;
                    mData.AnimationSkillList[i].CameraStructList.Add(_es);
                }

                EditorGUILayout.EndHorizontal();

                if (mData.AnimationSkillList.Count > 0)
                {
                    DrawEffect(i);
                    DrawAudio(i);
                    DrawMovement(i);
                    DrawDamage(i);
                    DrawBullet(i);
                    DrawCamera(i);
                }
                EditorGUILayout.EndVertical();
            }
        }
    }
Exemplo n.º 11
0
 void TransformCamera(ref CameraStruct cameraStruct, float coef)
 {
     cameraStruct.m_camera.transform.position = Vector3.Slerp(cameraStruct.m_initialPosition, cameraStruct.m_targetPosition, coef);
     cameraStruct.m_camera.transform.rotation = Quaternion.Euler(Vector3.Lerp(cameraStruct.m_initialRotation, cameraStruct.m_targetRotation, coef));
     cameraStruct.m_camera.orthographicSize   = Mathf.Lerp(Constants.CameraOrthographicSizeStart, Constants.CameraOrthographicSize, coef);
 }