분류 전체보기 81

Constant Buffer

Constant Buffer, 즉 상수버퍼는 vertex Shader단계에서 변수를 사용하고 싶을 때 사용된다. 어떨 때 필요한지 생각해보자. 키보드입력에 따라 캐릭터의 위치를 바꿔야하는데 그러면 전시간에 만들었던 CreateGeometry단계에서 기하학적 모습을 담고있는 버텍스 버퍼에 담긴 벡터위치를 매 프레임 변경해야한다. void Game::CreateGeometry() { // VertexData { _vertices.resize(4); // 1 3 // 0 2 _vertices[0].position = Vec3(-0.5f, -0.5f, 0.f); _vertices[0].uv = Vec2(0.f, 0.5f); _vertices[1].position = Vec3(-0.5f, 0.5f, 0.f); _..

[DirectX11] 2024.01.15

기본 프레임워크 만들기, 외부 라이브러리 추가 방법( feat. DirectXTex)

기본 프레임워크 만들기 DirectX11을 사용하기 위한 프레임워크를 만들기 위해 몇가지 세팅을 해주었다. 데스크톱 마법사로 프로젝트를 생성하고 미리선언된헤더에 pch.h파일을 만들었다. Types.h에 사용하기 쉽도록 재정의한 자료형들을 넣어두고 - 예)DirectX에서 자주 사용하는 자료형인 배열들XMFLOAT2, XMFLOAT3을 Vec2, Vec3등으로 Struct.h에 따로 만들어 사용할 구조체들을, Values.h에 상수들을 관리할 용도로 세 헤더 파일들을 추가하였다. 또 pch.h에 자주 사용할 라이브러리들을 추가했다. *(Windows10 이후 부터 Windows Development Kit 안에 DirectX라이브러리가 있어 따로 이전처럼 추가하지 않아도 된다. 밑에는 텍스쳐를 보여주기 ..

[DirectX11] 2023.11.05

OS 요리사 비교

예전에 보고 괜찮은 비유라고 생각했는데 생각나서 두고 보려구 저장하는 운영체제를 레스토랑 운영에 비교하는 글. https://yozm.wishket.com/magazine/detail/1269/ 레스토랑에 비유해서 알아보는 운영체제 | 요즘IT 오늘은 간만에 좀 흥미로운 주제로 글을 써보고자 합니다. 바로 운영체제입니다. 그런데 이제 뜬금없이 레스토랑을 곁들인…이 주제를 선택한 이유는 지금 운영체제 수업을 듣고 있어서 그런 yozm.wishket.com

[기타] 2023.09.12

[Unreal 4] 언리얼 엔진분석#2

지난번에 다운 받은 언리얼 엔진 소스코드를 분석하는 여러 방법이 있다. 메인함수부터 볼 수도 있고, 관심있는 분야(예-네트워크)부터 볼 수도 있다. 그러나 이번엔 강사의 책에 따라서 언리얼의 가장 핵심이 되는 5대 클래스를 분석해보고자 한다. 컨텐츠를 만들 때 가장 핵심이 되는 프로젝트 1. UObject 2. Actor 3. Pawn 4. Controller 5. Character 1. UObject 1-1. UObject 클래스 상속 vs. 일반 C++클래스 사용. UObject클래스는 언리얼의 최상위 클래스이다. 대부분의 언리얼 컨텐츠를 만들때 UObject 클래스를 상속받아서 만들어진다. 새로운 클래스를 만들 때 UObject클래스를 상속받거나 상속받지 않고 일반 C++클래스를 만들 수도 있는데 ..

[Unreal] 2023.08.08

[Unreal 4] 엔진 분석 #1

엔진이 오픈소스이므로 필요에 따라 바꿔서 쓸 수도 있다. 언리얼 5의 사용을 대비하면서 미리 언리얼4의 엔진을 분석해보자.기존엔 언리얼엔진의 바이너를 다운받아 그 위에 콘텐츠 작업을 했엇구 실제로 언리얼은 오픈소스이므로 소스코드를 다운 받을 수 있다.언리얼 엔진 소스코드 다운로드 경로는 https://docs.unrealengine.com/5.0/ko/downloading-unreal-engine-source-code/ 언리얼 엔진 소스 코드 내려받기소스 코드 저장소에 접속하여 언리얼 엔진 최신 빌드를 다운로드하는 법에 대한 단계별 안내입니다.docs.unrealengine.comhttps://github.com/EpicGames/UnrealEngine 위에 나온래도 여기에 가서 HTTPS의 주소를 복사..

[Unreal] 2023.08.04

[Unreal 4] 언리얼 컨테이너

1. 오브젝트 관리 예를들어 FirstPlayer 프로젝트를 보면 총알을 발사할 때 월드에서 SpawnActor를 이용해 Actor를 상속받은 총알 클래스를 만들어 내는 식이였다. 그런데 만약 우리가 마법 투사체를 만든다면 플레이어도 이 투사체를 기억해야할 경우도 있다. 인벤토리를 만든 다음에 아이템을 줍는다면 인벤토리를 관리하는 컴포넌트를 넣은 다음에 그 인벤토리를 플레이어 캐릭터 안에다가 넣는게 일반적이다. 그리고 인벤토리 안에서는 습득한 아이템을 관리하고 있는 방식일 것이다. 혹은 그 인벤토리를 플레이어 캐릭터 안에다가 넣는 대신 인벤토리를 싱글톤으로 만들어서 접근하게 하는 것도 하나의 방법이다. 그래도 인벤토리 클래스 안에서 아이템 목록을 관리해야하는 것은 마찬가지이다. 일반적으로 C++에서 자주..

[Unreal] 2023.08.04

[Unreal 4] 샘플 둘러보기#2 - 일인칭(First Player)

언리얼 엔진 자체가 사실은 언리얼 토너먼트라는 FPS게임을 만들면서 발전되었기 때문에 일인칭 게임을 만드는데 가장 대표적인 템플릿이라고 볼 수있다. 언리얼 프로젝트를 FirstPlayer라는 이름으로 일인칭을 선택해 만들었다. 실행하면 기본적으로 w,a,s,d키로 움직이고 마우스로 시선을 움직이며 좌클릭시 발사하여 공이 나가고 소리와 물체에 부딪칠시 충격도 있고 반동도 있다. 기본적인 슈팅게임의 요소를 다 가지고 있다. 1. 이번엔 FirstPlayerCharacter클래스 파일부터 먼저 보자. PlayerController가 따로 없이 입력을 받는 부분이 함께 들어가있다. 생성자에서 VR게임인지 여부를 판단해 모션게임인가를 세팅도한다. // [FirstPlayer]Character.h #include ..

[Unreal] 2023.07.21

[Unreal 4] 샘플 둘러보기 - 내려보기 샘플

언리얼엔진의 장점이자 단점인 타이트하게 미리 정해져있는 구조! 이를 익히고 있으면 적응하기 빠르다 새 프로젝트>게임을 하면 이렇게 여러 템플릿 중 선택할 수 있는데 내려보기는 탑다운 구조로 디아블로 , 리니지 같이 쿼터뷰나 탑뷰로 이루어진 게임의 틀 처럼 보인다. 주로 마우스로 움직이고 싶은 위치를 찍어서 이동하게 하는데 레이캐스팅을 해서 그쪽으로 가면 되겠다는 감이 온다. 이렇게 만든 샘플을 키면 마우스 클릭한 위치로 움직이고 커서 부분에 데칼이 있는 샘플이 만들어진다. 이동하는 방법이랑 내 캐릭터에 로봇대신 진짜 캐릭터를 입히고 육면체 장애물 대신 건물을 입혀보고 AI몬스터도 배치해보자. 1. 내 캐릭터 살펴보기 내 캐릭터는 TopDownCharacter라는 이름으로 블루프린트로 만들어져 있다. 클릭..

[Unreal] 2023.07.17

[Unreal 4] 충돌과 UI #2 - 스탯 매니저, UI 실습

충돌과 UI #2 - 스탯 매니저 스탯이라는 개념을 둬서 체력을 표시해보자. 만약 엔진을 사용하지 않고 직접 구조를 만들면 전체적으로 싱글톤패턴이나 전역 클래스로 데이터 매니저를 둬서 장점도 있었는데 이미 언리얼 엔진은 구조가 잡혀있기 때문에 어떤 방식으로 만들어야하는지 고민해봐야한다. 유니티처럼 Actor를 만들어서 BeginPlay에 넣고 로드해온 다음에 Update되는 방법이 있고 아니라면 정석적인 방법으로 새로운 Game Instance클래스를 상속받아서 클래스를 만들고 게임이 실행되는 순간에 한 번 초기화되기 때문에 전역 매니저로 사용하기 괜찮다. 우리도 GameInstance클래스를 상속받아서 MyGameInstance 클래스를 만들었다. 그런데 스탯은 공격력이나 HP등을 말하는데 이런 데이터..

[Unreal] 2023.06.25