진행 상황

플레이어 구르기
구르기는 도중 이동 불가 상태 고정

플레이어 공격
이전 Enemy 구현 시 사용했던 BeginPlay 이벤트로 sword 호출
콤보 애니메이션을 몽타주를 이용해서 애니메이션 속도 및 첫번째 부분만 잘라서 사용

 

보스 구현

몬스터 Ani

Idle

FBX 파일 언리얼5 애니메이션 리타겟팅하는 방법
-애니메이션을 제외하고 임포트 (임포트 시 체크 확인)
-애니메이션 임포트 (애니메이션에 스켈레톤을 연결 확인)
-애니메이션 우클릭
-애니메이션 목록에 리타겟팅
원하는 파일에 익스포트

블렌더를 이용해서 이동 값 삭제 시 FBX 블렌더 임포트 > 이동 값 삭제 > 블렌더 FBX 익스포트 > 사용
- 해당 FBX 저장 시 선택한 오브젝트만 저장을 선택하여 저장

구르기 시 높은 곳에서 떨어질 시 중력 영향을 받도록 설정

Z 값을 캐릭터 무브먼트에 연결하여 개별 설정

고정형 보스 AI (블루프린트)
캐릭터
- 기본 언리얼  5 캐릭터 사용
- 추가 기능 : 구르기 (무적), 공격 구현 [개발중]
보스 몬스터
1페이즈
- 공격 패턴 구현
  - 기본 공격인 좁은 범위 공격
  - 범위 공격인 휩쓸기
  - 조건부 패턴으로 바위 던지기 (일정 이상 거리가 벌어질 시)
기본 개발 목표로 개발 우선순서대로 나열

이전 진행도
-왼쪽 Shift 시 구르기 사용 가능
-구르기 시 애니메이션에 이동 값이 있어서 문제 애니메이션 이동 값 삭제 혹은 애니메이션 교체 예정
이후 진행도
-구르기 애니메이션 이동 값 삭제 후 블루프린터 값으로 이동
-캐릭터 공격 구성 중

 

BOSS AI를 만들기 전 언리얼 엔진 5 기초 공부한거 정리

1. 외워두면 좋은 단축키
뷰포트

V 버택스 스냅
End 가장 가까운 바닥에 스냅
F11 뷰포트 최대화 / 최소화
F 선택한 옵젝 포커스
Ctrl & L 디렉셔널 라이트 마우스로 조절
(한번 입력 후 Ctrl 키 홀딩하고 조절)
   
   

머테리얼 노드 뷰포트

키보드 1 Constant 노드 생성
키보드 3 Constant3Vector 노드 생성
L Lerp (LinearInterpolate) 선형 보간
T Texture Sample 노드
A Add 노드 생성
M Multiply
   
   

머테리얼

이미시브 컬러 (방사, 방출)
- Constant (값 입력) - 머테리얼 이미시브 컬러 연결
- 이를 이용한 특정 부분만 빛이 나도록 설정하는 방법

텍스처
- 검정색 부분은 0의 값
- 흰색 부분은 1의 값
TextureCoordinate
- 텍스처 샘플 UVs 에 연결 (반복되는 텍스처 일 시 Multiply에 연결해서 UVs 분배 시 아래 값 개별 입력 필요 없음)
- UTiling, VTiling (타일링 크기) - 조절이 필요할 시 가로, 세로 값을 일일히 설정 가능

선형 보간
- A < > B
- 1 - 0 의 값 (Alpha 값)
- 텍스쳐를 Alpha에 연결 시 위 텍스쳐 값을 기준으로 적용


고정형 보스 AI (블루프린트)
캐릭터
- 기본 제공 캐릭터 사용
- 추가 기능 : 구르기 (무적) [개발중], 공격 구현
보스 몬스터
1페이즈
- 공격 패턴 구현
  - 기본 공격인 좁은 범위 공격
  - 범위 공격인 휩쓸기
  - 조건부 패턴으로 바위 던지기 (일정 이상 거리가 벌어질 시)
