일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- SQL
- 2단계로킹
- 1759번
- 데이터베이스 배움터
- C++
- 백준
- 실습
- FBX
- Unreal
- oracle
- UnrealMP
- 오손데이터읽기
- Linux
- 언리얼 플러그인
- hackerank
- 의미와 무의미의 경계에서
- objtofbx
- 1967번
- 언리얼 커스텀 플러그인
- 민겸수
- UActor
- 비재귀셰그먼트
- 5639
- OS
- 백준 1253번
- 트랜잭션 관리
- command not found
- Security
- 1253번
- 셰그먼트트리
- Today
- Total
목록게임 (21)
fatalite
언리얼 프로그램의 GuardedMain GuardedMain의 흐름(윈도우) 1. PreMainInit 2. EnginePreInit ⮕ FEngineLoop.PreInit() ⮕ PreInitPreStartupScreen(const TCHAR* CmdLine) 모듈, 플러그인 로드, CDO 등 3. EngineInit ⮕ FEngineLoop.Init() Create & Start UGameEngine / UGameInstance / UViewportClient / UPlayer... / AActor 자세한 내용 bool FEngineLoop::AppInit( ) 4. Tick ⮕ while(!IsEngineExitRequested()) { EngineTick(); } ⮕ FEngineLoop.Tick..

처음 만들었을 때 플러그인의 .CPP // Copyright Epic Games, Inc. All Rights Reserved. #include "CharacterDebuggingTool.h" #define LOCTEXT_NAMESPACE "FCharacterDebuggingToolModule" void FCharacterDebuggingToolModule::StartupModule() { // This code will execute after your module is loaded into memory; the exact timing is specified in the .uplugin file per-module } void FCharacterDebuggingToolModule::ShutdownMod..

1. 검색하기 Search - Unreal Engine Search Unreal Engine is the world’s most open and advanced real-time 3D creation platform for photoreal visuals and immersive experiences. www.unrealengine.com 여기서 원하는 함수나 변수를 검색해본다. 2. 원하는 함수의 레퍼런스 확인 3. 프로젝트에 적용 프로젝트의 build.cs에 해당 되는 Module(이 예시로는 XRBase)가 없으면 추가해주고 Include에 있는 것을 원하는 곳(함수를 사용할 곳)에 붙여 넣기하면 된다.
언리얼의 Lumen은 언리얼 엔진에서 글로벌 일루미네이션(Global Illumination)을 구현하는 방법의 이름이다. 처음에는, 스크린 트레이싱(Screen Tracing)을 진행한다. 이후의 과정은, 두 가지의 구현 방법 중 하나로 선택 할 수 있다. 소프트웨어 - 다양한 하드웨어 지원, 스태틱 메시 등 일부 메시만 지원함 하드웨어 - 광범위한 지오메트리, 하드웨어 지원 필요 소프트웨어의 경우, 메시 디스턴스 필드를 사용한다. 나중에 더 필요하면...

마켓 플레이스에서 다운 받거나, 직접 제작한 플러그 인을 프로젝트에 이식해야할 때가 있다. 이럴 땐, 1. 일단 새 폴더를 만들어서 Plugins 라고 바꾼다. 2. uproject를 메모장이나 Visual Studio / Code로 연다. 3. Plugins에 Custom Plugin을 추가한다. Plugins에 이름, Enabled, URL 말고도 넣을 수 있는 것으로 아는데, 더 필요하다면 언리얼 공식 문서를 살펴보자. 일단은 이정도로 오케이다 입니다. ❗❗ Error Rebuild Them ~ 가 나올 경우, 플러그인의 (다른 프로젝트에서 빌드된) 남아있는 바이너리나 Intermediate에 있는 것들이 문제가 되는 것이기 때문에 Rebuild Them 해보고 안되면 해당 Binaries나 Int..
다음은 언리얼 엔진이 시작해서 Begin Play까지 어떤 일이 일어나는지 설명하는 영상이다. 시각적으로 잘 설명되어있어, 이 부분을 번역하고 엔진의 기초적인 구조를 이해하기 위해 짧은 영어로 번역해보기로 했다. 일차적으로 문서로 정리할 예정 https://www.youtube.com/watch?v=IaU2Hue-Ap One of the most fundamental concepts in game programming - and one of the simplest - is the idea of the game loop. When your program runs, you do some initialization to set things up, and then you run a loop for as long..
목적 언리얼의 움직임을 담당하는 MoveComponent와 그 파생 클래스들의 관계와 역할을 알아보자. 소스코드 분석 - Update할 Component의 Object Ptr /** * The component we move and update. * If this is null at startup and bAutoRegisterUpdatedComponent is true, the owning Actor's root component will automatically be set as our UpdatedComponent at startup. * @see bAutoRegisterUpdatedComponent, SetUpdatedComponent(), UpdatedPrimitive */ UPROPERTY(B..
Reference Chapter 2: Skeletons (ucsd.edu)
struct의 변수도 UPROPERTY()로 설정해줘야 한다. 예를 들면 다음과 같다. USTRUCT(BlueprintType) struct FRoom { GENERATED_USTRUCT_BODY() UPROPERTY() FString RoomName; UPROPERTY() uint8 RoomSize; UPROPERTY() FString Password; };

Dedicated Server을 기준으로 설명한다. Unreal Network Overview Diagram Network Role 위와 같은 다이어 그램에서, 더욱 소유권에 대해서 상세히 서술한 것이다. 서버는 게임의 액터의 Authority이다. 액터의 소유주의 Role은 AutonomousProxy이다. 액터의 소유주가 아닌 플레이어는 Role로, SimulatedProxy를 지닌다. Reliable 간단하게 서술하면, UFUNCTION(Server, Reliable) void ServerEquipButtonPressed(); 다음과 같은 코드로 속성을 부여하면, 이 함수의 신뢰성을 확보한다. 곧, 실행을 보장한다고 볼 수 있을 것 같다. Replication void 어떤 함수::GetLifeti..