공부/Unreal

24.06.26

월러비 2024. 6. 28. 13:54
  • 액터 메쉬의 크기는 기존 크기를 기준으로 스케일이 곱해지기 때문에, 디테일 - 쉐이프 에서 액서 메쉬의 크기를 정한 다음에 디테일 - 트랜스폼에서 스케일을 변경한다.

애니메이션 몽타주 끝나면 entry로 들어가서 다른 애니메이션으로 들어가는 문제 - 해결

  • 애니메이션 블루프린트에 몽타주 연결
    • ABP 파일 - AnimGraph - 기존 스테이트 머신의 연결을 끊고 핀을 끌어서 ‘Save Pose’를 검색하여 ‘캐시 포즈 새로 저장’을 클릭하고 이름 지정한다. - 우클릭 후 지정한 캐시 포즈를 검색하여 몽타주 Slot에 연결한다. - 검색된 캐시포즈를 복붙한다. - 캐시 포즈의 핀을 끌고 ‘Bone Blends’를 검색하여 ‘본 별로 레이어로 블렌딩 합니다.’를 클릭한다. - 디테일의 레이어 설정 - 인덱스[0] - 분기 필터 - 인덱스 [0] - 본 이름과 뎁스 블렌드 할당
    • 캐시 포즈 새로 저장 : 연결된 애니메이션의 결과를 저장하는 함수다.
    • 본 별로 레이어로 블렌딩 합니다. : 베이스 포즈(애니메이션)과 Blends Pose를 동시에 출력한다. ⇒ Base Pose가 기준으로 출력된다.
    • 디테일 - 레이어 설정 - 인덱스 [0] : 베이스 포즈에 섞일 Blend Pose 0번을 의미한다.
    • 디테일 - 레이어 설정 - 인덱스 [0] - 분기 필터 - 인덱스 [0] - 본이름 : 스켈레톤에 있는 본에서 애니메이션을 작동하는 본의 이름을 가져온다.
    • 디테일 - 레이어 설정 - 인덱스 [0] - 분기 필터 - 인덱스 [0] - 뎁스 블렌드 : 애니메이션을 얼마나 섞을비에 대한 비율이다.
      • 0 : Base Pose만 쓴다는 의미다.
      • 1 : 완전히 다 섞는자는 의미다.

충돌 - Actor Overlap (겹치다)

  • 텍스트 렌더러
    • 블루프린트 파일 - 컴포넌트 - 추가 - TextRender 검색 : 액터에 텍스트를 띄우는 컴포넌트다.
  • 액터의 영역이 보이도록 설정하는 방법
    • 블루프린트 파일 - 디테일 - 렌더링 - ‘게임에서 숨김’ 옵션 체크 해제
  • ActorBeginOverlapping : 액터가 다른 액터와 겹칠때 이벤트를 발생시키는 이벤트 노드다.
  • 겹치기 시작할 때 액터 이름 출력
    • 액터 블루프린트 - 이벤트 그래프 - 우클릭 후 ‘ActorBeginOverlap’ 검색 - Other Actor 옵션 핀을 끌고 ‘Get Display Name’ 검색 - 반환 핀 끌고 ‘append’를 검색한다.
    • append - 유틸리티 - 스트링 - 덧붙이기 : 문자열들을 연결하는 함수다.
  • 겹치기 끝날 때 액터 이름 출력
    • 액터 블루프린트 - 이벤트 그래프 - 우클릭 후 ‘ActorEndOverlap’ 검색 - Other Actor 옵션 핀을 끌고 ‘Get Display Name’ 검색 - 반환 핀 끌고 ‘append’를 검색한다.

충돌 - Component Overlap (겹치다)

  • 컴포넌트 충돌 시작 이벤트 추가
    • 액터 블루프린트 파일 - 디테일 - 이벤트 - 컴포넌트 오버랩 시작 시 + 버튼 클릭 : 이벤트 함수 노드 추가
  • 원하는 문자열, 겹쳐진 자신 컴포넌트, 부딪힌(겹친) 액터, 부딪힌 충돌체(컴포넌트) 이름 출력
    • 불루프린트 파일 - 컴포넌트 오버랩 시작 노드 확인 - 우클릭 후 ‘Make Literal String’ 검색 - Overlapped Component의 핀을 끌어서 ‘Get Display Name’ 검색 - Other Actor 핀을 끌어서 ‘Get Display Name’ 검색 - Other Component 핀을 끌어서 ‘Get Display Name’ 검색 -
    • Make Literal String : “문자열” 을 만들어주는 함수다.
  • 컴포넌트 충돌 끝 이벤트 추가
    • 액터 블루프린트 파일 - 디테일 - 이벤트 - 컴포넌트 오버랩 종료 시 + 버튼 클릭 : 이벤트 함수 노드 추가

 

  • 블루프린트의 변수들은 디테일에서 ‘프라이빗’을 체크하기 전까지 모든 변수들은 외부에서 접근이 가능한 ‘public’이다.

충돌 - Overlap And Hit (막히다)

  • 칼이 튕겨나올때 사용한다.
    • 소울류 벽튕에서 사용하는듯
  • hit : 충돌체끼리 통과하지 않고 막히는 경우를 의미한다.
  • Component Overlap과 설정이 비슷하지만 다르다.
  • 충돌체 설정
    • 디테일 - 콜리전 - 콜리전 프리셋
      • Overlap All Dynamic : 움직일 수 있는 모든 액터에 대해서 겹침 연산을 하겠다는 옵션이다.
      • Block All : Overlap과 다르게 부딪힌 모든 액터를 막겠다는 옵션이다.
  • 히트 시작 이벤트 설정
    • 디테일 - 이벤트 - ‘컴포넌트 히트 시’ + 버튼 클릭
    • Overlap 종료 이벤트에 연결된 함수 노드들을 연결한다.
    • 충돌체 설정을 ‘Block All’로 설정한다.
  • 사물끼리 막히게 하기
    • 새로운 액터를 레벨 에디터에 배치 - 디테일 - 피직스 - ‘중력 활성화’ 체크 되어있는지 확인 -
    • 디테일 - 피직스 : 유니티의 리지드바디 역할을 하는 컴포넌트다.
    • 디테일 - 피직스 - 피직스 시뮬레이트 : 체크하면 액터에 물리연산을 실행시키는 옵션이다.
    • 디테일 - 트랜스폼 - 모빌리티
      • 스테틱 : 위치 고정 옵션이다.
      • 무버블 : 물리 연산을 적용받게하는 옵션이다.
  • 사물끼리 히트시 뭐가 출력되었는지 출력시키기
    • 위의 설정들 제대로 체크가 되어있고, 함수 노드들 연결 확인 - 충돌 받는 액터의 블루프린트 파일 - 디테일 - 콜리전 - ‘시뮬레이션 중 히트 이벤트 생성’ 체크
    • 시뮬레이션 중 히트 이벤트 생성 : 히트 이벤트를 발생시킬 액터에 체크시킨다.
  • 사물을 구별해서 겹치게하거나 막히게 하기
    • 블루프린트 파일 - 디테일 - 콜리전 - 콜리전 프리셋을 ‘Custom’으로 클릭 - 콜리전 활성화됨의 ‘Collision Enabled’로 되어있는지 확인 - 밑의 무시 ‘ 오버랩 ‘ 블록에서 막거나 겹치게 하고싶은 액터의 콜리전 프리셋에서 오브젝트 타입을 확인하여 어떤 옵션으로 막거나 겹치게할지 체크한다.
    • 콜리전 활성화됨
      • Query Only : 겹침 연산만 수행하는 옵션이다.
      • Physics Only : 막는 연산만 수행하는 옵션이다.
      • Collision Enabled : 겹침과 막는 연산 모두 수행하는 옵션이다.
    • 큐브 액터 오브젝트 타입 : PhysicBody
    • 캐릭터 액터 오브젝트 타입 : Pawn
    • 오버랩 이벤트 생성 : 사물끼리 오버랩 이벤트를 실행시키기 위해 체크하는 옵션이다.
      • 이 옵션은 겹치는 사물끼리 모두 체크되어있어야한다.
      • 히트는 막히는 한 액터만 체크하면 된다.