기본 개발 목표로 개발 우선순서대로 나열

진행도
-왼쪽 Shift 시 구르기 사용 가능
-구르기 시 애니메이션에 이동 값이 있어서 문제 애니메이션 이동 값 삭제 혹은 애니메이션 교체 예정

1. 캐릭터 모델링

캐릭터의 모델링을 봤을 때 타 게임과 비교도 안될 정도로 수려하다.

 

좌측부터 출시 순서

 

처음 음림을 봤을 때 와.. 라는 감탄사가 나왔고 금희와 장리를 봤을 때 서브 컬쳐 게임 중 모델링 이정도 퀄리티 뽑는 곳은 없을 것이라고 생각했고 카를로타를 보고 2돌파를 하였다. 현재도 브렌트, 기염, 절지를 제외하고 모두 뽑았다.
그정도로 이 게임에 모델링은 뛰어나다.

 

2. 스토리적 이점을 통한 캐릭터 매력 어필

1막 초기 스토리 정말 다른 의미로 아찔한 스토리였다.

시작할 때 익숙한 구도, 치샤를 보고 까부냥이 생각나서

매력적이지만 부족했던 초반 히로인 2인방, 세계관을 우겨넣은 듯한 스토리와 고유명사 남발, 한국 번역팀 이슈, 이어지는 보고 싶지 않은 캐릭터에 대한 스토리, 전체적인 스토리가 어떤 걸 이야기 하려는지 난해했었던거 같다. 보통 이런 스토리를 밀 때 집중해서 어느정도 기억에 남는게 있는데 진짜 안좋은게 여러개 겹치니 이 글을 쓰는 중에도 기억해보려고 해도 기억에 남는게 없다. 당시 금희, 장리가 나를 달래줬다.
1막에 대한 안좋은 기억에 이렇게 많은 감상평을 남겼지만 1막 이후 그래도 캐릭터 서사 중심, 흡사 연애 시뮬레이션을 하는 듯한 서사가 좋았다. 전체적인 스토리도 세계관, 방랑자에 대한 이야기를 유저가 이해하는데 있어 어렵게 만들지 않았다.
이때 명조가 스토리에 대한 노선을 확실히 잡은 것 같다고 느꼇다. 접은 글에는 게임 스토리에 대한 짧은 생각을 작성

더보기

추후에 스토리 또한 써보고 싶기에 생각난 김에 생각을 정리해볼까 한다. 스토리를 쓸 때 목적이 중요한거 같다. 특히 게임은 장르에 맞춰서 전개나 템포 시뮬레이션을 돌려보며 유저가 느끼는 감정은 글에서 느끼는 감정이 전부가 아니기 때문에 장르에 따라서 많은 고민이 필요한거 같다. 에를 들어 액션 게임이라면 스토리 진행 중 어느 상황에 전투가 들어가야할 것이고 중간 보스, 마지막 클라이막스에서 연출적인 부분을 생각하여 화려하게 싸울 부분을 생각해야한다.

3. 전투
액션 게임이기에 이 부분이 빠진다면 아쉬울 것이다. 명조는 많이 알려진 전투 시스템으로 짜임새 있게 만들었다.

패링

짧게 표현하자면 전투에 빈틈이 없다. 하지만 이러한 빈틈 없는 전투라서 단점 또한 존재한다. 그건 이후에 작성

3-1. 파티 사이클
게임 내 파티를 만들고 이를 통해 파티 사이클이 완성, 수행하면서 만족감을 느끼며 행복 스파이럴이 완성 된다.

짜임새 있는 전투 시스템에 큰 축을 담당하고 있다. 이게 빠진다면 명조가 아니다. 그만큼 중요한 요소이고 모든 유저가 행하고 있는 전투 방식이다. 파티 사이클을 수행하지 하지 않으면 플레이하는데 많은 어려움이 있다. 그리고 딜 사이클이 실패하면 짜증나기도 한다. 유저가 원하는대로 1 - 2 - 3 들어맞게 딜 사이클을 수행 함에 따라 대미지, 클리어 타임 단축과 같은 성과에 재미를 느낀다. 

