공부/Unreal

24.06.28

월러비 2024. 7. 2. 15:34
  • 메테리얼은 컴파일이 되어있지 않은 ‘쉐이더 코드’ 상태이다.
    • 게임을 실행하면 컴파일이 일어난다.
      • 느리다.
  • 미리 컴파일 하는 메테리얼 : 메테리얼 인스턴스
    • 값을 에디터에서만 바꿀 수 있다.
    • 게임 상태로는 변경할 수 없다.
  • 에디터 모드는 게임모드가 아니다.
    • 게임모드는 실행했을때의 화면을 게임모드라고 하고, 앞으로는 ‘런타임 모드’라고 부른다.

적 애니메이션 블루프린트 생성

  • 플레이어 AnimGraph 복붙하고 오류 정리
    • 적 ABP 파일 - 무기 안드는 블랜드 스페이스 빼고 전부 정리 - (속도를 위해) 이벤트 그래프 - 플레이어 ABP 파일의 속도 관련 노드들 복붙 - ‘적’ 블루프린트 변수 생성 후 ‘검증된 Get’으로 배치하고 Is Valid 핀과 연결한다. - 우클릭 후 ‘Valid’ 를 검색하고 함수 호출의 Valid를 클릭한다. - 형변환 노드와 Set 노드도 적으로 바꾼다. - 방향 관련 노드들은 사용하지 않는다.

사망 (전날 것과 이어서 진행)

  • 사망 시 충돌 안들어가게 설정
    • 적 블루프린트 - ‘사망’ 이벤트 노드 확인 - ‘Set Collision Enabled’ 검색 후 갬슐 컴포넌트를 Get으로 끌고와서 연결하고 No Collision으로 설정한다.
  • 사망 종료 노티파이 설정
    • 적 블루프린트 - 커스텀 이벤트 생성(사망 종료) - ‘Destroy Actor’ 검색 후 연결 - ‘사망 종료’ 노티파이 생성 - 형변환 Enemy로 바꾸고 적의 블루프린트에 있는 ‘사망 종료’ 이벤트 연결 - 사망 애니메이션 - ‘사망 종료’ 노티파이 넣긱

히트 시 색 변경

  • 적 블루프린트 - 메시 노드를 가져온다. - ‘Get Materials’ 검색(복수형이기 때문에 ‘배열’로 리턴된다.) - ‘BeginPlay’ 이벤트 노드 확인 - 다른 시퀀스 핀을 끌고 ‘For Each Loop’ 검색 - Loop Body 핀을 끌고 ‘Create Dynamic Material Instance’ 검색 후 Parent에 Array Element를 연결 - 생성된 메테리얼 인스턴스들을 저장할 ‘메테리얼들’ 변수를 ‘dynamic material instance’ 타입의 배열로 생성한다. - ‘메테리얼들’ 변수를 Get으로 배치하고 끌어서 ‘Add’를 검색하고 배열의 추가를 클릭한다. - 메시 컴포넌트를 Get으로 배치하고 ‘Set Material’을 검색하고 Create로 만들어진 메테리얼 인스턴스를 연결하고 반복문의 Array Index를 Element Index에 연결한다. -
    • For Each Loop : 한번씩 실행하는 함수다.
      • Loop Body : 실행할 배열
      • Array Element : 실행하는 배열 중 하나씩 반환된다.
      • Array Index : 실행하는 순서(배열의 몇번째 순서인지)
      • Completed : 반복을 다 돌고 빠져나온다.
    • Create Dynamic Material Instance : 게임 실행 중 변경 가능한 동적 메테리얼 인스턴스를 생성하는 함수다.
    • Add - 배열 - 추가 : 그냥 배열 추가
      • Add - 배열 - Add Unique : 중복 없이 추가
      • Add - 배열 - Add Items : 중복 허용 추가
    • 정리
      • 적의 메테리얼 2개를 가져온가. - 반복문을 돌린다. - 가져온 메테리얼의 인스턴스를 생성한다. - 생성한 배열 변수에 저장한다. - 메테리얼에 세팅한다.
      • 새로 생성한 메테리얼들을 이용하여 히트시 색을 바꾸고 돌려줄 것이다.
  • 히트시 색 변경 설정
    • AnyDamage 이벤트 노드 확인 - ‘메테리얼들’ 변수 Get으로 가져오고 Damaged 출력 핀에 ‘For Each Loop’로 같이 연결 - Array Element를 끌고 ‘Set Vector Parameter Value’ 검색 후 Parameter Name(변경될 파라미터 이름 : 여기서는 메테리얼의 색이니 BodyColor가 된다.)을 변경할 파라미터의 이름으로 바꾼다.(BodyColor) - Value는 바꾸고 싶은 색으로 바꾼다.
    • 메테리얼 인스턴스의 베이스 색 확인 : 인스턴스 파일 - 디테일 - Global Vector Parameter Values - BodyColor
  • 바꾼 색 돌아오게 설정
    • 적 블루프린트 - 색 변경 노드 확인 - 반복문의 Completed 끌고 ‘Delay’를 검색하고 유틸리티의 플로 컨트롤의 ‘딜레이’를 클릭한다. - ‘메테리얼들’ 변수 가져다가 색 변경 노드들처럼 설정하고 연결한다.
    • 딜레이 : 정해진 시간만큼 실행을 지연시키는 함수다. ⇒ 이건 블프에서만 되고 C에서는 안된다.

