Skip to content

heungdol/UE5_Harris3D_ProceduralAnimation_SplineGeneration

Repository files navigation

Harris 3D를 활용한 Procedural Climbing Animation 및 Procedural Spline Generation 구현

2022년 1학기 경희대X펄어비스 인재양성 프로그램 결과물

Video Label
유튜브 영상

1. 개요

1-1. 목표

  • 3D 엔진에서 활용할 수 있는 게임 기술을 개발할 수 있도록 한다.
  • 본 프로젝트에서는 3D Keypoint 검출 알고리즘을 활용하여 사실적인 Procedural Animation 및 Spline Generation을 구현할 수 있도록 한다.

1-2. 사용 엔진

  • Unreal Engine 5
    • Control Rig Plugin 정식지원
    • 퀄리티 높은 렌더링 결과

2. 알고리즘

2-1. Harris 3D

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

결과물
- 특징이 되는 부분에서 불필요한 Keypoint들이 선별된 것을 확인할 수 있음

2-2. Non-Maximum Suppression

딥러닝 영상처리에서 중복도를 줄이기 위해 사용되는 알고리즘

Intersection of Union은 두 keypoint의 거리 및 방향의 유사성으로 대체

결과물
- 빨간선: 최종 선별된 Keypoint
- 노란선: 중복으로 필터링된 keypoint

2-3. Vertex Type Detection

Keypoint의 특성을 판단하기 위한 벡터연산

결과물
- 빨간선: Bump (튀어나옴)
- 주황선: Flat (평평함)
- 초록선: Sink (들어감)

3. 기능 구현

3-1. Procedural Animation

Inverse Kinematic을 이용하여 암벽등반하는 케릭터 애니메이션을 구현

3-2. Procedural Spline Generation

Harris 3D 연산을 통한 Point를 이용하여 생성한 Line

4. 최종 결과

4-1. Procedural Animation

4-2. Procedural Spline Generation

5. 결론

  • Harris 3D, NMS, Vertex Type 모두 사용자(개발자)의 적절한 수치 조절 필요
  • 하나의 Section으로 되어있는 .OBJ 파일에 비하면, .FBX는 여러개의 Section으로 되어 있는 경우가 있음
    • .FBX는 제대로 작동이 안될 수 있음
  • 모델의 Vertex 개수가 많을 경우 연산 부담이 큼
    • 3D 에디터에서 후처리하는 과정을 거쳐야 함
  • 상황에 따라서 적절한 Harris 3D 적용이 필요함

6. 출처

7. 데모

  • 2023년 10월 28일 수정

    • 사용하지 않는 에셋(Megascan, Level ...)들을 제거하였습니다.
    • 테스트 레벨 및 로딩이 오래 걸리는 레벨들을 제거하였습니다.
    • 가능한 프로젝트의 용량을 줄였습니다.
  • 엔진: Unreal Engine 5.03

  • 용량: 약 10GB

  • 에디터: VSCODE

7.1. Procedual Climbing Animation

  • 데모 레벨
    • Content/Levels/Demo_Climbing/Demo_Climb_Result.umap
  • 블루 프린트
    • Content/Harris3D/BP_MyHarris3D_IKEffector.uasset
  • 사용법
    • 디테일 창에서 BP_MyHarris3D_IKEffector의 프로퍼티 세팅 후 업데이트 트리거(M Update Click) 활성화
  • 조작법
    • 이동: WASD
    • 점프: 스페이스
    • 탈출: 스페이스 (벽을 오르고 있을 때)

7.2. Procedural Spline Generator

  • 데모 레벨
    • Content/Levels/Demo_Decorating/Demo_Deco_A.umap
    • Content/Levels/Demo_Decorating/Demo_Deco_A1.umap
    • Content/Levels/Demo_Decorating/Demo_Deco_B.umap
    • Content/Levels/Demo_Decorating/Demo_Deco_B1.umap
    • Content/Levels/Demo_Decorating/Demo_Deco_C.umap
    • Content/Levels/Demo_Decorating/Demo_Deco_D.umap
    • Content/Levels/Demo_Decorating/Demo_Deco_E.umap
    • Content/Levels/Demo_Decorating/Demo_Deco_F.umap
  • 블루 프린트
    • Content/Harris3D/BP_MyHarris3D_Spline_ChristmasTreeLine.uasset
    • Content/Harris3D/BP_MyHarris3D_Spline_Icicle.uasset
    • Content/Harris3D/BP_MyHarris3D_Spline_Vine.uasset
    • Content/Harris3D/BP_MyHarris3D_Spline_Weed.uasset
    • Content/Harris3D/BP_MyHarris3D_Spline_Westrias.uasset
  • 사용법
    • Content/Harris3D 경로의 BP_MyHarris3D_Spline_ 블루 프린트 활용
    • BP_MyHarris3D_Spline_의 기본 설정
      • 씬에 배치된 Harris3D 블루 프린트 정보 (Keypoint를 가져오기 위함)
      • 스플라인 메쉬 정보
      • 업데이트 트리거 (M Update Click)
    • BP_MyHarris3D_Spline_의 프로퍼티 세팅 및 씬에서의 적절한 배치 후 업데이트 트리거(M Update Click) 활성화

About

2022년 1학기 경희대X펄어비스 인재양성 프로그램 결과물입니다.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published