꾸준히 개발하자

고정 헤더 영역

글 제목

메뉴 레이어

꾸준히 개발하자

메뉴 리스트

  • 홈
  • 태그
  • 방명록
  • 분류 전체보기 (115)
    • Computer Graphics (58)
      • SCOP (9)
      • HumanGL (9)
      • Graphics Pipeline (10)
      • ALEngine (21)
      • Hiking (9)
    • 자료구조와 알고리즘 (43)
      • 백준 (14)
      • 자료구조, 알고리즘 (29)
    • Java 공부 (5)
      • Java 공부 (1)
      • Java 주차별 공부 (3)
      • 더 자바, 코드를 테스트하는 다양한 방법 (1)
    • 리눅스 (8)
      • 리눅스 기초 (8)

검색 레이어

꾸준히 개발하자

검색 영역

컨텐츠 검색

전체 글

  • Hiking: 프로젝트 후기

    2025.05.27 by Banjosh

  • Hiking: 8주차 프로젝트 마무리

    2025.05.27 by Banjosh

  • Hiking: 7주차 발 궤적 실시간 수정

    2025.05.16 by Banjosh

  • Hiking: 6주차 Foot IK를 적용한 이동 구현

    2025.05.09 by Banjosh

  • Hiking: 5주차 하체 100% IK 적용

    2025.05.02 by Banjosh

  • Hiking: 4주차 Joint Clamping 적용

    2025.04.25 by Banjosh

  • Hiking: 3주차 Jacobian IK 적용

    2025.04.18 by Banjosh

  • Hiking: 2주차 IK 구현을 위한 준비

    2025.04.11 by Banjosh

Hiking: 프로젝트 후기

8주간의 Hiking 프로젝트가 끝났다. 처음 애니메이션 분야를 다뤄본 것이라 부족한 점도 많고 힘든 점도 많았지만 그 안에서 많이 배울 수 있었다. 먼저 프로젝트를 통해 내가 배운 점을 적어보려 한다. 기본기가 중요하다 실제 애니메이션 데이터를 통해 프로젝트를 진행해본 것은 이번이 처음이다. 기본도 안 되있는데 처음부터 FBIK를 구현하려 했으니 목표를 달성하지 못한것은 당연한 것이라 생각한다. (1주차에 정한 목표에 비해 구현한 것이 너무 적다) 애니메이션 분야의 기본기를 먼저 공부한 뒤 난이도를 서서히 올렸어야했는데, 갑자기 IK를 구현하려 하니 기본적인 구현 (스키닝, 애니메이션 블랜딩, 상태 관리 등)을 깔끔하게 구현하지 못했고, 이 스노우볼로 더러운 구현과 비효율적인 분기 남발이 발생하였다. ..

Computer Graphics/Hiking 2025. 5. 27. 16:39

Hiking: 8주차 프로젝트 마무리

Hiking 프로젝트는 8주동안 진행되기 위한 프로젝트였으며 여기서 마무리를 지으려 한다.우선 지난주에 비해 추가된 기능들이다. Root motion을 사용하여 Distance Matching 구현 기존엔 place in 애니메이션을 이용하여 속도를 인위적으로 만들어냈었다. 따라서 애니메이션과 움직이는 속도가 동기화되지 않아 부자연스러운 부분이 발생하였고 Root motion의 움직임으로 캐릭터를 움직이므로서 애니메이션과 움직이는 거리를 동기화시켰다. 발 앞으로 진행시 출발과 도착 normal을 기반으로 자연스럽게 보간기존엔 발을 앞으로 swing하며 진행하는 경우 현재 바로 아래 위치한 지형의 normal에 맞게 발목 각도를 조정해 부자연스러운 움직임이 발생하였다.따라서 출발 위치의 지면 normal에..

Computer Graphics/Hiking 2025. 5. 27. 16:07

Hiking: 7주차 발 궤적 실시간 수정

지난주, walk 애니메이션에서 발과 땅의 offset을 이용해 100% IK로 걷게하는 작업을 하였다. 하지만 이 방법의 문제점은 다음과 같았다. 다음과 같이 현재 땅과의 offset을 애니메이션 기반으로 유지하려다 보니 발을 목표에 맞게 궤적으로 올리는 느낌이 아닌 슬라이딩해서 올려놓는 느낌이란 것이다. 그리고 지난주 문제가 또 있었다.이동이 불가한 지형을 만났을때 캐릭터가 멈추지 않는다는 것이다. 앞이 막혀있는 경우 앞에 길이 없는 경우 위 문제들은 다음 step을 예측하여 이동 가능여부를 판단하고 궤적을 그려 이동하면 전부 해결될 것이라 생각했다. 따라서 이번주는 다음 step을 예측하여 궤적을 그리고 이에 맞게 이동하는 것을 구현하였다. 다음 Step 예측 및 궤적 생성우선 다음 S..

Computer Graphics/Hiking 2025. 5. 16. 14:46

Hiking: 6주차 Foot IK를 적용한 이동 구현