히트 시 공격자 바라보기

  • AnyDamaged 이벤트 노드 확인 - ‘Find Look at Rotation’ 검색 후 Start 핀을 끌고 ‘Get Actor Location’을 검색해서 연결하고, ‘공격자’ 변수를 Get으로 끌고 ‘Get Actor Location’을 검색해서 연결한다. - 반환 핀을 구조체 분할 하고 z를 끌어 ‘Make Rotator’를 검색하고 z에 연결한다. - 이것들을 ‘Set Actor Rotation’을 검색해서 연결한다.
  • Find Look at Rotation : 회전하여 바라보게 하는 함수
    • Start : 찾으려는 주체 : 자기 자신
    • Target : 찾는 객체 : 공격자
    • 이 함수는 회전이기 때문에 ‘피치’, ‘롤’, ‘야’를 다 갖고있기 때문에 반환 핀이 구조체로 되어있어서 ‘구조체 핀 분할’이 가능하다.

넉백

  • 적 블루프린트 - AnyDamaged 이벤트 노드 확인 - ‘Get Actor Forward Vector’ 검색 - 밀릴 거리를 곱하기 위해 ‘*’를 검색하고 밀릴 값이 들어올 핀을 우클릭하여 핀 변환을 누르고 플로드(단정밀도)를 클릭한다. - 100만큼 밀릴건데 전방에서 뒤로 밀릴것이니 ‘-100’으로 설정한다.(여기까지가 뒤로 밀릴 힘의 값이고 이 뒤에 나올것이 실질적으로 뒤로 밀쳐내는 함수노드들이다.) - 핀을 끌로 ‘Launch Character’를 검색
  • Get Actor Forward Vector’ : 해당 액터의 전방 벡터를 반환하는 함수다.
  • Launch Character : 캐릭터를 미는 함수다.
    • Launch Velocity : 미는 거리
    • XYOverride : 체크를 안하면, 밀리는 중에 다시한번 더 밀라는 명령이 들어오면 밀리는 값에 더해서 더 가속도가 붙어 밀리지만 체크하면, 가중치가 안붙고 밀리는 상태 그대로 더 밀리는 옵션이다.
    • ZOverride : XY에서 축만 바꾼것이다.

카메라 쉐이크

  • 카메라 쉐이크 블루프린트 생성
    • 콘텐츠 브라우저 - 우클릭 - 블루프린트 클래스 - 모든 클래스에서 ‘CameraShake’를 검색하여 ‘MatineeCameraShake’를 클릭한다.
  • 카메라 쉐이크 설정
    • 카메라 쉐이크 파일 - 진동 옵션 조절
    • 진동 기간 : 진동을 얼마만큼 흔들릴지, 얼마만큼의 시간동안 흔들릴지 설정하는 옵션이다.
    • 진동 블렌드 인 시간 ; 가만히 있는 때 부터 카메라가 흔들리기까지 걸리는 시간이다.
    • 진동 블렌드 아웃 시간 : 카메라가 흔들리다가 원래상태로 돌아올때까지의 시간이다.
    • 회전 진동 : 회전 축에 맞춰서 흔들리는 옵션이다. (잘 안쓴다.)
    • 위치 진동 : 위치 축에 맞춰서 흔들리는 옵션이다.
      • X축 진동은 앞뒤로 흔들린다. ⇒ 총을 발사할때 사용한다.
      • 진폭 : 흔들림의 세기
      • 주파수 : 흔들림의 간격
      • 초기 오프셋 : 흔들림이 시작될 지점
        • Zero : 원래 카메라의 위치에서 흔들림을 시작하겠다. (이걸로 설정)
        • Random : 흔들림이 시작될 지점을 랜덤으로 하겠다.
      • 웨이브 폼
        • Parlin Noise : 부드러운 랜덤값(지그재그 값이 아닌 부드러운 곡선으로 강도가 올라간다.)
    • FOV 오실레이션 : 시야각 조절
      • 스나이퍼 모드, 레이싱 게임의 부스트 등에서 사용하는 옵션이다.
  • 카메라 쉐이크 실행
    • 적 블루프린트 - AnyDamaged 노드 확인 - ‘Get Player Camera Manager’ 검색 - ‘Start Camera Shake’ 검색하고 타깃에 연결 후 Shake Class에 ‘카메라 쉐이크 파일’을 선택한다.
    • Get Player Camera Manager
    • Start Camera Shake
      • Scale : 설정된 진폭에 곱해주는 값이다. (설정된 진동 : 50, Scale : 2.0 ⇒ 실제 흔들림 값 100)

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

24.07.02  (1) 2024.07.03
24.07.01  (0) 2024.07.03
24.06.27  (0) 2024.06.28
24.06.26  (0) 2024.06.28
24.06.25  (0) 2024.06.28