본문 바로가기

언리얼 BluePrint 정리

07/03 학습 정리 ( Timeline, Zoom 구현 )

Zoom 구현

 

FireBall을 발사 할때 조준을 하기위해 우클릭(Action B)시 작동하는 Zoom 기능을 구현해보자

 

Zoom을 하기위해서는 SpringArm의 길이, SpringArm의 Socket Offset 수치, FOV(Field Of View) 수치를 변경해야한다.

 

FOV(Field Of View)

 

FOV값 90(왼쪽) 과 110(오른쪽)

시야각을 의미하며 값이 작아지면 화면을 확대한것 처럼 보이는데 이건 FOV값을 낮춰서 게임화면을 보는 시야각이 줄고 그걸 화면 비율에 맞게 늘리기 때문에 우리눈에는 확대한것처럼 보인다.

 


 

SpringArm과 Camera에 접근해야하는데 BP_PlayerController로 형변환 해서 Camera Manager로 접근하는 방식은 접근은 가능하나 수치 변경도 불가능하고 SpringArm에도 접근하지 못해서 사용 X , Get Component by Class는 접근이 가능해서 사용 가능하지만 Skill에서 Player의 컴포넌트에 접근하는것은 바람직하지 않고, 활 같은 무기에 Zoom기능이 필요하면 그때 또 만들어야 하기에 SpringArm과 Camera를 들고있는 BP_Player에서 인터페이스를 이용한다.

 

 

BP_Character에서 SkillNow의 Begin,End Action B를 호출하고 Skill에서 플레이어의 Zoom In/Out 인터페이스를 호출하여 BP_Player에서 기능을 구현한다.

 

TimeLine

 

Timeline node (타임라인 노드)는 블루프린트 내에서 간단한 시간 기반 애니메이션을 빠르게 디자인하고 게임내 이벤트에 따라 재생되도록 할 수 있는 특수 노드이다.

단순한 값의 변동이나 시간에 걸쳐 서서히 이벤트가 발동되도록 할 수 있어 문 열기, 불 켜고 끄기, 기타 한 씬에서 액터에 시간 관련된 조작을 하는 등의 간단한 시네마틱 이외의 작업을 처리 할 수 있다.

 

Play : 현재시간에서 정방향 재생

Play from Start : 타임라인 처음부터 정방향 재생

Stop : 타임라인 현재 시간에서 재생 멈춤

Reverse : 타임라인 현재 시간에서 역재생

Reverse from End : 타임라인 끝에서부터 역재생

Set New Time : 현재시간을 New Time에 입력한값으로 설정

 

Update : 타임라인이 호출되자 마자 실행 신호 출력

Finished : 재생이 끝날 때 실행 신호 출력. Stop함수로는 발동안됨

Direction : 정재생인지 역재생인지를 나타내는 Enum데이터

 

타임라인을 더블 클릭하면 타임라인 에디터가 열리는데 트랙이 여러개 있다. Float : 변수 1개, Vector : 3개, Color : 4개

길이를 0.25로 설정하고 0초일때의 값, 0.25초일때의 값을 설정하면 타임라인의 시간이 지나갈때마다 변수값을 출력한다.

Update로 출력하면 값이 Tick처럼 부드럽게 이어지기때문에 카메라의 움직임이 자연스럽게 보간된다.

 

 

Skill인 FireBall에서 호출된 Zoom In/Out이 TimeLine을 통해 나온 FOV값, SpringArm Length값, Socket Offset값으로 세팅된다.