[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] 총기 격발 및 재장전 시스템 구현 (C++ & 블루프린트)
·
Unrael
1. 개요이번 포스팅에서는총기 격발 및 재장전 기능을 구현해 보았습니다.C++와 블루프린트를 함께 사용하여 유연한 시스템을 구성했습니다. 2. 기능 요구 사항좌클릭 시 총알 발사탄창 수 관리 (예: 20발)탄환이 0일 때 발사 불가연사/단발 모드 기능 3. 구현 과정3.1 총기 클래스 헤더 파일#pragma once#include "CoreMinimal.h"#include "GameFramework/Actor.h"#include "BaseGun.generated.h"UENUM(BlueprintType)enum class EFireMode : uint8{ FullAuto, // 연사 SemiAuto, // 단발};UCLASS()class SPLATOON_API ABaseGun : public AActor{..
[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)인 경우에만 하이라이..
[UE/Implement] 쿼터뷰 구현하기
·
Unrael/Implement
1. 개요쿼터뷰는 플레이어를 대각선으로 내려다보는 시점을 의미한다.언리얼에서 간단하게 쿼터뷰를 구현해보자. 2. 구현 프로세스캐릭터 블루프린트 생성하기캐릭터 설정하기컴포넌트 생성하기 2.1 캐릭터 블루프린트 생성하기1. 캐릭터 블루프린트 생성 2.2 캐릭터 설정하기1. 컨트롤러의 회전값 OFF하기컨트롤러의 회전값이 캐릭터 회전에 영향을 주지 않도록 설정한다. 2.2 컴포넌트 생성하기1. 컴포넌트 생성SpringArm 컴포넌트를 추가한다.Camera 컴포넌트를 추가한다. 2. 컴포넌트 설정스프링암 컴포넌트카메라 거리 : Target Arm Length값을 700으로 설정한다. 카메라 각도 : Rotation Pitch값을 -30 ~ -45도로 설정한다.카메라 움직임 : Enable Camera Lag을 활..