무기 충돌체 설정

  • 충돌체 조절할때 편하게 설정하는 화면
    • 뷰포트 - 뷰포트 탭 밑의 ‘원근’ 버튼 클릭 : 화면의 시점을 고정해서 액터를 볼 수 있게 한다.
  • 무기의 충돌체는 ‘오버랩’으로 이벤트를 만든다.
  • 무기 소유자(가지고있는 주체) 설정
    • 캐릭터 블루프린트 - 무기 스폰 노드 확인 - Owner 핀에 ‘self’ 검색하고 연결
    • 무기의 주체를 자신으로 지정하는 기능이다.
  • 무기의 주체가 충돌되지 않게 설정
    • 무기 블루프린트 - 우클릭 후 ‘Get Owner’ 검색 - 우클릭 후 ‘!=’ 검색하고 이벤트 노드의 Other Actor(무기와 충돌되는 액터)와 Get Owner의 핀을 연결한다. - Branch를 검색하여 ‘같지 않다’ 노드를 Condition으로 연결하고 True핀에 다음 노드들을 연결한다.
  • 비벼질때는 충돌되지 않게 설정
    • 처음에는 충돌체를 끄고, 공격이 시작될때만 노티파이로 충돌체를 킨다.
    • 무기 블루프린트 - 이벤트 그래프 - 우클릭 후 ‘Begin Play’ 검색 - 충돌체 컴포넌트를 배치하고 ‘Set Collision Enabled’를 검색한다. - 노드의 Type을 ‘No Collision’ 으로 체크한다.
      • 충돌체가 꺼져서 충돌이 안되게 된다.
  • 노티파이 스테이트 : Begin ‘ Ing ‘ End 로 이벤트가 실행되는 이벤트다.
    • 노티파이와 다른점 : 노티파이는 이벤트 구간을 지날 때 딱 한번만 실행되지만, 스테이트는 한 동작에서 Begin ‘ Tic ‘ End 3단계로 이벤트가 실행된다.
  • 충돌 노티파이 스테이트 Begin 설정
    • 콘텐츠 브라우저 - 블루프린트 클래스 생성 - 모든 클래스에서 노티파이 검색 - Anim Notify State 클릭 - 이벤트 이름 설정 - Begin 클릭 - ‘Get Owner’로 이벤트 소유자 가져온다. - 소유자를 가져온 다음 형변환한다. - 형변환 한 블루프린트 핀을 끌고 해당 블루프린트에서 선언한 변수를 가져올 수 있다. - 핀을 끌고 무기 변수를 검색하여 가져온다. - 무기 변수의 핀을 끌면 무기 변수에 연결된 무기 블루프린트의 컴포넌트같은 요소들을 가져올 수 있다. - 무기 변수 핀을 끌고 ‘Get Capsule’을 검색하여 충돌체를 가져온다. - ‘Set Collidion Enabled’를 검색하고 타입을 Collision Enabled로 체크한 다음 연결한다.
    • 노티파이 스테이트의 오버라이드 함수는 5개가 있다.
      • Begin : 이벤트 시작 구간에서 발생하는 이벤트
      • Tic : 이벤트 구간 내내 발생하는 이벤트
      • End : 이벤트 종료 시 발생하는 이벤트
      • 구간으로 발생하는 이벤트 설정에서 사용하기 좋은 클래스다.
    • 충돌 노티파이 스테이트 End 설정
      • Begin에서 충돌체 설정만 No Collision으로 바꿔준다.
  • 노티파이 트랙 추가하여 노티파이 스테이트 추가
    • 두 줄 이상 생성되지만 실제로는 한 줄로 실행된다.
    • 보기 편하라고 만드는 것이다.
    • 트랙에서 우클릭 후 노티파이 스테이트 추가 - 노티파이 스테이트 이름 검색
  • 충돌된 액터 삭제시키기
    • 무기 블루프린트 - 이벤트 그래프 - 마지막 노드에서 핀을 끌고 ‘Destroy Actor’ 검색 후 Other Actor를 연결한다.

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

24.06.28  (0) 2024.07.02
24.06.27  (0) 2024.06.28
24.06.25  (0) 2024.06.28
24.06.24  (0) 2024.06.25
24.06.21  (0) 2024.06.25