[UE/Implement] FPS & TPS 시점 전환
·
Unrael/Implement
1. 개요마우스의 스크롤 입력에 따라TPS 또는 FPS로 전환하는 기능을 구현해 보았다. 2. 구현 아이디어2.1 스프링 암 길이를 줄여 나간다.생각먼저 스프링암과 카메라를 캐릭터에 설정한다.플레이어가 마우스를 스크롤하게 되면 스프링 암의 TargetArmLength를 줄여 나간다.그러면 점점 카메라의 시점이 앞으로 이동하게 될 것이다.결과생각대로 카메라 시점이 앞으로 이동하였다.(문제) 그러나 특정 시점에서 카메라가 캐릭터의 몸 내부를 비추는 상황이 발생헀다. 2.2 카메라 2대를 설치한다.생각카메라 시점이 특정 지점(캐릭터 몸을 비추지 않는)에 도달하였을 때 앞에 카메라를 전환한다.그리고 뒤로 스크롤 할 경우 다시 뒤의 카메라로 전환한다.결과먼저 카메라가 2대임으로 메인 카메라 설정이 필요하다.메인 ..
[UE/Implement] 피격 이펙트 구현
·
Unrael/Implement
1. 개요피격 이펙트는몬스터의 공격을 시각적으로 확인할 수 있게 도와준다.오늘은 구현한 피격 이펙트에 대해 정리해 보고자 한다. 2. 아이디어 생각피격시 플레이어 화면에 물감이 튀는 듯한 느낌과화면 중앙에는 플레이어가 볼 수 있도록 공간을 비워두고주변에 물감 이펙트가 생기도록 구현하고 싶었다.또한 정적인 이미지가 아닌 창문에 물방울이 맺힌듯한 느낌도 가져가고 싶었다. 3. 구현 먼저 물방울이 맺힌 느낌을 구현하기 위해 먼저 머티리얼 제작 방법을 참고하였고위 내용을 바탕으로 먼저 머티리얼을 만들었다. 그 후 원을 만들어 바깥 부분에만 머터리얼이 적용될 수 있도록머티리얼 노드를 수정해주었다. 이를 구현하기까지 많은 좌절이 있었지만 튜터님과 팀원에게 많은 도움을 받아끝내 마무리 지을 수 있었다. 너무 감사한 ..
[UE/Implement] 바라보는 방향으로 총알 발사
·
Unrael/Implement
1. 개요캐릭터가 바라보는 방향으로총알이 발사될 수 있도록 구현하였다. 2. 아이디어캐릭터가 바라보는 전방 벡터를 구한다.전방 벡터에서 특정 거리(25M)만큼 떨어진 타겟 벡터를 구한다.타겟 백터에서 총구의 위치를 빼고 정규화를 통해 벡터의 방향을 구한다. 3. 구현/* Charcter.cpp */// 캐릭터의 눈 높이를 설정한다.BaseEyeHeight = 200.0f;FVector CameraLocation;FRotator CameraRotation;GetInstigator()->GetActorEyesViewPoint(CameraLocation, CameraRotation);FVector TraceStart = CameraLocation;// 전방 벡터 방향으로 특정 거리를 구한다.FVector Tr..
[UE/Implement] 탄창 소모 연출
·
Unrael/Implement
1. 개요이번 포스팅에서는격발시 탄창이 줄어드는 연출을구현한 것에 대해 정리해 보았다. 2. 기능 요구 사항발사 시 탄창 감소 3. 머티리얼 인스턴스 다이나믹 기능 구현 전 머터리얼에서파라미터 수정을 통해 탄창이 줄어드는 효과를 줄 수 있음을 확인하였다. 머티리얼을 수정을 위해 코드 상에서 머티리얼 인스턴스를 사용해야 한다.언리얼 엔진에서는 두 가지 타입의 머티리얼 인스턴스를 제공하는데 (링크)머티리얼 인스턴스 상수머티리얼 인스턴스 다이나믹이 중 머티리얼 인스턴스 다이나믹은 런타임에서 계산, 편집이 가능하다. 게임플레이 중 머터리얼 파라미터 변경으로 탄창 소모 연출을 줄 예정이기에코드 상에서 머티리얼 인스턴스 다이나믹을 사용할 예정이다. 4. 구현4.1 머터리얼 인스턴스 다이나믹 생성 및 교체// "머티..
[UE/Implement] 미니 프로젝트 회고
·
Unrael/Implement
1. 개요오늘은 구현한 과제를큰 틀에서 시각적으로 살펴보고자 한다. 2. 전체 플로우전체 프로그램의 흐름을 간단히 요약해 보았다. 2.1 게임의 큰 줄기, 게임 스테이트(GameState)GameState는 레벨에 필요한 데이터를 담는 저장소로만 생각했었다. 마치 구조체처럼 데이터를 보관하고필요할 때 전역으로 접근하여 데이터를 가져가는 그러한 클래스로 생각했었으나이번 과제를 진행하면서 전체 로직도 포함할 수 있는 클래스라는 것을 알았다. 가벼운 게임에서많지 않은 게임 규칙 데이터를 담고 있는 GameState에게임 로직을 구현하게 되면 많은 클래스를 거치지 않고데이터를 쉽고 빠르게 접근하는 것이 큰 이점이라고 생각이 든다. 향후 큰 게임을 구현할 때방대한 게임 규칙 데이터가 필요한 경우에는또 어떤 플로우..
[UE/Basic] 치트 매니저 (Cheat Manager)
·
Unrael/Implement
1. 개요오늘은 기능 테스트에 유용한치트 매니저에 대해 정리해보고자 한다. 2. 치트 매니저란?언리얼에는 콘솔 창에서 실행할 수 있는 명령어를 관리하는 클래스이다. 치트 매니저 클래스를 살펴보면 다양한 콘솔 명령어들을 수행하는 함수들이 정의되어 있다.  3. 치트 매니저 활용치트 매니저는 플레이어 컨트롤러에서 설정할 수 있다. 우리가 직접 CheatManger를 상속한 클래스를 만들어플레이어 컨트롤러에 등록하면직접 구현한 콘솔 명령어들을 실행할 수 있다. 4. 치트 매니저 장점치트 매니저는 기능 테스트 목적으로 사용된다. 예를 들어,미션을 달성하지 못했지만 다음 레벨로 바로 넘어가 테스트하고 싶은 경우명령어를 통해 레벨을 넘길 수 있다. 또는 특정 아이템을 테스트해보고 싶지만그것을 얻기 위해서는 일정 플..
[UE/Implement] 트랩 구현
·
Unrael/Implement
1. 개요오늘 구현해본 트랩 기능에 대해간단히 정리해 보았다. 2. 트랩 애셋 다운로드 spikes - Download Free 3D model by Jason_Phillips - SketchfabThis is My Spike Model i made and animated in Maya, i used Substance Painter to Texture itsketchfab.com트랩 애셋은 SketchFab이라는 사이트에서 무료로 다운로드 받았다. SketchFab에서 애니메이션이 포함된 애셋을 찾기 위해 아래 옵션을 활성화하여 검색했다.Downloadable : 다운로드 가능한Animated : 애니메이션이 포함된 3. 트랩 동작 생각구현 전, 간단히 트랩이 어떻게 움직일지 전체 플로우를 생각해 보았다..
[UE/Implement] 액터 하이라이트 표시하기
·
Unrael/Implement
1. 개요액터 위에 마우스 커서를 올려놓을 경우 하이라이트를 표시하는 기능을 구현해보자. 하이라이트 기능은 플레이어의 혼동을 줄여줄 수 있다.적이 겹쳐있을 때 현재 어떤 적을 가리키고 있는지 명시적으로 표시해줄 수 있다. 2. 구현 아이디어1. 마우스 커서로 액터를 감지한다.PlayerController에서 GetHitResultUnderCursor함수를 제공한다. (공식 문서)해당 함수는 커서 아래 어떤 액터가 감지되었는지 반환해준다. 액터가 감지되기 위해서는 메쉬를 가지고 있어야 하며메쉬의 콜리전 채널 중 'Visibility'가 Block으로 설정되어 있어야 한다. 2. 인터페이스로 액터를 구별한다.플레이어 컨트롤러에서 매 프레임마다 커서를 감지한다.감지된 대상이 적(Enmey)인 경우에만 하이라이..