지난주까지는 하체의 움직임을 애니메이션 없이 100% Foot IK만을 이용하여 구현해보려 하였다. 하지만 실제 게임을 구현할 때의 범용성과 앞으로 작업할 일들을 생각해보면 애니메이션에 Foot IK를 적용하는 방향이 더 좋을 수 있다는 조언을 들었고, 그 후로 방향성을 바꿔 애니메이션에 Foot IK를 적용시키는 구현을 진행하였다. 그 과정에서 다음과 같은 기능들을 추가하였다. 현재 애니메이션 Keyframe의 발목과 발가락 각도를 IK에 적용다음은 지난주에 사용한 발목 각도 조정을 그대로 사용하여 애니메이션과 IK를 블랜딩한 영상이다.(아직 왼발에만 IK chain이 존재하기 때문에 왼발만 적용)지난주에 사용한 발목 각도 조정은 가만히 서있을 때를 기준으로 한 것이었다. 따라서 걷는 동안 실시간으로..

Computer Graphics/Hiking 2025. 5. 9. 12:38

Hiking: 5주차 하체 100% IK 적용

corn 모양 변경 Joint의 가동 범위를 지금까지 타원기반의 corn 모양으로 사용했었다. 하지만 x축 각도가 Max 혹은 Min 값으로 갈수록 경우 z축의 범위가 너무 좁아지기 때문에 부자연스러울 수 있다 생각하여 사각뿔로 바꾸었다. (혹시 Jacobian이 수렴하지 못한 이유가 이것일 수 있기 때문에 바꾼 것도 있음) 기존 corn 모양의 가동 범위 새로운 사각뿔 모양의 가동 범위 Jacobian 수렴 못하던 이유 분석지난주 마지막에 clamping에 성공했는데도 불구하고 Target에 수렴하지 못한 것을 발견하였다. 그래서 이번엔 그 원인을 먼저 찾기 위해 디버깅을 진행하였다. 1. Jacobian 자체가 수렴하지 못 하는가?우선 가장 기본적인 Jacobian의 기능을 확인해보았다. 기존엔 t..

Computer Graphics/Hiking 2025. 5. 2. 12:22

Hiking: 4주차 Joint Clamping 적용

이번 주는 각 Joint의 회전 각도에 제한을 두는 기능을 구현하였다. 1. Quaternion -> Euler -> Quaternion 방법 시도가장 먼저 시도했던 것은 Quaternion -> Euler -> Quaternion 방법이었다.이 방법은 2가지로 시도할 수 있다. 1) 현재 Quat -> Euler 변환 -> Euler에 dθ 및 Clamping 반영 -> 새로운 Quat으로 변환 2) 현재 Quat -> Euler 변환 -> Euler에 dθ 반영후 Clamping 해야하는 정도를 측정 -> dθ에 Clamping을 적용한 Quat 생성 -> 새로운 Quat을 현재 Quat과 dθ와 Clamping을 적용한 Quat을 곱해 생성 위 경우는 이전 글에서 말했듯이..

Computer Graphics/Hiking 2025. 4. 25. 14:12

Hiking: 3주차 Jacobian IK 적용

1. Model에 Static Rigidbody와 Mesh collider 적용 우선 IK를 위해 Target의 정보를 얻어와야한다. 이를 위해 Raycasting 기능을 활용하기 위해 Target이 될 수 있는 Model들에 대해 static rigidbody를 만들어주었고, 여기에 mesh 기반 collider를 적용하였다. [구와 박스 모델 렌더링] [Physix Visual Debugger에서 본 Model의 collider] 2. Raycasting으로 Target의 정보를 얻어오는 기능 구현Target이 될 수 있는 Model들에 Collider를 적용한 후, physix의 raycasting 기능을 도입하였다. EndEffector에서 Ray를 발사하여 Target을 발견한 경우, 발견한 T..

Computer Graphics/Hiking 2025. 4. 18. 02:13

Hiking: 2주차 IK 구현을 위한 준비

2주차에는 IK 구현을 위한 준비를 진행하였다.1. Camera 객체 구현Camera 객체는 키보드와 마우스 입력으로 위치와 각도를 조절하는 객체로, CameraPos, CameraUp, CameraFront 벡터를 통해 렌더링에 필요한 view Matrix를 반환한다. 2. Model 렌더링저번 주에 학습한 DX11 지식을 활용하여 Model 렌더링을 구현했다. Model은 여러 개의 Mesh 객체와 Texture 객체들로 구성되며, Model 정보는 Assimp 라이브러리를 통해, Texture 데이터는 DirectXTex 라이브러리를 통해 로딩했다. 3. Skeleton Animation 정보 로딩Skeleton Animation 정보 역시 Assimp 라이브러리를 이용하여 로딩했다. 정보를 저장하..

Computer Graphics/Hiking 2025. 4. 11. 01:18

추가 정보

인기글

최신글

페이징

이전
1 2 3 4 ··· 15
다음
TISTORY
꾸준히 개발하자 © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바