3-2. 전투 시스템
패링, 극한 회피, 에코, 파티 사이클을 통해서 정말 짜임새 있는 전투를 보여준다.
파티 사이클 도중 에코와 패링, 극한 회피 모든 전투 시스템 활용이 이루어진다.
이를 통해 전투 중 유저는 사이클은 사이클대로 수행하고 몬스터 패턴은 패턴대로 그에 맞춰서 패링, 극한 회피를 수행한다.
하다 보면 전투 중 엄청 바쁜 날 볼 수 있다.

3-3. 단점
명조 전투에 큰 단점은 타의로 인한 딜 사이클이 꼬이는 문제다. 열심히 깎고 만든 딜 사이클이 몬스터 무적 패턴이나 이동 패턴에 의해서 사이클이 꼬인다. 이 부분은 어쩌할 도리가 없다. 지금은 적응해서 그려러니 하고 어느정도는 이해하는 편이다. 연출적인 부분을 보여주고 싶은거라고

4. 이동
이동 시스템은 혁명이고 이 부분을 잘 아는 것 같다. 원신을 처음 했을 때 불편했던 부분이 바로 이동 부분인데 그걸 좋은 방안을 해결했다.
4-1. 벽 달리기
스태미너가 존재하지만 답답하지 않고 시원하게 박차고 올라고 간다. 지붕이나 걸리는 부분은 추가적인 동작으로 뛰어넘는다.
벽을 붙잡고 세월아 네월아 기어가는건 내 스타일이 아니다.

4-2. 활공
이 시스템이 처음 나오고 충격을 받았다. 활공이라는 시스템은 타 게임에도 많지만 이정도로 잘 어울리는 게임은 명조뿐일 것이다.

활공을 처음하게 될 장소

이전에도 명조 게임에 배경 디자인은 좋았지만, 라군나로 넘어오며 배경 디테일이 폭발적으로 증가한 것 같다. 확 트인 배경이 정말 이루어 말할 수 없는 감정이였다. 게임에서 이런 감정을 느낀게 오랜만이라고 말하고 싶다.
활공으로 낮, 황혼, 밤 모두 날아보며 배경을 감상했다. 이게 혁명이 아니면 무엇일까 싶다.
이렇게 봤을때 정말 디테일적으로 잘 준비하는거 같다. 어떤 시스템을 만들고 끝이 아니고 즐길 수 있는 방안을 같이 주는, 아마 노리고 한건 아닐것이다. 그냥 좋은 게임을 만들고 싶은 사람들이 만들다보니 이렇게 된게 아닐까 싶다.

주절이 많이 주제에 안 맞는 이야기도 들어가 있지만 명조는 최근 내 인생 게임으로 자리 잡고 평소에 잘 즐기고 있다.

https://youtu.be/oEAC9zKnuhk?list=PLcaQc6eQjXCxFhrsFWWemTkxAWwAmbxzi (공부 영상)

part.1

기획서 작성 중 의사 전달을 위해서 배워볼까해서 튜토리얼을 참고하며 기록합니다.

A를 누를 시 뷰 포트안에 모든 오브젝트를 선택, A+Alt를 누를 시 해제 가능

투시가 없는 뷰 확인 용 (축마다 확인 가능), 휠 클릭 후 이동 시 중앙 기준으로 회전 가능 (빠르게 가능)

우측 손바닥을 누르고 마우스 이동 시 뷰포트 상하좌우 이동이 가능하다. (Shift+Alt 시 같은 기능)

우측 돋보기 누르고 위 아래로 마우스 이동 시 선택 오브젝트 기준 축소 확대 가능 (휠 업, 다운 시 같은 기능) 

