검증된 get : is valid가 유효하면 true 문이 실행되고, 유효 안하면 else로 빠지는 구문이다.
if 문과 비슷하게 동작한다.
노드 검색때 f 아이콘이 뜨는 노드는 ‘값 리턴’을 의미한다.
캐릭터 객체를 생성할 때 변수 생성시 자료형을 가져올 캐릭터 액터로 한 다음 ‘오브젝트 레퍼런스’로 지정한다.
리턴 노드의 실행 핀을 끌어서 놓았을때 해당 리턴 자료형에 종속된(해당 자료형을 사용하는) 노드들만 리스트에 나온다.
Branch
If문 노드다.
Condition : if문의 조건이다.
게임 종료 노드
Quit Game 검색
DrawDebug
개발자들만 볼 수 있는 선 또는 그림을 레벨 에디어에 그려준다.
유니티의 기즈모
Segments : 도형의 정밀도
Thickness ; 도형의 두께
Duration : 얼마만큼 그려질거냐
0인데 그려지는 이유는 틱 이벤트 이기때문에 매 프레임마다 그려지기 때문이다.
몇초동안 그려고 싶다면 Duration에 숫자를 입력하면 된다.
Sequence 노드
Sequence : 여러 실행문을 ‘순차적’으로 실행하는 노드다.
0번줄 실행 종료 → 1번 줄 실행 시작 이다.
이동
이동 : 카메라의 전방으로 이동한다.
Control이 나오면 ‘카메라’를 이동하는 것으로 기억해라
캐릭터 객체 변수 - Get Velocity 검색 - Get Length XY 검색 후 연결 - 속도가 필요한 노드에 연결
캐릭터가 가지는 속도를 반환한다.
Get Length XY : 벡터의 XY 컴포넌트 길이를 반환한다.
캐릭터이 이동을 ‘걷기’ , ‘달리기’를 다르게 놓았을 경우 걷기의 최대 속도를 캐릭터 무브먼트 컴포넌트에서 지정할 수 있다.
뷰포트 - 캐릭터 무브먼트 클릭 - 캐릭터 무브먼트 걷기 항목 - 최대 걷기 속도 : 400.0f
회전
언리얼의 회전은 Rotator로 통합되어있다.
쿼터니온과 회전 행렬도 쓸 수 있지만, 대부분 Rotator로 퉁친다.
회전 값 가져오기
Get Control Rotation 노드 검색
특정 회전값 가져오기 : Make Rotator 노드 검색
Get Control Rotation 검색 - 구조체 핀 분할 - Make Rotator 검색 - Return z 연결 - Get Forward Vector 검색 후 리턴에 연결 - Add Movement Input 노드의 World Direction 연결
회전된 값을 가져와 회전된 전방이 전방벡터가 된다.
Make Rotator 노드의 리턴에서 또 끌어놓고 Get Right Vector 검색 후 연결 - MoveRight와 연결된 Add Movement Input 노드와 연결 ⇒ 회전 벡터를 가져와 캐릭터 자체를 회전시킨다.
카메라 세팅 (시네 카메라 컴포넌트)
필름백 : 카메라로 보여주는 화면을 조절하는 옵션이다.
종횡비 제한 해제
애니메이션
애니메이션 파일 더블클릭 - 스켈레톤 새로 설정 클릭 - 사용할 캐릭터의 스켈레톤 파일 클릭
애니메이션 블루프린터에 들어가서 에셋 브라우저를 봤을 때 사용할 애니메이션에 쓰는 캐릭터 스켈레톤을 쓰는 애니메이션들만 표시되니, 여기 없다면 스켈레톤 선택을 잘못한것이다.
애니메이션 블루프린트 클릭 - 사용할 캐릭터 스켈레톤 파일 클릭 : 애니메이션 블루프린트 생성
애니메이션은 설정한 다음 반드시 컴파일을 해줘야 한다.
A 포즈 : 애니메이션이 없는 상태다.
캐릭터 블루프린트 - 애님 클래스 - 위에서 만든 애니메이션 블루프린트 선택 : 캐릭터에 애니메이션 할당
BluePrint Update Animation 이벤트 : 매 프레임마다 호출되는 애니메이션 이벤트다.
연결된 애니메이션이 실행될 때마다 실행된다.
애니메이션 할당 순서
캐릭터 블루프린트 생성 - 애니메이션 블루프린트 생성 - 캐릭터 블루프린트의 애님 클래스에 애니메이션 블루프린트 선택 ⇒ 캐릭터에 애니메이션 블루프린트 객체가 생성된것이다.
생성된 객체는 해당 애니메이션 블루프린트를 실행시킨다.
Try Get Pawn Owner : 애니메이션 블루프린트 객체를 생성한 액터를 가저온다.
객체를 가져올때 해당 캐릭터로 변환노드를 생성해서 연결해야한다.
형변환 할 액터를 검색 후 형변환 노드 클릭한다.
변수 - 가져올 캐릭터 액터를 자료형으로 변수 생성 (오브젝트 레퍼런스 선택) - 변수 노드 배치 - 우클릭 후 ‘검증된 Get으로 변환’ 클릭
검증된 Get으로 변환 : 배치한 변수 노드가 유효한지 유효하지 않은지 판단하여 해당 구문을 실행한다.
설정한 노드들을 생성한 캐릭터 객체 노드에 Set으로 연결한다.
Is Valid
.블루프린트에서 연결된 객체의 널 체크를 실행하는 노드다.
Is Valid 검색 - ? Is Valid 클릭
커스텀 이벤트
이벤트 그래프 - 커스텀 이벤트 검색 - 이벤트 이름 입력 : 커스텀 이벤트 노드 생성
조건 구문을 연결할 실행핀을 끌고 위에서 생성한 커스텀 이벤트 노드 생성 후 결합
조건이 맞다면 커스텀 이벤트 노드를 연결하여 실행한다.
애니메이션 블랜드 (유니티 : 블랜드 트리)
최종 애니메이션 포즈에 연결할 애니메이션이 여러개 있다면 애니메이션을 섞어서 사용한다.
콘텐츠 브라우저 우클릭 - 블렌드 스페이스 클릭 - 사용할 애니메이션의 스켈리톤 파일을 클릭
블랜드 스페이스 : 입력 파라미터를 바탕으로 여러 애니메이션을 블렌딩하는 창이다.
Axis Settings - 가로측 - 최대 축값 : 속도의 최소 속도와 최대 속도를 지정한다. (최소 속도 : 0.0f, 최대 속도 : 600.0f) ⇒ 100.0을 1로 놓는다면, 0 ~ 6의 속도로 애니메이션을 구분하겠다는 의미이다.
Axis Settings - 가로측 : 이름을 지정해서 변수로 값을 가져올 수 있다.
그리드 분할 : 최대 축 값을 그리드 분할 수 만큼 칸을 만들어 분할할 수 있다.
0 ~ 600을 최대 축 값으로 지정하고, 그리드 분할을 3으로 지정했다면 200 - 400 - 600 으로 선이 그려진다. ⇒ 애니메이션을 속도 값에 맞춰서 배치하기 쉽게 되어있다.
스켈레톤이 정해진 애니메이션을 원하는 축 값에 맞춰서 끌어다 놓는다.
Ctrl + 마우스 드래그를 하면 해당 애니메이션이 움직이는 것을 확인할 수 있다.
애니메이션을 놓고 좌측 상단에 값을 정확하게 넣을 수 있다.
만든 블랜드 스페이스는 애니메이션 블루프린트의 AnimGraph에 끌어다 놓고 연결할 수 있다.
블랜드 스페이스에 설정한 축 값이 있다면 변수를 넣어야한다. (지금은 Speed / Speed는 이벤트그래프에서 SET으로 설정되어있다.)
달리기 입력
편집 - 프로젝트 세팅 - 엔진의 입력항목 - 액션 매핑 - 액션 이름 지정 - 키 할당
이벤트 그래프 - 액션 매핑때 지정한 이름으로 액션 이벤트 검색 - 캐릭터 무브먼트 끌어다 놓기 - Set Max Walk Speed 검색 후 연결 - 검색한것을 Pressed와 연결 후 600으로 설정하고, Released도 연결 후 400으로 설정한다.
Pressed : 눌렸을때
Released : 땠을 떄
Key : 어떤 키인지 값을 반환한다.
캐릭터 무브먼트 끌어다 놓기 : 캐릭터 무브먼트 컴포넌트 오브젝트 레퍼런스를 가져온다.
State Machine
애니메이션 상태를 관리하는 기능이다.
AnimGraph - 우클릭 후 State Machine 검색 후 클릭 - 블랜드 스페이스를 넣는다. - Entry를 끌어서 블랜드 스페이스와 연결한다.
Entry : 시작 후 실행
블랜드 스페이스에서 JumpStart 연결 - 활성화된 양방향 버튼 더블클릭 - 변수를 넣어 조건을 만든다. - 만든 변수를 결과 노드에 연결한다. - 애니메이션 블루프린트의 이벤트 그래프로 가서 Falling 변수에 대한 설정을 진행한다. - 플레이어 객체 변수 끌어다 놓고, Get Character Movement를 검색 후 연결한다. - Is Falling 노드 검색 후 연결
Falling : 공중에 있다는 것을 확인하는 변수다.
Movement Component 안에 캐릭터가 추락중인지 확인하는 함수가 있다.
액션 매핑으로 점프를 만든다 - 캐릭터의 이벤트 그래프 - 점프액션 노드 가져오기 - 끌어 놓고 캐릭터의 ‘점프’ 노드를 검색해서 클릭한다.
캐릭터 클래스에는 점프를 실행하는 함수가 있다.
JumpLoop 애니메이션 끌어다 놓기 - JumpStart 연결 - 양방향 조건 버튼 클릭 - Time Remaining 검색 후 클릭(ratio) - < 연산노드를 연결해 0.5 (50%)보다 작으면 애니메이션이 실행되도록 설정한다.
Time Reaining(남은 시간) : 애니메이션 시작부터 끝까지 남은 시간을 초로 구한다.
Time Remaining(ratio) : 남은 시간을 비율로 구한다.
JumpEnd 연결 - Falling 변수를 끌어다 놓는다. - NOT 연산 검색 후 연결
Falling의 NOT이라면 공중에 있지 않다는 의미이니 점프 종료 애니메이션이 실행된다.
같지 않음 연산 : != 연산이다.
NOT Boolean : Not 연산이다. (반전)
End와 Unarmed를 연결한다. - < 연산 노드를 검색하고 0.8 (80%)보다 작으면 애니메이션이 실행되도록 한다.
즉, 남은시간으 80%보다 작을떄 돌아간다.
점프 순서
언암드 → 점프 시작 → 점프 루프 → 점프 엔드 → 언암드
캐릭터 무브먼트 옵션
캐릭터 무브먼트(일반 세팅) - 0.25로 세팅되어있다면? - 중력 스케일 : -9.8(기본적으로 적용되는 중력) * 0.25이니 기본 중력의 4분의 1배가 적용되고 있다는 의미이다.