DirectX11 CreateDeviceAndSwapChain 실패 해결 방법
목표DirectX11의 CreateDeviceAndSwapChain 함수의 실패의 원인을 찾고 해결하기 들어가며안녕하세요. 여러분. 오늘은 DirectX11 튜토리얼 도중 만난 오류 해결 과정에 대해 이야기 해보려고 합니다. 튜토리얼을 따라가던 도중 Device 와 SwapChain이 초기화가 안되는 문제를 만나게 됩니다. 다음과 같은 오류를 발생하면서 말이죠. 위 내용을 해석하면 다음과 같습니다. “Windows 10용 D3D11 SDK Layers가 필요한 플래그가 지정되었지만, 시스템에 해당 SDK가 설치되어 있지 않습니다. 이러한 플래그를 제거하거나 Windows 10 SDK를 설치해야 합니다.” 그런데 저는 SDK가 설치되어 있었고, 따로 설정을 건드리지 않았어서 해당 오류를 좀 더 찾아보았습니다. 해결결과적으로 윈도우의 그래픽 도구를 활성화 시켜야 합니다. 다음은 윈도우10 & 윈도우11 에서 그래픽 도구를 활성화 하는 방법입니다. 설정 열기 시스템...
게임 UI 업데이트의 관한 이야기 - MVC 패턴
목표게임에서의 UI 갱신과 데이터 관리에 대한 방법을 알아보자. 들어가며안녕하세요. 여러분. 즐거운 개발하고 계시나요? 오늘은 UI에 대한 이야기를 해볼까 합니다. 여러분들은 UI를 어떻게 갱신하고 있으신가요? 데이터와 UI를 일대일 매칭으로? 하드코딩? 만약 위와 같은 방법을 사용하고 계신다면 한 번쯤 읽어볼 만할 내용이라고 생각됩니다. 유저의 반응일단 우리의 게임을 생각해 보겠습니다. 유저의 플레이 화면에는 지금 체력, 마나, 돈이 표시되고 있습니다. 처음 게임을 접속하고 보이는 데이터는 초깃값이겠죠? 그러면 이 데이터를 갱신하는 시점은 언제일까요? 만약 매 프레임마다 갱신하면 그만큼 성능에 문제가 생길 거예예요. 이때 사용할 것이 바로 유저의 반응, 즉 액션(Action)입니다. 액션액션은 유저의 캐릭터가 사냥을 나서고 대미지를 입으면 체력이 닳겠죠? 또 스킬을 사용하면 마나가 닳을 것입니다. 혹은 몬스터가 드롭한 돈을 습득하면 돈이 오를 거예요. 그러면 여기서 액션은...
두 벡터를 이용한 진행 방향 알아보기 with Unreal
구현 목표벡터의 내적과 외적을 이용해서 캐릭터의 진행 방향 알아보기 구현 과정1. 캐릭터의 방향 먼저, 캐릭터의 방향입니다. 캐릭터의 방향은 2D 공간에서는 상하좌우(4방향), 3D 공간에서는 상하좌우 4방향 + 대각 4방향으로 총 8방향입니다. 이러한 방향의 각도는 -180도 ~ 180도 사이의 값으로 모두 표현이 가능하답니다. 2. 두 벡터 정하기 위 이미지의 파란선은 캐릭터의 ForwardVector, 빨간선은 VelocityVector 입니다. 이미지에서는 진행 방향에 따른 애니메이션이 재생하고 있지만 저희는 앞으로 가는 애니메이션만 있다고 가정해보죠. 여기서 중요하게 봐야하는 것은 VelocityVector입니다. 캐릭터가 어느 쪽으로 힘(속도)를 내고 있는지 알려주고 있어요. 설정 값에 따라 달라지겠지만 지금은 기본 속도인 600으로 움직이네요. 그러면 이러한 의문이 들 수 있습니다. 진행방향은 VelocityVector만 구하면 되는거 아닌가요? 맞습니다....
나만의 언리얼 에디터 만들기 5 - 불 좀 꺼줄래
구현 주제이번 게시글은 단순한 귀찮음에서 시작되었습니다. 포인트 라이트 효과를 확인하기 위해 잠시 다이렉셔널 라이트를 꺼야 했습니다. 처음 몇 번은 그럭저럭 아무 생각 없이 했지만 이게 반복되면서 은근히 신경 쓰였습니다. 또한 아웃 라이너에 쌓이는 다른 오브젝트들 때문에 항상 찾으러 다니기도 귀찮았습니다. 그래서 이러한 반복을 줄이고 방의 불을 켜고 끄는 것처럼 다이렉셔널 라이트를 스위치 하나로 컨트롤하기로 했습니다. 신께서도 불 좀 꺼달라네요. 구현 과정1. 툴바 버튼먼저 이 프로젝트는 언리얼에서 기본 제공하고 있는 템플릿을 바탕으로 제작되었습니다. (진짜 편하고 좋아요:b) 제공하는 템플릿은 총 세 가지 부분으로 나눌 수 있습니다. 모듈 스타일 커맨드 하나씩 설명드릴게요. 먼저 스타일 부분부터 변경해 보겠습니다. 언리얼에서 기본으로 제공 중인 에디터 툴바 버튼 템플릿 2. 스타일스타일 부분에서는 SlateStyleSet을...
나만의 언리얼 에디터 만들기 4 - 노드 꾸미기
구현 주제언리얼 엔진에서 빼놓을 수 없는 부분이 블루프린트 작업입니다. 많든 적든 결국 사용하게 되는 기능이죠. 저는 블루프린트 노드들을 볼 때마다 너무 못생겼다고 생각했습니다. (저만 그런가요?) 그래서 이 못생긴 노드들을 꾸며보기로 했습니다. 언리얼 5으로 넘어오면서 같이 좀 꾸며주지… 구현 과정1. ISlateStyle 를 찾아라!먼저 블루프린트 노드가 어떻게 구성되어 있는지 살펴볼 필요가 있었습니다. 전체 파일 검색에서 BlueprintNode 를 검색하고 가장 연관되어 보이는 걸 찾았다. 제가 찾은 파일은 노드 Spawner 헤더 파일입니다. 이름부터 노드를 생성해 준다고 하는데 안 볼 수 없겠죠? 파일을 열어보시면 헤더 파일 선언이 끝나고 전방 선언된 클래스가 보입니다. 12class UEdGraph;class UEdGraphNode; 노드들은 그래프 형태이기 때문에 이름만 보더라도 해당 클래스를 사용했다는 걸 알 수 있습니다. 그러면 저 클래스에서 찾아보도록...
나만의 언리얼 에디터 만들기 3 - 멋있게 응답하기
구현 목표이전 편들에서 아쉬운 점이 하나 있었습니다. 바로 결과를 출력하는 방식이 아쉬웠는데요. 에디터 화면에 메시지를 띄우거나 로그 콘솔에 남기는 방식을 사용했습니다. 이는 멋있지 않아요. 그렇죠? 그래서 좀 더 알림 창 같은 알림창을 만들어보도록 하겠습니다. 구현 과정1) 정의들어가며오늘은 최종적으로 2가지 형태의 알림 창을 만들 예정입니다. 두 내용다 어렵지 않아서 쉽게 구현할 수 있을거에요. FMessageDialog FMessageDialog 공식문서 이 클래스는 대화상자를 실행하는 클래스입니다. 대화상자는 사진과 같이 기본 형의 대화상자가 있고 사용자의 입력을 받을 수 있는 입력형 대화상자가 있습니다. 파라미터를 통해 원하는 모습을 자유롭게 구현할 수 있기때문에 각자 원하는 형태로 출력해보도록 해요. Notification Notifications 공식문서FSlateNotificationManager 공식문서 언리얼에서 제공하는 여러 형태의...
나만의 언리얼 에디터 만들기 2 - ChatGPT에게 물어보기
구현 목표 나만의 언리얼 에디터 만들기 1 - Plugin 생성 에서 만든 기능들을 좀 더 확장하는 시간을 가져보겠습니다. 개인적으로 OPEN AI의 GPT를 사용하고 싶은 생각이 들었는데요. AI는 현시점에서 가장 뜨거운 주제인 만큼 그와 관련된 개발 역시 에픽 게임즈 내부에서도 `스마트NPC` 라는 이름으로 발표한 적도 있었습니다. 이러한 점을 볼 때 앞으로 관련 기능이 많이 추가되겠지만 그전에 먼저 `ChatGPT`를 이용해 간단한 대화 정도 주고 받는 AI 어시스턴트를 만들어 보자고요. 구현 과정1) 정의들어가며 일단 OPEN AI의 API를 사용할 것이기 때문에 OPEN AI 계정이 필요합니다. 만약 없다면 하나 만들어주세요. OPEN AI에서 제공하는 공식 문서를 살펴보면 2가지의 언어와 1가지의 툴을 사용한 방법을 제공하고 있습니다. curl python node.js 이 중 우리가 오늘 사용할 것은 curl 입니다. 간단하게 설명하자면 네트워크 통신을...
나만의 언리얼 에디터 만들기 1 - Plugin 생성
구현 목표언리얼 에디터를 사용하다보면 ‘이러한 기능이 있으면 좋을 것 같다’ 혹은 ‘반복적인 작업을 좀 더 쉽게 하고 싶다’는 생각이 들었습니다. 그래서 언리얼 에디터를 확장해보는 것을 목표로 삼았습니다. 엔진 버전은 5.3입니다. 구현 과정1) 정의들어가며 아시다시피 언리얼 엔진은 여러 개의 모듈로 구성된 집합체입니다. 이 중에서 우리는 에디터 모듈을 사용할 거에요. 모듈과 에디터 확장에 대한 부분을 조금 설명해야 하지만 아래 링크로 대체하겠습니다. 저보다 이득우 교수님이 설명을 훨씬 더 잘해놓으셔서…👍 📌 언리얼 에디터 확장에 대한 이득우 교수님의 IGC 강의 내용입니다.[IGC2018] 청강대 이득우 - 언리얼에디터확장을위해알아야할것들 사전 준비 플러그인을 하나 만들거에요. Blank로 선택하시고, 이름을 정해주세요. (저는 RealXtension으로...
SilvervineUE4Lua (3) SilvervineUE4Lua 분석
들어가며실버 바인의 3가지 모듈 중 다음으로 알아볼 것은 SilvervineUE4Lua입니다. CodeGen 자체는 결국 코드를 만들어 내는 플러그인이라서 마지막으로 알아보도록 하고 오늘부터 차근차근 SUE4Lua에 대해 살펴보도록 하겠습니다. 1. Build.cs역시나 먼저 Build.cs를 살펴봅니다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950using System.IO;using UnrealBuildTool;namespace UnrealBuildTool.Rules{ public class SilvervineUE4Lua : ModuleRules { public SilvervineUE4Lua(ReadOnlyTargetRules Target) : base(Target) { ...
SilvervineUE4Lua (2) SilvervineUE4LuaEditor 분석
들어가며실버바인의 3가지 모듈 중 처음으로 알아볼 것은 LuaEditor입니다. 가장 간단하기도 하고 맨 처음 시작이 VM(Virtual Machine)을 만들고 사용하기 때문에 해당 모듈을 먼저 알아보겠습니다. 1. Build.cs먼저 모듈의 Build.cs 파일을 살펴보겠습니다. 12345678910111213141516171819202122232425262728293031323334using System.IO;using UnrealBuildTool;namespace UnrealBuildTool.Rules{ public class SilvervineUE4LuaEditor : ModuleRules { public SilvervineUE4LuaEditor(ReadOnlyTargetRules Target) : base(Target) { PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; ...