일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 다익스트라
- 정렬
- 재귀
- 백트래킹
- 유니티
- VR
- 문자열
- 다이나믹 프로그래밍
- 백준
- ue5
- 스택
- 유니온 파인드
- 구현
- 자료구조
- Unreal Engine 5
- c++
- Team Fortress 2
- 그래프
- XR Interaction Toolkit
- 브루트포스
- 알고리즘
- DFS
- 누적 합
- BFS
- 트리
- 투 포인터
- 수학
- 그리디 알고리즘
- 우선순위 큐
- 시뮬레이션
- Today
- Total
목록전체 글 (616)
1일1알

// HeaderUPROPERTY(BlueprintReadOnly)float GroundSpeed = 0.f;// Cppvoid UDBAnimInstance::NativeUpdateAnimation(float DeltaSeconds){ Velocity = MovementComponent->Velocity; GroundSpeed = Velocity.Size2D();} AnimInstance 클래스를 상속받은 DBAnimInstance Class를 생성, 애니메이션 재생에 필요한 정보들을 정의해서 프레임마다 NativeUpdateAnimation 함수를 통해 정보들을 갱신한다. 예를들어 Speed를 정의하고, Character Movement 컴포넌트의 Velocity를 이용하여 Spee..

밸브에서는 상업적으로 사용하지 않는다면 리소스를 사용하는 것은 괜찮다고 한다.스팀 라이브러리에서 게임을 우클릭하고 로컬 파일 보기를 눌러서 해당 게임의 파일들이 있는 폴더로 이동할 수 있다. 폴더 내에는 vpk(Valve Pack File)라는 형식의 파일이 있는데, 이것이 리소스들이 들어있는 파일이다. misc는 메쉬, 애니메이션 등의 정보, Sound는 사운드 정보, Texture는 텍스쳐 정보가 들어있는 파일인 것 같다.이 vpk파일은 그냥 열수는 없고 GCFScape라는 프로그램을 통해서 열 수 있다. Sound파일들은 .wav로 되어있어서 우클릭 -> Extract를 통해 추출하여 그대로 사용할 수 있다. Texture 파일들은 .vtf라는 파일로 되어있는데..

Team Fortress 2는 2007년에 출시된 밸브에서 만든 게임이다. 어떠한 경로로 이 게임을 접하게 되었는지는 기억이 나지 않지만 중학생때 이 게임에 푹 빠진 기억이 있다.특히 닷지볼이라는 모드를 주로 했는데, 날아오는 로켓을 파이로라는 캐릭터의 공기 분사를 통해 반사하는 모드이다. https://www.youtube.com/watch?v=c7rzHYWYzUk팀포트리스2 닷지볼 플레이 영상(본인은 아님) 언리얼 엔진5를 학습하면서 만들어보면 좋을 게임이 뭐가 있을까 하다가 중학생 시절에 푹 빠져있던 팀포트리스2 닷지볼을 만들어보기로 결심했다. 언리얼 Dedicated server를 학습 후 멀티플레이까지 구현해 볼 생각이다.

3D 캐릭터에 애니메이션을 적용하려면 어떻게 해야할까? 2D라면 여러개의 이미지를 준비하여 이미지들을 빠르게 보여주면 애니메이션 효과를 낼 수 있지만, 3D는 수많은 정점들로 이루어져있어서 모든 장면의 정점 정보들을 따로 저장하는 것은 매우 비효율적일것이다. 3D 오브젝트에는 모델에 뼈대를 심어서 정점들이 어떤 뼈대의 영향을 받아서 움직일 것을 정하는 리깅 작업을 통해 애니메이션을 적용한다. { shared_ptr converter = make_shared(); converter->ReadAssetFile(L"Kachujin/Run.fbx"); converter->ExportAnimationData(L"Kachujin/Run"); } // f : keyfrmae // b : bone Matrix toRo..

단순한 도형이 아닌 가상 공간에 배치되는 물체들은 정점들이 굉장히 많을 것이다. 이런 물체의 정점 정보들을 코드로 하나하나 채워줄 수 없기 때문에 외부에서 만든 파일을 읽어서 사용해야 한다. fbx 포맷의 파일을 사용했고, Assimp라는 라이브러리를 사용해 fbx파일을 읽어서 파일을 분석한 뒤 필요한 정보만 뽑아서 따로 저장하고 사용할 때는 따로 저장한 정보를 읽어서 사용했다. 필요한 정보만 따로 저장하는 이유는 Assimp라이브러리를 사용해 파일을 로드하면 이런저런 잡다한 정보들까지 모두 추출하여 시간이 오래 걸리기 때문이다. shared_ptr converter = make_shared(); converter->ReadAssetFile(L"Tank/Tank.fbx"); converter->Expor..