설정
맵 방식 설정 심리스(Seamless), 존(Zone), 룸(Room)
심리스 (Seamless) 방식 큰 맵을 하나 만들어 맵 이동 시에 새 지역을 로딩없이 자유롭게 이동할 수 있도록 만드는 방식. 유저 캐릭터가 특정 방향으로 움직일 때마다 그만큼 새지역을 로딩하는 구역로딩을 한다. 이 때문에 심리스 방식은 로딩이 없는 것처럼 유저가 느끼게 만든다. 장점) 미리 로딩이 되어있기 때문에 자유롭게 이동이 가능 단점) 미리 로딩을 하는 방식이기에 초반 로딩이 다소 긴 편 존(Zone) 방식 맵을 작은 단위로 나눈 후에 맵에 설정된 입구를 통해 서로 연결한 후 그 위치를 통해 각 맵을 이동하는 방식 입구, 즉 포탈을 통해 맵을 이동하기 때문에 포탈맵 방식이라고도 한다. 장점) 그때마다 필요한 부분만 로딩을 하여 퍼포먼스 및 렉 최적화 단점) 맵을 이동할 때마다 로딩을 해야하는 번..
[Unity] 유니티 2D RPG 강좌 #1 - 스프라이트 설정하기
1-1. 스프라이트란 무엇일까? 3D 게임에 사용되는 플레이어, 적 등의 모델들은 모두 3D 모델로 되어있다. 2D 게임에서 사용되는 플레이어와 적 그림들은 "스프라이트"라고 한다. 게임에서 제일 기초가 되는게 바로 스프라이트다. 지금 만들 2D RPG 게임에 사용될 스프라이트는 "도트" 형식의 스프라이트다. 우리가 흔히 아는 고해상도 고퀄리티의 그림들이 아닌 "점"들을 사용해서 그린 픽셀 아트를 도트라고 한다. 유니티를 실행하고 새 프로젝트를 만들어 줍시다. 상단에 있는 "New" 버튼을 클릭. 먼저 프로젝트 이름과 프로젝트를 저장할 위치를 정한 다음에 우리는 2D 게임을 만들것이기 때문에 Template를 2D로 설정해주자. 설정을 완료했다면 "Create Project" 버튼을 클릭해서 프로젝트를 ..
[Unity] Range 어트리뷰트를 단위로 설정할 수 있는 방법
아래는 어트리뷰트를 그려줄 클래스 using UnityEngine; using UnityEditor; using System; [CustomPropertyDrawer(typeof(RangeExAttribute))] internal sealed class RangeExDrawer : PropertyDrawer { private int value; /** * Return exact precision of reel decimal * ex : * 0.01 = 2 digits * 0.02001 = 5 digits * 0.02000 = 2 digits */ private int Precision(float value) { int _precision; if (value == .0f) return 0; _precisi..
[Unity] UI 카메라 설정하기 (screen space - camera)
메인 카메라(main camera)의 culling mask에서 UI를 체크해제하고 depth 속성의 값을 0으로 설정하였다. 씬에 새로운 카메라를 추가한다. 카메라의 clear flags에서 depth only를 선택하고 culling mask에서 UI 레이어를 제외하고 체크해제한다. 캔버스와 하위 ui 요소의 레이어를 설정한다(UI) render mode에서 screen space- camera를 선택하고 render camera에 씬에 추가한 카메라를 참조시킨다. 메인 카메라에서 씬의 게임 오브젝트와 스카이박스를 표시하고 두번째 카메라의 UI는 항상 위에 표시된다. 출처 : 유니티에서 UI 카메라 설정하기(screen sapce - camera) (tistory.com)
[Unreal] 플레이 누른 직후 또는 인벤토리 열 때 인게임 모드 설정
플레이를 누르면 마우스 커서가 보이고 입력을 받질 않는다 따라서 입력을 받으려면 한번 클릭해줘야 한다, 언리얼 엔진의 기본 세팅은 GameAndUIEx이다 이건 UWidgetBlueprintLibrary 클래스 내에 static 함수를 사용하여 설정할 수가 있다. 각각 함수들의 용도는 다음과 같다. GameAndUIEx : UI만 사용자의 입력을 받게끔 한다 만약에 못받는다면 플레이어 컨트롤러가 받게 된다. GameOnly : 게임 컨트롤러만 입력받게끔 한다 (플레이 직후 마우스가 인게임으로 들어가며 커서 또한 사라진다). UIOnlyEx : UI만 입력받게끔 한다 (인벤토리 열고 닫을 때 플레이어 회전이라던지 막는 용도). 시작 직후 인게임 모드를 입력만 받게끔 사용한다. if (auto p_World..
[Unreal] Static Mesh (스태틱 메쉬) 그림자 끄는/키는 방법 C++
EditorStaticMeshLibrary 내 EnableSectionCastShadow 스태틱 전역 함수가 존재하는데 언리얼 5부턴 레거시화가 됐다. 아래 소스코드 내 유심히 살펴보니 힌트를 얻을 수가 있었다, StaticMeshEditorSubsystem를 대신 사용하라고 쓰여져있다. StaticMeshEditorSubsystem에선 클래스 멤버 함수라 참조를 해야한다. 여기서 좀 헷갈릴 수가 있는데 아래와 같이 세 개의 모듈을 추가 해줘야한다. "UnrealEd", "EditorSubsystem", "StaticMeshEditor" UnrealEd 모듈은 (UEditorEngine 클래스 포인터) GEditor에 대한 매핑 EditorSubsystem 모듈은 UEditorSubsystem 클래스 포..
DirectX 11 프레임워크 환경 설정하는 방법
SDK 다운로드 사이트 https://www.microsoft.com/ko-KR/download/details.aspx?id=6812 Download DirectX SDK from Official Microsoft Download Center 중요! 아래에서 언어를 선택하면 전체 페이지 내용이 해당 언어로 신속하게 변경됩니다. 네덜란드어독일어러시아어스웨덴어스페인어영어이탈리아어일본어중국어(간체)중국어(번체)체코어포 www.microsoft.com https://github.com/jjuiddong/Introduction-to-3D-Game-Programming-With-DirectX11 GitHub - jjuiddong/Introduction-to-3D-Game-Programming-With-DirectX..
[Unreal] 차량 설정 방법 (Chaos Vehicle)
WheeledVehiclePawn으로부터 생성된 엑터다. 즉 UWheeledVehiclePawn 클래스로부터 상속받으면 된다. UChaosWheeledVehicleMovementComponent를 사용한다. 바퀴의 정보(크기, 질량, 무게 등)는 UChaosVehicleWheel Wheel Setups 내 Wheel Class 안에 들어가며 Bone Name은 바퀴 뼈대 명칭. 차량의 가속도는 UCurveFloat, External Curve에 보란색 칸에 위치된다. GetVehicleMovement 함수는 반환형이 UWheeledVehicleMovementComponent * 이다, 따라서 UChaosWheeledVehicleMovementComponent* 타입으로 캐스팅 해줘야한다. C++로 사용할..