뷰 포트를 투시 투영과 직교 투영으로 전환하는 기능 (넘버 패드 5까지 단축키 존재)

*투시 투영(Perspective projection)은 우리 눈으로 보는 것과 같은 방식으로, 멀리 있는 물체는 작게, 가까이 있는 물체는 크게 보이는 효과를 줍니다. 현실감 있는 3D 장면을 표현하기에 적합합니다.

*직교 투영(Orthographic projection)은 물체의 크기를 일정하게 유지하며, 평행선을 유지하는 방식으로 투영합니다. 즉, 거리에 관계없이 물체의 크기가 동일하게 보입니다. 건축 도면이나 기술 도면처럼 정확한 비율과 치수를 표현해야 할 때 유용합니다.

해당 아이콘 클릭 및 넘버 패드 0 누를 시 현재 설정해둔 카메라 렌즈 기준에서 오브젝트를 볼 수 있습니다. (넘버 패드 0)

*추가

넘버 패드 1,3,7,9 축에 따른 직교 뷰포트로 변경하는 단축키

넘버 패드 4,8,6,2 경우 카메라 회전 조정 단축키

기준이 될 물체를 선택 View - Frame Selected 할 시 카메라 회전 기준이 변경됨 (넘버 패드 .)

part.2

크기 전환 시 마우스 <-> 상태에서 우클릭 시 나오는 뷰 설정

수직 분할 (Vertical Split)

수평 분할 (Horizontal Split)

작업 중 실수로 해당 창을 지워버릴 시 이미지에 활성화된 버튼을 눌러서 같이 다시 생성 가능

Join 기능은 현재 방향을 설정하여 합쳐지는 기능으로 변경됨

Ctrl+Space 시 해당 선택한 뷰포트가 전체화면으로 변경됨 (다시 한번 누를 시 해제)

퀵 메뉴 (T 단축키) 

마우스 퀵 메뉴 (Shift+Space 단축키) - 더 유용할 듯

뷰포트 우측 < 를 누를 시 선택된 오브젝트의 속성 값이 표시됨 (N 단축키) 

Shift + 우클릭 시 오브젝트의 회전이 되는 기준점 이동 가능

Shift + S 누르고 시 3D 커서에 대한 메뉴가 나오며 N 속성 값에서 View 탭 메뉴에서도 변경 가능하다.

이미지에 선택되어 있는 Cursor to World Origin 값을 선택할 시 기존 값으로 되돌아 간다.

마우스에 대한 정보

최종 이미지 렌더링 설정

출력 - 파일 저장 위치등 출력 내보내기 시 설정하는 값

우측 위 렌더링 미리 보기 기능

렌더링 시 월드(배경) 값을 설정하는 곳

오브젝트 속성 값

값 체크 시 렌더링 뷰포트에서 투평하게 처리 됨 

수정자(Modifier) 오브젝트의 형태를 변경하는 데 사용되는 도구입니다. 오브젝트의 데이터를 직접 수정하지 않고도 다양한 효과를 적용할 수 있어 비파괴적인 작업 방식을 가능하게 합니다.

오브젝트 제약 조건(Object Constraint)
오브젝트 제약 조건은 오브젝트의 위치, 회전, 크기 등을 다른 오브젝트나 특정 조건에 따라 제한하는 기능입니다. 애니메이션 작업이나 복잡한 움직임을 구현할 때 유용하게 사용됩니다.

오브젝트 데이터 속성(Object Data Properties)
선택한 오브젝트의 유형에 따라 다양한 속성을 설정하고 편집

part.3

  이동 회전 크기
단축키 G R S
X,Y,Z 축 이동 시 G + 각 축에 해당하는 X,Y,Z 키 입력
숫자 입력 후 Enter 시
해당하는 값 변경 가능
X O O
변경 시 방법 변경 후 클릭할 시 변경, 오른쪽 or ESC 누를 시 변경 취소 가능
Ctrl + Z 시 되돌리기

