[unrealengine4] 47

2023-05-24 언리얼 수업 내용(Notify)

외부에서 state를 받아 해당 state에 대항 montage data를 받아오는 함수 스테이트를 받아올 거 기 때문에 열거형의 state를 받고 스테이트에 몽타주가 여러 개 들어있을 수 있으니 인티저형의 index를 받아온다. 외부의 값을 변경하지 않고 입력받아서 반환만 하는 역할이라 퓨어로 지정을 한다. 이름 : State / 유형 : E_Character State 이름 : Index / 유형 : 인티저 BP_Weapon 클래스에서 특정 State에 대한 특정 index의 MontageParameter를 받아올 수 있는 Get StateMontage 함수를 만들었다. 요약을 하면 Montage Data Map에서 가져온 State가 맞는지 확인하고, true면 Get Montage Data에서 I..

[unrealengine4] 2023.05.25

2023-05-23 언리얼 수업 내용(몽타주,parameter, 블루프린트 오류, c++와 블루프린트 차이점)

BP_MontageDataAsesst : 데이터 에셋 클래스(틀) SwordArmingData : 데이터 에셋(데이터), 데이터를 정의할 수 있다. ★런타임 중 데이터 에셋에 기록되는 것을 막기 https://qkrtjddn0628.tistory.com/19 앞전에 우리는 BP_weapon의 BeginPlay 이벤트를 통해 MontageDataMap에서 Find를 뽑아 Idle State의 원소를 찾고 Idle State의 MontageData배열의 0번째 원소의 Montage의 이름을 플레이 화면에 띄우는 것을 만들어 보았다. 하지만 문제가 있는데 실행을 하고 난 뒤 Montage Data에서 새로운 Parameter가 생성이 되어 런타임 중 변경사항이 저장되는 상황이 생겨졌다. 이러한 이유는 Begi..

[unrealengine4] 2023.05.24

2023-05-22 언리얼 수업 내용(매크로 라이브러리, 몽타주, 구조체)

★Roll 수정 원하는 방향으로 Roll이 실행되도록 수정해 보자 BP_Character에서 Character Movement를 받아올 때 캐릭터의 전방을 입력된 키에 맞춰 회전시키도록 한다. 1) BP_Character 이벤트 - Character Movement - Get Last Input Vector - Make Rot From X 순으로 연결시킨다. Make Rot From X 노드를 통해서 Movement의 입력된 vector값을 통해 X축으로 이용한 Rotator를 만든다. 그리고 Branch의 false값을 Rotation노드에 연결시키고 Rotation와 Roll관련 몽타주 재생과 노드를 연결시킨다. ★무기 붙여보기 1) BP_Weapon 들어가 변수 SocketOnEquipped, So..

[unrealengine4] 2023.05.23

2023-05-19 언리얼 수업 내용(비트마스크, 인터페이스, 몽타주)

★회피(Dadge) 기능 추가해 보기 2가지의 회피를 구현해 볼 것이다. 이동 입력이 있을 때는 구르기 이동 입력이 없을 때는 뒤로 회피 1) BP_BP_CharacterInterface 들어가 Dadge함수를 추가한다. ★열거형 파일 추가 2) 콘텐츠 - Enumerations폴더 추가 - 마우스 우클릭 - 블루프린트 - 열거형 - 열거형 파일이름을 'E_CharacterState' 변경 3) 열거형 파일로 들어가 6개를 추가하자 열거형 디스플레이 다룰 시 주의할 점 언리얼만의 버그가 있다. 언리얼 4에는 열거기 우측에 순서를 바꿀 수 있는 버튼이 있다. 지정해둔 디스플레이들을 순서를 바꿀수 있게 해주는 기능인데 순서를 바꿨을 때 정상적으로 작동이 된다면 안에 관련된 내용들이 같이 이동을 해야 하지만...

[unrealengine4] 2023.05.21

2023-05-18 언리얼 수업 내용(AttachActorToComponent, 인터페이스)

★ 애니메이션에서 소켓 위치 수정해 보기 예시로 draw_1 애니메이션을 보자 이런 경우 우리는 어깨와 팔, 손의 위치를 바꿔보고 싶은 생각이 들 수 있을 것이다. 원하는 관절을 선택한 후 위치를 옳겨주면된다. 이후 시스템이 자동으로 애디티브 레이어 트랙의 키 프레임을 조절해 줘서 우리가 수정한 본 위치에 맞게 자연스럽게 다시 조절해 준다. ★무기를 붙일 자리를 미리 알아보자 앞서 우리는 드로우 관련된 애니메이션을 건들어 봤다. 하지만 우리는 무기를 붙힐 위치를 모른다. 그러니 위치를 미리 알아볼 겸 소켓을 추가해 보자. 1) Draw_1의 애님컴포짓 생성 - 생성한 파일 이름을 'Draw_Composite'으로 변경 2) 들어간 후 Draw_2를 컴포짓에 넣기 3) 검을 등에 붙일 목적이기 때문에 본 ..

[unrealengine4] 2023.05.21

2023-05-17 언리얼 수업 내용(소켓, 메타데이터, 스폰엑터)

