개발일지공부아이디어
    • 5월
    • 4월
    • 3월
    • 2월
    • 1월
  • 30

    26. 3. 30.

  • 27

    26. 3. 27.

  • 26

    26. 3. 26.

  • 25

    26. 3. 25.

  • 24

    26. 3. 24.

  • 23

    26. 3. 23.

  • 19

    26. 3. 19.

  • 18

    26. 3. 18.

  • 17

    26. 3. 17.

  • 16

    26. 3. 16.

  • 13

    26. 3. 13.

  • 2차 프로젝트 일지 - 6일차

    26. 3. 10.

  • 2차 프로젝트 일지 - 5일차

    26. 3. 9.

  • 09

    26. 3. 9.

  • 2차 프로젝트 일지 - 4일차

    26. 3. 8.

  • 2차 프로젝트 일지 - 3일차

    26. 3. 7.

  • 06

    26. 3. 6.

  • 2차 프로젝트 일지 - 2일차

    26. 3. 6.

  • 05

    26. 3. 5.

  • 2차 프로젝트 일지 - 1일차

    26. 3. 5.

  • C++ 기본기 연습 프로젝트: 아이템 사전 프로그램

    26. 3. 4.

  • 03

    26. 3. 3.

  • C++ 기본기 연습 프로젝트: 카드 덱 브라우저

    26. 3. 2.

로딩 중...

2026. 3. 3.

쿼드트리

요즘엔 쿼드트리를 쓰기보다 BSP(Binary Space Partitioning)를 더 활용함

컬링(Culling)

https://koreanfoodie.me/1185

이상적인 객체지향 설계 순서

  • 객체를 만들 때 속성부터 생각하지 말고 객체의 책임부터 생각하는게 낫다고 한다
  • 바텀업이 아니라 탑다운

함수 반환 타입 고민

std::vector<Node*> Query(Node* queryNode);// vsbool Query(Node* queryNode, std::vector<Node*>& outNodeList);
기준반환형 vectorbool + out
가독성⭐⭐⭐⭐⭐⭐
실패 표현❌ 애매⭐⭐⭐⭐
반복 호출 성능보통⭐⭐⭐⭐
API 안정성⭐⭐⭐⭐계약 필요
Modern C++ 스타일⭐⭐⭐⭐⭐

그래픽스 프로그래밍

.cso

compiled shader object, 확장자가 표준이 아니라 엔진별로 다를 수 있음

FBX

FBX (Filmbox) 는 3D 데이터 교환용 파일 포맷(산업 표준)

FBX에 포함 가능한 데이터

  • 3D 메시 (Polygon Mesh)
  • 머티리얼 / 텍스처
  • 본(Bone) 구조
  • 애니메이션 데이터
  • 카메라 / 라이트

사용 목적

서로 다른 툴 간 데이터 전달:

  • Maya → Unity
  • Blender → Unreal Engine

리깅 (Rigging)

3D 모델에 뼈(Bone, 관절 구조)를 심어 움직일 수 있게 만드는 작업

기본 과정

  1. 모델링 완료
  2. 본 구조 생성
  3. 메시와 본 연결
  4. 애니메이션 가능 상태로 구성

스키닝 (Skinning)

Mesh를 Bone에 연결하는 작업

Weight Painting

각 정점(Vertex)이 어떤 뼈(Bone)의 영향을 얼마나 받을지 설정

e.g.

  • 팔꿈치 → 상완 50% + 하완 50%
  • 손등 → 손목 100%

목적

  • 관절의 자연스러운 변형
  • 찢어짐/비정상 왜곡 방지

FK, IK

FK (Forward Kinematics)

부모 뼈를 회전 → 자식 뼈가 따라 움직임 e.g. 어깨 회전 → 팔 → 손

특징

  • 구조 단순
  • 자연스러운 아크 동작
  • 걷기, 팔 휘두르기 등에 적합

IK (Inverse Kinematics)

끝 지점을 움직이면 중간 관절이 자동 계산됨 e.g. 손을 벽에 붙이면 팔꿈치 자동 계산

특징

  • 발 고정
  • 손 위치 고정
  • 지형 대응

게임 엔진에서의 처리

기본 파이프라인

모델링  ↓  리깅  ↓  스키닝  ↓  애니메이션 제작  ↓  FBX Export  ↓  엔진 Import

엔진에서 수행하는 기능

1. 리타게팅 (Retargeting)

다른 캐릭터에 애니메이션 재사용

2. 런타임 블렌딩

  • 걷기 ↔ 달리기 보간
  • 공격 중 피격 블렌딩
  • Aim Offset

3. IK 보정

  • 계단에서 발 위치 자동 보정
  • 총기 양손 정렬

4. 물리 기반 처리

  • 라그돌 (Ragdoll)
  • 물리 본 (머리카락, 옷)
왼쪽 화살표C++ 기본기 연습 프로젝트: 카드 덱 브라우저C++ 기본기 연습 프로젝트: 아이템 사전 프로그램오른쪽 화살표