단축키 I - 키프레임 추가
ㄴ다음 키프레임에서 변경 후 I 를 눌러서 설정을 한번 더 해야함

ㄴ하지만, 이런 번거러움을 위한 기능인 Auto Keying이 있습니다.


단축키 X - 누를 시 삭제 가능
단축키 Shift + A - 빠르게 뷰포트에 오브젝트를 추가하는 방법

로케이션 값들을 키 프레임으로 변경할려면 해당 값을 변경해야합니다.

part.4

뉴 씬 단축키 Ctrl + N

타임 라인, 도프 시트, 그래프 편집기

타임라인
키 프레임을 이동하려면 단축키 G

누를 시 시작와 끝을 설정 후 반복 재생 가능 (보통 자세한 프레임 수정이 필요할 시 사용) 
한번 더 누를 시 복구 휠 클릭 시 타임라인 이동 가능
Ctrl+Home 시 시작 프레임으로 이동 End 시에는 종료 프레임 설정
Shift+D 시 키프레임 복제
아래 마커 네임 F2로 설정 가능

part. 5 이후 기록은 하지 않겠습니다. 간단한거나 직접하며 숙달해야하는 부분 시 시간이 좀 더 걸려 기록을 생략할 예정입니다.

명조:워더링 에이브

https://youtu.be/BCDL6v02XxA

이번 파수인 스토리에서 나오는 노래인데 좋아서 링크 올려둡니다. 틀어두고 보셔도 좋습니다.
멀티 플랫폼 액션 게임 명조의 패링을 분석할 예정입니다.

패링

  • 패링 조건
    • 노도급(준보스급) 이상의 패링 패턴 시전 (이펙트 효과)
  • 패링 성공 조건
    • 몬스터 패링 패턴 시전 시 패링 표시 이펙트에 표시에 맞게 공격

  • 프로젝트내 예상되는 패링 설정 방법
    • 프로젝트 룰이 정해져있고(기본값) 패링이 가능/불가능한 공격에 대해서 파라미터로 개별 설정 가능할 것으로 예상
  • 패링 불가능한 조건
    • 캐릭터가 공격 시전 시 몬스터가 공격 사거리 밖에 있을 시
    • 캐릭터의 공격이 패링 불가능한 공격 일 시
      • 일반 투사체 공격
      • 특정 스킬 공격
        • 연발 투사체 스킬
          • 마지막 피니쉬 공격이 있을 시 패링 가능
    • 에코(소환수) 별 불가능한 에코와 가능한 에코로 나눠짐
    • 캐릭터의 공격으로 패링 대상 사망 시

  • 패링이 가능한 상태 표시 방법
    • 이펙트 표기 (허점 아이콘)

  • 패링 이후
    • 메리트
      • 몬스터 패턴 스킵
        • 패링 히트 애니메이션으로 넘어가며 후속 패턴 스킵, 3초 가량 딜 타임
      • 준보스급부터는 그로기 게이지가 존재, 패링 성공 시 게이지를 대량 감소 시킵니다.
    • 시각적 효과
      • 이펙트
      • 사운드
      • 카메라 쉐이크
      • 포스트프로세싱
      • 애니메이션
    •  

명조 패링 분석을 끝마치고 플랫폼별 패링의 차이점을 정리하며 마무리하겠습니다.

패링 시스템은 플랫폼에 따라, 특히 콘솔/PC 게임과 모바일 게임에서 뚜렷한 차이를 보입니다. 가장 큰 차이점은 바로
패링의 난이도입니다. 패링의 조건, 패링 타이밍 이펙트 표기 차이 등으로 패링의 난이도에서 큰 차이가 납니다.

이러한 차이는 플랫폼별 특징과 유저층, 게임 디자인의 방향성을 반영한 결과입니다. 모바일 게임은 터치스크린 조작, 이동 중 플레이 등의 특징을 지니고 있으며, 매번 반복해야 하는 콘텐츠 특성상 높은 난이도는 유저에게 피로감을 줄 수 있습니다. 따라서 모바일 환경에 맞춰 패링 난이도를 낮추는 선택을 한 것으로 보입니다.

