전체 글

시나브로 쌓여가는 IT 지식
Person 구조체 struct Person{ char name[50]; int age; float salary; }; UML 클래스 다이어그램
· OpenGL
3. Spot Light - 2개의 원뿔 형태의 조명을 사용 ( 조명이 비추는 곳의 외곽은 살짝 흐려보이는 효과를 주기 위해) - inner angle과 outer angle로 원뿔의 범위 조정
기본적인 아이디어는 다음과 같다. - 총알에 에너지를 설정한 뒤, 충돌한 물체의 Physic Mat에 따라 에너지 손실이 일어나며 에너지 손실이 0 이하가 되면 Destroy Actor 실행 1. 오버랩 이벤트로 감지 지금껏 총알과 스켈레탈 메시간의 데미지 구현은 충돌(Hit) 이벤트로 해두었는데, Ignore Actor를 이용하여 총알과 충돌한 스켈레탈 메시 양쪽에 설정을 해두어도 충돌 이후에는 더이상 날아가지 않고 허공에 고정되어 있다. 이에 대한 해결법은 아직 모르겠지만 일단 히트 이벤트 대신 오버랩 이벤트로 변경하여 진행하도록 하였다. 오버랩 이벤트를 위해 콜리전 프리셋을 변경하였다. CustomWeapon의 오브젝트 타입을 WorldDynamic에서 PhysicsBody로 변경하였고, Physi..
커스텀 콜리전 프리셋은 현재 다음과 같다. CustomCapsule CustomMesh CustomWeapon 이로써 일반적인 충돌들은 캡슐 컴포넌트가 담당하고 무기와 스켈레탈 메시와의 충돌은 WorldDynamic과 PhysicsBody간에 일어난다. * 좀비들이 죽지 않은 상태에서 어떠한 행동을 할때는 캡슐 컴포넌트로만 충돌을 취급하되, 메시들간의 오버랩은 허용하여 주먹질이나 발길질 등의 공격은 감지할 수 있도록 하였다. - 메시들간의 충돌을 허용하면 비비면서 팅겨나가거나 부자연스럽게 흔들리는 경우가 생긴다 좀비들이 죽은 이후에는 래그돌 상태로 방치를 할 것인데, 좀비 시체 산을 쌓기 위해서는 메시들간의 충돌이 필요해진다. 그러므로 좀비들이 죽은 이후에는 먼저 캡슐 컴포넌트를 삭제하고 스켈레탈 메시의..
무기 블루프린트의 Begin Play에 get owner로 무기 소유자 액터를 얻은 뒤, ignore actor when moving으로 자신의 무기에 콜리전이 발생하지 않도록 한다 Spawn Actor를 실행할 때 Instigator를 캐릭터로 설정하면 된다. 캐릭터 > 무기 (Owner: 캐릭터) 무기 > 총알 (Owner: 무기, Instigator: 캐릭터) - Owner(캐릭터)를 cast to Pawn한 뒤, Instigator에 집어넣는다
총알을 사람이 맞으면 피가 나고, 금속 재질의 물체에 부딪히면 스파크가 튄다. 또한 소리 역시 다르게 나야할 것이다. 이를 구현한 방법은 다음과 같다 * 구현에 앞서 1. 총알의 블루프린트에서 작성한다 - 총알, 폭탄 등 투사체의 종류에 따라서도 반응이 달라야하므로 투사체의 블루프린트에 작성하는게 맞는 것 같다 2. 피격체의 재질 판단은 Materials이 아니라 PhysicsMaterials로 한다 - 모든 Materials 마다 설정을 개별적으로 넣어주는 것은 비효율적일 것이다 - PhysicasMaterials의 용도는 다양하겠지만 여기서는 머터리얼의 그룹화 느낌으로만 사용한다 2022/10/18 수정 * 현재 구현 방법 1. On Component Hit 이벤트 발생 시 Hit (히트 구조체)를 ..
* 핵심: 방향 벡터로 로테이터(Rotator) 축 정렬 / Make Rot from Z 총알에 피격되는 순간, 총알로부터 총알의 진행방향으로 LineTrace가 생성되고 해당 LineTrace로부터 PhysMat 정보와 Hit Location 정보를 알 수 있다. PhysMat 정보를 이용하면 총알이 부딪힌 컴포넌트의 PhysMat에 따라 피, 스파크 등 이펙트를 조정할 수 있으며, 해당 이펙트는 Spawn Emitter at Location에 Hit Location을 넣어줌으로써 피격 위치에 이펙트를 생성할 수 있다. 여기에 추가로 이펙트가 총알이 날아온 방향으로 튀도록 설정하고 싶다. 총알의 진행방향과 반대 방향으로 이펙트의 Z축을 정렬하면 된다. Make Rot from Z로 로테이터 (Rotat..
https://dev-sbee.tistory.com/84?category=1219843 아이디어 1. 카메라의 위치로부터 카메라가 바라보는 방향으로 일정 길이의 직선을 긋는다 2. 1번에서 그은 직선에 부딪힌 물체가 있다면 부딪힌 위치를, 없다면 직선의 끝 지점을 기록한다 - LineTraceHitLocation ( LineTraceByChannel > Break Hit Result > Location OR Trace End) - 부딪힌 물체가 없다면 Location = (0, 0, 0) 이다 3. 총구에서 LineTraceHitLocation으로의 방향 벡터를 구한뒤 이를 총알의 진행방향으로 설정 - 방향 벡터 구하기: LineTraceHitLocation - Weapon Socket Location ..
Eu4ng
시나브로