미방 ※ 이번 단축키 팁 ctrl + p : 찾고 싶은 에셋 열기 블랜드 스페이스 1D에서도 수치 값을 수정할 수 있다. 추가로 Blend Samples에서 snap to grid 기능이 있는데 노랑색 표시처럼 블랜드의 시작(끝) 지점을 바꿀 수 있다. 주의사항 1. 프리뷰 메시에선 개체 자체의 스케일 올라가는건 반영하지 못한다. 프리뷰는 메시는 메시 자체에 붙이는 거기 때문이다. 2. 컴포넌트에서 캡슐과 스켈레톤 메시를 반대로 할시 위치조절을 스켈레톤을 건들어야 하는데 실제로 붙힐때는 root기준으로 중심점이 또 달라질 수 있다. 그래서 검으로 얘를 들면 손이 손잡이에 잡지 않고 검날을 잡을 수도 있다. 다운 스케일을 시킨 BP를 실제로 붙혀볼 방법 컴포넌트에서 Root가 SkeletaMesh가 아니거..

[unrealengine4] 2023.05.17

2023-05-16 언리얼 수업 내용(블랜드 스페이스1D, 소켓, 무기)

★블랜드스페이스 1D 이번에는 걷다가 점차 빨리 뛰는 자연스러움을 넣어보자 1) 애니메이션 파일에 블랜드스페이스 1D를 추가2) 표시해 둔 것들을 세팅값을 수정하자 - name : 변수이름 - Maximum Axis value : 해당 파라미터의 최댓값 - Number of grid Divisions : 해당 파라미터 (축)에 대한 변화하는 값 개수3) Idle, Walk, Run 애니메이션 들을 해당 위치로 넣어주자초록색 축의 위치가 블랜드를 넣은 구간에 가까워지거나 멀어질수록 초록색 축의 위치에 따라 속력에 맞는 애니메이션이 출력될 것이다. 이제 만들어준 블랜드스페이스 1D를 ABP_character에 추가해 애니메이션을 적용해 보자. 1) 만들어준 BS_Unarmed 파일을 넣고 트랜지션 룰을 이어..

[unrealengine4] 2023.05.17

2023-05-12 언리얼 수업 내용(점프, 블렌드, 애니메이션 프레임 조절)

앞전에 끝내지 못한 Jump를 마무리하자 ★Idle -> IsFalling(컨듀잇) -> JumpStart 컨듀잇 이름을 앞으로 보기 쉽도록 IsFalling으로 변경 - Conduit(컨튜잇) : 여러 트랜지션 룰이 있고 같은 조건으로 동작하고 있을 때 한눈에 알아보기 쉽도록 도와주는 기능, 또한 컨듀잇으로 공통된 조건을 통합할 수 있기에 하나식 수정해야 하는 번거로움을 줄여줄 수 있음 IsFalling은 검사를 할 때 값이 참일 때 조건을 넘기는 식으로 해둘 것이다. ★JumpStart -> JumpLoop 이번에 점프에 관한 자연스러운 애니메이션을 만들 것이다. JumpStart -> JumpLoop 트랜지션 룰의 조건에는 사용할 수 있는 두 가지 노드가 있다. - Current Time(ratio..

[unrealengine4] 2023.05.16

2023-05-11 언리얼 수업 내용(Rotator, Player Controller, Jump)

★Rotator 이동 거리, 속력, 크기 관련은 Vector(백터)를 사용하지만 회전은 Rotator이 따로 처리한다. 이 Rotator는 삼각함수 회전행렬을 사용하여 회전을 표현하게 되는데 이 것의 문제점이 하나 있다. - gimbal lock(짐벌락) : 두 번째 고리가 도는 것 때문에 첫 번째 고리와 세 번째 고리가 겹쳐지면, 첫번째 고리와 세번째 고리의 회전이 겹쳐져 버리기 때문에 한 축에 대한 자유도를 상실하게 되는 것. 이 문제로 해결 방법이 사원수(쿼터니언, quaternion)가 있다. 사원수(쿼터니언, quaternion)의 특징 1. 침벌락이 발생하지 않는다. 2. 행렬보다 점유 메모리 영역이 작고 계산 부하도 낮다. 3. x, y, z 축에 국한되지 않는 임의의 회전축에서의 회전을 손..

[unrealengine4] 2023.05.12

2023-05-10 언리얼 수업 내용(z축 회전, PlayerController)

★캐릭터 좌우 회전하도록 만들기 1) BP_Player의 컴포넌트 Movement -> 디폴트에서 charactor Movement(Rotation Setting)의 Orient Rotation to Mevement를 체크 -> 클래스 디폴트로 넘어가 디테일 쪽 Pawn의 Use Controller Rotation Yaw 체크 해제 하지만 회전을 하면 계속 회전하는 경우를 볼수있다. 이러한 이유는 캐릭터의 기준으로 계속 값을 받아기에 계속 새롭게 갱신이 되기 때문이다. 본인이 만들고자의 목표는 카메라 기준으로 우리가 평소 게임을 했던 그 자연스러운 회전을 하는 동작을 구현해 보자. 2) 아래대로 추가해 보자 논 외로 캐릭터가 회전 시 시점이 살짝 답답한 것을 느끼니 SpringArm의 수치를 수정해 주자..

[unrealengine4] 2023.05.11