결론적으로 개발자는 플랫폼의 특성과 게임의 장르, 타겟 유저층을 고려하여 최적화된 패링 시스템을 고려해야 합니다.

https://youtu.be/gsyZdKYAT_4?list=PLNwKK6OwH7eW1n49TW6-FmiZhqRn97cRy

영상을 따라하며  AI 제작을 진행하였습니다. 포스팅은 복습용이므로 설명이 불충분한 부분은 영상으로 확인 바랍니다.

  1. AI 플레이어 인지 종류 (AIPerception)
  2. AI 인지 및 AI 동작 처리
  3. 정찰 (Investigating)

AI 인지 컴포넌트 생성: AIPerception

AI 시야 구성(Sight config)
최대 수명은 AI가 플레이어를 기억하는 시간 (목표가 벗어날 시 벗어난 좌표를 기억하고 좌표를 기반으로 행동 후 입력한 시간이 지난 후 완전히 벗어난 상태가 된다.)

디버그 방법
플레이 후 ' 키를 누를 시 디버그가 가능
숫자패드 0 ~ 4를 누를 시 각 디버그 (4. AI 인지 관련 디버그) [설정한 디버그 컬러로 나타남]
해당 키는 변경 가능

AI 인지 테스트: 키에 할당하여 테스트

Player에게 키를 할당하여 테스트 (사운드 및 대미지)

AI 인지 함수: Can Sense Actor

Can Sense Actor: 타깃에 대한 정보가 올바르게 인지한게 맞는지 검증하는 함수

AI 인지 후 동작 처리: 
시야 범위에 들어왔을 시 ,청각 탐지 범위에서 소리가 났을 시 ,대미지를 입었을 시

플레이어를 어떤 방법으로 인지 시 플레이어 액터 정보를 시퀀스에 따라서 실행 "Can Sense Actor"에서 검증 후 True가 나오는 행동을 실행하는 블루프린트 구성
For Each Loop에 경우 여러 플레이어 처리를 위한 노드
사운드 경우 발생한 사운드 발생 위치에 대한 벡터 좌표가 필요

정찰(Investigating): AI를 정찰 상태로 변경 

AI가 정찰 상태로 변경 시 필요한 정보를 받음

무브 스피드를 세팅하고 정찰 상태로 들어갈 시 얻은 Vector 정보에 따라서 이동 후 설정된 시간 동안 적이 감지가 안될 시 다시 패트롤 상태가 된다.

이번 강의 영상까지는 기초적인 AI를 만들었습니다. 다음은 AI가 지형지물을 이용하는 등 조금 더 똑똑한 AI로 만들 예정입니다.

https://youtu.be/WFV5IewGks8

영상을 따라하며  AI 제작을 진행하였습니다. 포스팅은 복습용이므로 설명이 불충분한 부분은 영상으로 확인 바랍니다.

  1. AI 정찰 경로 생성
  2. 정찰  & 공격
  3. 상태 전환
  4. 상태에 따른 애니메이션

AI 정찰 경로 생성: Patrol Route

블루프린터 - 스플라인 컴포넌트 생성

스플라인 좌표 정보를 벡터로 반환

 

AI 인터페이스 생성 BPI_Enemy

AI Speed Enum (열거형) 생성 (AI 걷기, 달리기, 전력질주 속도 값)

AI PatrolRoute 스플라인 오브젝트 생성

AI 스플라인 포인트 위치 계산 블루 프린트

 

신규 태스크 생성: BTT_MoveAlongPatrolRote

AI 루트를 따라서 이동

AI 상태 변경 시 정지 (애니메이션 재생을 위함)

 

신규 태스크: BTT_SetMoveSpeed

캐릭터 상태에 따른 무브 스피드 세팅

 

신규 데코레이터: BTD_IsWieldingSword

