전체 글330 31. Particle System을 활용하여 공격 시 발생하는 먼지 구현 Particle System을 활용하여 공격 시 발생하는 파티클 구현 - 몇몇 스컬의 경우 공격 시 공격한 반대 방향으로 여러 개의 먼지 입자가 튀는데, 이 부분을 Particle System으로 구현했다. - Particle System은 먼지가 날리는 것 같은 다수의 객체를 한꺼번에 그릴 수 있는데 이 먼지 하나 하나를 객체로 취급한다면 프레임이 상당히 떨어졌을 것이다. (1회 공격당 50개의 파티클이 생성됨) - 구현은 Structured Buffer로 파티클 배열만큼의 메모리를 GPU에 할당한 후에, Compute Shader에서 값을 이리저리 옮겨주고, 그 값을 Geometry Shader에서 사각형으로 만들어준다. (파티클 각각은 점으로 이루어져 있고 Geometry Shader에서 이 점을 .. 2023. 4. 22. 30. Physic Event 추가 & Particle System 구현 중 Physic Event 추가 - 현재 대마도사 스컬의 메테오가 바닥에 떨어질 때, 콜백 함수에서 물리 작용을 받는 파티클들에게 특정 방향으로 힘을 주게 되어 있는데, 이 부분에서 PhysX에서 경고 메시지가 발생해서 이벤트방식으로 수정 invalid operation : Concurrent API write call or overlapping API read and write call detected during physx::NpRigidDynamic::addTorque from thread 25140! Note that write operations to the SDK must be sequential, i.e., no overlap with other write or read calls, else t.. 2023. 4. 20. 29. Monster Factory 추가 & RigidBody 및 충돌 개선 Monster Factory 추가 - 지금 게임 오브젝트가 컴포넌트 패턴으로 조립되다보니, 하나의 객체를 내보내기까지 신경써야 할 것들이 많다 - 사람이다보니 실수를 할 수 있기 때문에, 오브젝트의 공통적인 부분들을 모아서 마치 공장에서 만드는 공산품(?) 처럼 만들어내기 위한 일련의 작업들을 추가했다. - Transform, MeshRenderer, Material, Mesh 이런 컴포넌트들은 대부분의 객체가 가지고 있기 때문에 객체가 생성될 때 자동으로 붙여서 생성되도록 했다. - RigidBody, Physical, Movement, Animator, DebugRenderer 등의 컴포넌트는 객체의 특성에 따라 붙일지 말지 결정되기 때문에 이 부분은 객체를 생성한 후 그 스코프 안에서 처리하는게 낫.. 2023. 4. 19. 28. 몬스터 파티클 추가 몬스터 파티클 추가 - 몬스터파티클은 몬스터가 파괴되면 맵 상에 흩뿌려지는 몬스터의 파편을 의미한다 ex) 기사의 경우 갑옷과 칼 등등의 파편들 - 이 부분은 물리 엔진 PhysX의 도움을 받아서 사용했다. - 몬스터가 파괴되는 부분은 행동 트리에서 몬스터가 살아있는지 검사한 후에, 죽었다면 해당 몬스터의 다잉 이벤트를 발생시킨 후 씬에서 제거하도록 했다. - 파티클은 다잉 이벤트의 일부이고, 이미지가 저장된 주소를 받아서 파티클을 생성한 후에 맵에 뿌린다 - 뿌리는 방식은 0~180도 사이의 랜덤한 각도를 정한 후 해당 각도에 일정한 속도를 곱해서 날아가도록 했다. - 또한 랜덤한 각속도를 전달해서 적당히 바닥에 굴러다니는 효과를 내주었다. 내일 할 일 - 크기에 따른 각속도나 선속도를 차등 적용해서 .. 2023. 4. 17. 이전 1 ··· 31 32 33 34 35 36 37 ··· 83 다음