본문 바로가기
[ CODING STUDY ]/》언리얼엔진5 공부

언리얼엔진5 23장 [방향으로 이동, Distance, DeltaSeconds]

by MRG 2023. 2. 8.
728x90
반응형

▣ 안녕하세요.

이번장에서는 엑터 방향으로 이동하는 코드 그리고 Distance, DeltaSeconds 등을 공부해 보겠습니다. 

이 장에서 중요한 핵심은

방향구하는 공식 :  내가 가고 싶은 위치 - 내 위치

방향으로 이동하는 공식 : 현재위치 + (방향 * (Delta Seconds) * speed))

이 두 가지 공식을 기억하시면서  오늘 장을 공부하시면 됩니다.

 

▣ 먼저 Player엑터를 하나 생성하겠습니다.

BluePrint Class를 생성해 주시고

 

▣ 기본 Actor로 지정합니다. 이름은 Player로 지정하겠습니다. 

 

▣ Player Actor에 들어가서 Shapes에서 Cube를 클릭해서 생성합니다.

컴파일 저장 후

 

▣ Event Graph에 들어가서 노드베이스에 오른쪽마우스 클릭하고 get actor를 검색해서 

Get Actor Location을 클릭합니다. 

 

 

▣  Set Actor Location블록도 검색해서 생성합니다.

그리고 Get Actor Location블록에 출력핀(오른쪽 노랑색원)과 Set Actor Location 입력핀(왼쪽 노랑색원)에서 오른쪽마우스를 클릭하고 Split Struct Pin을 클릭하여 구조체형식으로 x,y,z를 나눠줍니다.

 

▣ 그리고 위에 있는 이미지처럼 Get Actor Location에 x값에 +3.0을 더하고 New Location X에 연결합니다.

컴파일 저장 후

 

▣ 씬에서 Player Actor를 씬에 배치하고 플레이버튼을 클릭하면 x로 계속 움직이는 걸 확인할 수 있습니다. 

 

▣ 만약 움직이지 않으면 Player Actor를 클릭하고 Cube를 클릭하고 Transform에 Mobility에서 Movable로 설정해 주시면 됩니다. 

 

▣ 이번에는 우리가 바라볼 대상을 생성하겠습니다. 

Monster라는 이름으로 Actor 생성해 주시고 Player처럼 Sphere로 생성하고 monster를 잘 보이게 하기 위해

크기를 x, y, z 모두 2로 지정합니다. 

컴파일 저장 후

 

▣ Monster를 화면에 배치합니다. 

 

그리고 Player Actor에 Event Graph로 들어가서 

distance, monster, speed 변수를 생성합니다. 각각 데이터타입과 기본값을 지정해 주시고 monster변수에 눈모양을 클릭해서 public으로 지정합니다.

 

▣ 그리고 위에 이미지처럼 코드를 완성합니다. 

Get Actor Location블록은 위에 이야기했던 것처럼 player에 이동 방향을 구하기 위함입니다. 

Monster위치 - Player위치를 빼서 방향을 구하고 그걸 Nomalize 정규화시킵니다. 

Nomalize는 쉽게 이야기하면 딱 값이 떨어지게 만든다라고 생각하시면 됩니다.

그리고 Distance에 Set 합니다. 

 

▣ Event Tick에 Delta Seconds에 마우스를 드레그를 하면 이렇게 변수를 생성할 수 있습니다. 

변수로 생성합니다.

 

 

  그리고 speed * Delta Seconds(경과시간)을 곱하기를 합니다.

Delta Seconds를 곱하는 이유는 컴퓨터 사양에 따른 프레임저하를 방지하고 속도를 맞추기 위해 곱하기를 했고 그걸 아까 구한 방향에 곱해줍니다. 

그럼 사양에 맞게 이동할 수 있게 됩니다.

그리고 Get Actor Location 현재위치에 값을 더하고 Set Actor Location에 넣고 컴파일 저장을 합니다.

 

▣ 그리고 씬에서 Player에 Monster메뉴에서 Monster로 지정하고 

 

▣ Cube에서 아까처럼 Movable로 지정합니다. 

 

▣ 그런 다음에 플레이버튼을 클릭하면 Player가 Monster 방향으로 이동합니다. 

728x90
반응형

댓글