무기가 생성 되어있지 있지 않을 시 BTT_WieldSword 태스크 실행

BTT_WieldSword 태스크를 BT에 의해서 실행 (Wield Sword 함수 실행)
모듈화를
 위한
바인딩으로 Finish 처리

 

신규 데코레이터: BTD_HasPatrolRoute

맨 위 BT에서 캐릭터의 상태가 패트롤이 될 시 한번 더 검증하는 데코레이터로 PatrolRoute를 가지고 있는지 null 검사를 하는 단계
null 일 시 False을 반환하여 정찰이 실행되지 않는다.

상태 전환 값 생성: E_AIState

Enum AI State 상태 열거

BT에서 블랙보드 키 값 데코레이터로 검증

테스트용으로 Player BP '1' 키 입력 시 AI의 상태 전환을 부여

상태에 따른 애니메이션 추가: BTT_SheatSword

검집에 검을 집어넣는 몽타주 부여 (상태 전환 시)
Bool 값 변경 위치 개선 (순서에 맞게 배치)

2편 정리 완료 감사합니다.
새로운 형태와 개념이 나오다보니 정리가 좀 더 디테일해졌습니다.

https://youtu.be/-t3PbGRazKg?list=PLNwKK6OwH7eW1n49TW6-FmiZhqRn97cRy

영상을 따라하며  AI 제작을 진행하였습니다. 포스팅은 복습용이므로 설명이 불충분한 부분은 영상으로 확인 바랍니다.

학습 방법 [접은 글]

더보기

영상을 토대로 학습하는데 있어 자막 자동 번역에 기능은 좋지만 학습하기에는 조금 부족한 부분이 있기 때문에 영상에서 사용하는 기능에 대한 개념, 기본 지식은 어느정도 알고 있어야 개념 설명 시 이해하기 쉽습니다. 언어를 알아 들을 수 있다면 더할 나위 없습니다.

 

전 한국어로 제작된 학습 자료를 통해 두, 세번 정도 간단한 AI를 만들어보고 진행하였습니다. 외 설명 시 이해가지 않는 부분은 구글링을 하였습니다. 불편함을 감수하고 이 강의를 선택한 이유는 시리즈 형태로 AI에 대한 전체적인 튜토리얼을 체계적이고 세심하게 다루고 있어서 입니다.

  1. 여러 단축키
  2. 팔로우 및 공격 AI (블루프린터로 구현)
  3. 애니메이션 시 LegIK 일시정지 방법
  4. 팔로우 및 공격 AI (비헤이어트리로 구현)
  5. 휘두르는 검 생성

많이 사용한 단축키

Ctrl + 스페이스 콘텐츠 드로우 호출
Alt + P 플레이
ESC 플레이 종료
블루프린터
정리할 항목 드래그 후 Q 선택된 노드 직선으로 나열하여 정리
애니메이션 타임라인에서
커브 추적
F

2. 팔로우 및 공격 AI (블루프린터로 구현)

AI 언리얼 제공 기능 사용

BeginPlay 시작 시 호출되는 이벤트로 경우에 따라서 호출이 늦어지는 경우가 있으므로 사용하지 않는 이벤트
커스텀 이벤트 생성 하여 언리얼에서 제공하는 AI Move To를 이용하여 구현

입력된 범위 안에 타겟이 들어올 시 이동 성공

 

공격 이벤트 생성

공격 실행 커스텀 이벤트 생성 (연결 되어있는 우측 완료 시, 중단 시는 무시하고 진행)

사용 할 애니메이션 시퀀스로 몽타주 생성 후 플레이 될 몽타주를 연결해 줍니다.

Attack 이벤트를 적절한 위치에 생성하여 연결하여 테스트

IK가 꼬이는 문제

몽타주 타임라인에서 커브 DisableLegIK를 추가 키 추가하여 0 - 1.0으로 수정하여 시간적 변형이 없게 설정합니다.
이후 테스트 시 몽타주 실행 중에만 IK가 적용되지 않고 재생 완료 후 IK가 적용되는 모습을 볼 수 있습니다.\

 

