공부/Unreal

24.06.21

월러비 2024. 6. 25. 12:08
  • branch : if문
  • sequence : 0번 줄 실행 후 1번 줄 실행하겠다는 함수다.
  • 함수 구조체 노드는 핀 분할이 우클릭으로 가능하다.
  • 검증된 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배가 적용되고 있다는 의미이다.
  • 캐릭터 무브먼트 : 점프 / 낙하 - 점프 Z 속도 : 떨어지는 속도를 조절할 수 있다.

'공부 > Unreal' 카테고리의 다른 글

24.06.26  (0) 2024.06.28
24.06.25  (0) 2024.06.28
24.06.24  (0) 2024.06.25
24.06.20  (0) 2024.06.25
24.06.19  (0) 2024.06.20