/// <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 }
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); }
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--; } }
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; } }
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(); }
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 }
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()); }
public CameraModel(CameraStruct cameraStruct) { _cameraStruct = cameraStruct; }
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); }
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(); } } }
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); }