비헤이비어를 사용하여 구현

비헤이어트리 기본 설명은 생략합니다.

비헤이어트리로 기본 AI 구성 시 BP, BB, BT, AIC가 필요합니다.
AIC에 Event On Possess 이벤트를 이용해 BT를 호출 기본 BeginPlay 사용보다 이걸 사용합니다. (위 설명)

Delay 경우 Enemy가 생성되기도 전에 호출되기 때문에 유예를 주기 위함입니다.
이러하면 AI 컨트롤러의 세팅이 완료됩니다.

새 태스크를 만들 시 중요한 사항으로 붉은 박스 안 이벤트와 함수를 양끝에 오도록 해야합니다.

이후에는 구현된 AI를 나열하겠습니다.

 

어택 단계입니다.

Attack 입니다. On Attack End 호출은 Attack 애니메이션이 다 재생 될 때까지 기다려주기 위함입니다.

Attack 이벤트를 실행 후 종료 On Attack End 호출을 기다린 후 이벤트를 끝냅니다.

 

휘두르는 검 생성 단계입니다.

 

WieldSword입니다. 미리 세팅된 스태틱 메쉬를 설정해둔 소켓에 생성하는 이벤트입니다. (검 생성)
Rule 세팅과 올바른 Socket Name을 입력해줘야합니다.

생성한 WieldSword 태스크입니다. 검을 생성하는 태스크입니다.

검을 한번 생성한 후 이후 생성하지 않기 위한 생성한 데코레이터입니다.

 

타겟 포커스 부분입니다.

타겟을 포커스하는 이벤트입니다.

캐릭터 BP 무브먼트에서 이미지와 같이 세팅하여야 포커스가 올바르게 작동합니다.

좀 더 AI 처럼 만들기 위한 포커스를 초기화하는 이벤트입니다.

완성된 비헤이어트리입니다.

셀렉터로 검 생성 후 데코레이터가 생성된 검 검증 후 ChasePlayer 시퀀스가 실행됩니다. 

감사합니다.

최근 명조를 플레이하며 원신의 답답했던 이동 시스템을 시원하게 해결했다는 느낌을 받아 분석해보았습니다.

1. 어느 부분이 답답했는가?

원신에서는 벽에 막히거나 특정 이동 스킬의 부재로 인해 답답함을 느끼는 경우가 많았습니다. 목적지가 코앞인데 돌아가야 하거나, 계단을 걸어 올라가야 하는 상황, 특정 캐릭터(벤티) 없이는 보상을 얻거나 특정 위치에 도달할 수 없는 상황 등이 대표적입니다. 이런 제약은 스태미너 부족으로 이어져 스태미너 시스템 자체에 대한 불만으로 이어지기도 했습니다. 명조는 이러한 문제점들을 정확히 파악하고 해결한 것으로 보입니다.

2. 명조 이동 시스템 분석

  • 벽 달리기, 벽 점프: 벽이나 계단으로 인한 이동 제약을 해소하는 핵심 시스템입니다. 단순히 벽을 타고 점프하는 것을 넘어, 반복적인 행동으로 인한 답답함과 스태미너 부족 문제를 해결하고 특정 스킬 의존도를 낮춰 스트레스를 줄여줍니다.
  • 로프: 전투, 이동, 비행 중 모두 사용 가능한 만능 스킬입니다. 전투 중 패턴 회피, 적 접근, 이동 및 비행 중 장애물 회피 등 다양한 상황에서 활용되어 이동과 전투를 더욱 스타일리시하게 만들어줍니다.

결론: 명조는 원신에서 불편했던 이동 시스템을 벽 달리기, 벽 점프, 로프 등 다채로운 기능을 통해 해결하며 더욱 자유롭고 쾌적한 플레이 경험을 제공합니다.

+ Recent posts