Skip to content

heungdol/UE5_Harris3D_ProceduralAnimation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Harris 3D를 활용한 Procedural Climbing Animation 제작

2022년 1학기 소프트웨어융합캡스톤디자인 프로젝트
Video Label
유튜브 영상

1. 개요

1-1. 배경


최근 나오는 게임들을 보면 캐릭터들의 움직임이 되게 입체적인 것을 확인할 수 있다. XY 평면으로만 이동하지 않고 높이 Z축으로도 이동한다는 점이다. 그렇기에 자연스럽게 벽과 상호작용하는 액션(벽타기, 오르기... 등)의 애니메이션이 필요하게 된다. 이 때 벽화 상호작용하는 액션 중 암벽등반이라는 구체적인 상황을 설정함으로써, 이의 자연스러운 애니메이션을 연출하기 위해 프로젝트를 진행하게 되었다.

1-2. 목표

보다 자연스러운 암벽등반 애니메이션을 연출할 수 있도록 한다.

1-3. 기대

Harris 3D를 비롯한 3D메쉬의 keypoint를 검출하는 알고리즘이 Point Matching 분야 뿐만 아니라 Procedural Animation에서도 활용할 수 있음을 보이고자 한다.

2. 활용 알고리즘 및 기타

2-1. Harris 3D

영상처리의 알고리즘인 Harris Corner Detection을 3차원에서 활용할 수 있도록 하는 알고리즘이다.

2-2. Procedural Animation

Inverse Kinematic을 이용하여 케릭터 애니메이션을 구현하는 기법이다.

2-3. Megascans

Quixel Bridge에서 제공하는 3D 스캔 데이터이다.

2-3-1. 자연물

  • SHARP CLIFF

  • FOREST ROCK WALL

  • ROCKY CLIFF

2-3-2. 인공물

  • ROMAN STATUE

  • ROMAN GRAVE STONE

  • ROMAN MARBLE ORNATE PLINTH

  • ROMAN RED BRICK COLUMN

3. 1차 구현 및 결과 (소융캡디 최종 발표)

3-1. Harris 3D Keypoint 검출

3-1-1. 자연물

  • SHARP CLIFF (Vertex Ring Number = 3 / Harris Number = 0.2)

  • FOREST ROCK WALL (Vertex Ring Number = 3 / Harris Number = 0.1)

  • ROCKY CLIFF (Vertex Ring Number = 3 / Harris Number = 0.2)

3-1-2. 인공물

  • ROMAN STATUE (Vertex Ring Number = 3 / Harris Number = 0.05)

  • ROMAN GRAVE STONE (Vertex Ring Number = 3 / Harris Number = 0.245)

  • ROMAN MARBLE ORNATE PLINTH (Vertex Ring Number = 3 / Harris Number = 0.2)

  • ROMAN RED BRICK COLUMN (Vertex Ring Number = 3 / Harris Number = 0.2)

3-2. Procedural Animation

3-2-1. Third Person Character

- 메인 캐릭터 Actor - 4개의 IK Effector와 Pelvis Actor Component를 가짐 - 위의 5개 Actor Component를 관할하는 형식 - 각각의 이동 조건판단 및 Keypoint Location / Normal을 받아 실질적인 이동 계산

3-2-2. IK Effector

- Hands와 Foots를 관리하는 Actor Component - Keypoint의 Normal를 내적시켜 잡거나 딛을 수 있는 Keypoint인지 판단

3-2-3. Pelvis Transform

- Pelvis의 Transform을 관리하는 Actor Component - 이동할 수 있는 구역 판단

3-3. 암벽등반 애니메이션 구현

3-3-1. 자연물

3-3-2. 인공물


특징과 특징이 아닌 구역이 잘 구분되는 인공물 메쉬가 비교적 Keypoint 검출하는 데에 자연스러워 보인다.
그러한 이유로 타당한 Vertex를 잡거나 딛는 움직임을 보인다.

4. 소융캡디 최종 발표 후 피드백

- 검출시 Keypoint들이 가까이 겹쳐져 있는 부분 수정요함
    - 활용할 수 있는 알고리즘으로썬 NMS
    
- 자연물을 보면 Keypoint들이 제대로 검출되지 않았다고 했는데, 두 개의 임계치를 수정해서 테스트해볼 것
    - Window Size -> Vertex Ring Number
    - Harris Operator -> Fraction of the Diagonal

- 캐릭터 컨트롤러 조작감 수정 및  Locomotion 추가

- Control Rig 인터페이스가 잘 되어 있는 UE5로 업그레이드 하기
    - UE5에서도 C++ 빌드할 수 있도록 환경 구성할 것

About

2022년 1학기 캡스톤디자인 프로젝트 파일입니다.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages