전체 글
-
231005 Attack 원거리 공격기록 2023. 10. 5. 19:33
플레이어는 총 4가지 스킬 모션을 가지고 있다. 1. Arrow 2. Magic 3. Bomb 4. Hook Hook를 제외한 Arrow, Magic, Bomb는 공격 물체인 화살, 불, 폭탄을 던지도록 되어있다. 던져지는 물체를 먼저 제작하여 몬스터와 콜리전 체크(부딪힐) 시 몬스터의 FSM을 HIT로 바꾸는 작업을 진행하였다. 1. 던지는 물체 sphere 액터를 제작한다 // PlayerAttMagic.h #pragma once #include #include "PhysXSphereComponent.h" class PlayerAttMagic : public GameEngineActor { friend class Player; // Player 에대 대한 정보를 접근할 수 있도록 protected: ..
-
231003 PhysX Collision Checking기록 2023. 10. 3. 18:45
PhysX 컴포넌트에는 FilterGroup을 나누는 PxFilterData를 설정할 수 있다. 현재 충돌체크와 충돌 확인 시 이벤트 처리 방식이 다음과 같다. void CustomSimulationEventCallback::onTrigger(physx::PxTriggerPair* pairs, physx::PxU32 count) { //트리거에 충돌이 일어났을때 어떤 걸 할 것인지 while (count--) { physx::PxTriggerPair& current = *pairs++; physx::PxShape* TriggerShape = current.triggerShape; physx::PxShape* OtherShape = current.otherShape; //충돌한 본인 혹은 상대의 액터가 n..
-
231002 Batch파일 경로 문제 오류 , Animation의 Start Event Function기록 2023. 10. 2. 14:31
1. 배치파일 오류 용량이 큰 파일들이 많아 Github에 올리기 어렵기 때문에 압축해서 올린 후 batch파일을 통해 한번에 풀어 사용하고 있다. 문제상황) 언제부터인가 배치파일에 빨간글씨가.. 원인파악) 내용을 파악해보니 해당 경로에 Cube14.fbx와 Map_Offce.fbx가 이미 존재하기 때문에 덮어쓴다는 오류였다. 파일 존재 여부를 체크하는 함수를 사용했는데 왜?? 싶었다. 내용을 확인해 보니 IF NOT EXIST "%~dp0%ContentResources\Mesh\Map\UIBackGroundMap.fbx" ( powershell expand-archive ContentResources\Zip\UIBackGroundMap.zip ContentResources\Mesh\Map\Office ..
-
20231001 PhysX Component를 가지는 액터 Position체크기록 2023. 10. 1. 18:39
문제 내용) 플레이어를 일정 위치에서 떨어트렸을 경우 바닥을 인지하지 못하는 문제가 발생하였다. 원인 파악) 디버깅을 통해 확인해보니 플레이어 위치가 PhysX로 보정하기 전 이동 값을 가지고 있다. 현재 엔진 업데이트 순서는 0. 레벨 => 1. (현재 레벨에서 부모를 가지지 않는) 액터 => 2. (상위 액터의 자식)액터/컴포넌트 순서이며 상위 액터(1)에서 GetTransform을 한 경우 (2)에서 보정하는 값이 나오지 않는것이다. 해결 방안) 1. 보정값을 넣는 방법 2. 업데이트 순서를 바꾸는 방법 3. PhysX 컴포넌트 내용을 이동 후 보정하는 것이 아닌, 체크 후 이동하도록 변경하는 방법 현재는 1방법을 선택하여 해결하였고 팀원과 2, 3 내용을 논의해볼 예정이다 임시해결 완료~
-
20230928 플레이어 버그와 최적화기록 2023. 9. 28. 16:40
문제 상황1) 바라보는 방향과, 이동 방향이 일치하지 않는 문제점 이와같이 바라보는 방향과 실제 움직이는 방향이 다른 문제가 발생한다. 플레이어가 가지고 있는 방향값 중 NextForwardDir와 MoveDir이 일치하지 않아 발생한다. NextForwardDir 가 존재하는 이유는 플레이어가 바라보는 방향을 변경할 때 Lerp로 변경하길 원해서 ForwardDir를 만들면서 추가하였는데 실제 MoveDir이 최종 NextForwardDir이 되기때문에 존재의 필요성을 느끼지 못하게 되었다. 해결1) 이동 방향(MoveDir)과 바라봐야 하는 방향(NextForwardDir)을 통일한다. 또한 ForWardDir이 방향에 대한 input이 있는경우만 변경되기 때문에 모든 Update에서 지속적으로 적용..
-
20230927 PhysX RayCast와 DirectX Indersects기록 2023. 9. 27. 20:06
목표 : 플레이어가 사다리를 타고 올라간 부분에서 떨어지는 상태가 존재하는데플레이어가 Falling(떨어지는 상태)에서 Idle로 State를 변경해야하는 시점을 알아내야한다. 현재 플레이어는 PhysX의 Capsule Component를 이용하여 navimesh위를 걷도록 설정되어 있다. 프로젝트에서 할 수 있는 방법은 두가지가 있다. 1. 네비메쉬의 vertex를 가져와 DirectX::TriangleTests::Intersects 함수를 사용하여 바닥위치와 플레이어 위치 차이를 체크하는 방법 2. PhysX에서 제공하는 RayCast를 이용하여 Vertex를 체크하고 충돌(콜리전)포인트를 리턴하는 함수를 사용하는 방법이다. PhysX에서 네비메쉬의 vertex를 가져오는 기능은 현재 구현되어있지 않..
-
20230926 캡슐 디버그 랜더기록 2023. 9. 26. 12:02
현재 진행 중인 팀 프로젝트에서는 PhysX 를 사용중인데 스태틱 이외에 플레이어, 몬스터 오브젝트의 본체에 피직스의 캡슐 컴포넌트를 사용하고 있다. PhysX Visual Debugger을 사용하면 다음과 같이 피직스 컴포넌트를 확인할 수 있다. 하지만 렌더가 직접적으로 나타나지 않고 두 화면을 동시에 체크해야 하는 불편함이 있다. DirectX 2D를 공부할 때 사용한 DebugBox와 Sphere를 가져와 표현했지만 Capsule의 Vertex와 Index를 계산해놓은 정보를 찾기 어려웠다. Sphere를 조정해서 적용한 결과 럭비공?? 그래서 생각해 낸게 FBXMesh를 로드하는 기능을 이용하여 Capsule FBXMesh의 Vertex와 Index정보를 가져오는 것이다. 캡슐 매쉬는 Blende..
-
20230924 FBX 애니메이션 본 가중치 오류로 인한 문제기록 2023. 9. 24. 19:37
idle애니메이션이다. 하지만 무기, 쉴드, 팔찌가 떨어져있다 3dsMax에서 Weigth Table을 확인해보면 다음과 같은 문제를 직관적으로 확인할 수 있다. 전혀 관련없는 본에 0.05씩 가중치가 부여된 채로 초기화 되어있다. 3ds Max에서는 왼손에 해당하는 Hand.L 에 1.0 가중치를 주거나 Hand.L을 제외한 모든본의 영향을 지우면된다. 팔찌가 원래의 위치를 찾고 애니메이션도 정상적으로 작동한다 마찬가지 방법으로 오른쪽 팔찌와 망치, 쉴드에도 적용을 시킨다