
대부분의 게임에는 Save/Load 시스템이 있다. 로그라이크 장르처럼 세이브가 없는 게임도 있지만 그런 게임들도 클리어 횟수라던지 해금요소들이 저장되어 게임을 실행할 때마다 저장파일을 불러오기도 한다. UE4에서 게임을 어떻게 저장하는지 알아보자. 데이터를 저장하고 불러오는 등 단순한 기능은 blueprint로 구현할 수 있도록 되어있다. 물론 복잡한 저장데이터를 저장하거나 저장하고 불러올 때 특별한 처리를 해야한다면 c++코드가 필요할 수도 있지만 단순한 기능만 먼저 알아보자. SaveGame 기본적으로 SaveGame이라는 클래스의 인스턴스를 저장하고 불러온다. 이 SaveGame은 UObject 클래스로 blueprint로 만들 수 있다 사용자는 어떤 데이터를 저장할지 변수 형태로 추가하면 된다...

타일 위에서 자연스럽게 움직이는 Movement를 구현해보도록 하자. 엔진에서 제공하는 NavigationMesh를 사용해서 만들 수도 있지만 더 세밀한 개성을 주기 위해서 먼저 간단한 움직임을 직접 구현해본다. 타일 이동이기 때문에 상하좌우 4방향으로 움직일 수 있고, 한 칸씩 이동한다. 이 떄 입력이 연속적으로 발생해도 모두 기억하고 순차적으로 이동할 수 있도록한다. BlockMovement를 바로 구현하기 위해 기본적인 준비물이 몇가지 필요한데, 캐릭터 Mesh와 속도에따라 애니메이션을 재생하는 Blueprint, 그리고 기본적인 맵을 구성한다. 1. Queue 먼저 Controller에서 입력을 받으면 MovementComponent가 입력을 수신하고 Queue에 저장한다. 매 프레임 Queue를..

Actor가 배치될 수 있는 최상위 오브젝트이다. World보다 하위 개념이지만 world에 최소한 1개의 Level이 존대하기 때문에 해당 world에 하나의 level만 있다면 같은 의미로 사용될 수도 있다. 새로운 world를 생성하는게 new world가 아니라 new level인것도 이 때문이다. world에 처음 생성된, 가장 상위 level을 Persistent Level이라고 한다. 항상 유지되기 때문에 전역으로 보여지는 환경을 배치하기에 적합하다. 예를들면 태양광원이나 대기효과 등이 Persistent Level에 추가하기에 적합한 actor들이라고 할 수 있다. world에는 여러개의 level이 존재할 수 있는데 각 level은 자기자신만의 Level Blueprint를 가지고 있기 ..

z-depth fog는 높이에 따라 안개를 생성하는 것으로 높은 건물, 깊은 지하를 표현할 때 사용할 수 있는 기법이다. 사진처럼 사선으로 바라보는 깊은 지하를 그리기 위해서는 생각보다 오브젝트의 크기가 커야되는데, 짧은 오브젝트의 바닥면이 보인다면 깊이감이 줄어들 것이다. z-depth fog를 적용시키면 오브젝트의 크기도 크지않게 만들고 깊이감도 줄 수 있다. 과정 Post Process Volume 사용한다. 에디터에서 월드에 Post Process Volume을 추가하고 unbound를 체크한다. volume의 크기에 상관없이 모든 world에 해당 process가 적용되도록 하는 옵션이다. content browser에서 material을 만든다. Material Domain을 Post Proc..
BlockGrid게임이 시작되면 블록을 생성하고 활성화된 볼록으로 score를 계산해서 화면에 표시하는 actor. headerScoreSizeBlockSpacingscore를 나타내거나 block의 간격을 설정할 수 있는 초기값.Size, BlockSpacing은 특히 에디터에서 편집할 수 있도록 UPROPERTY로 설정되었다. BeginPlay게임이 시작되고 actor가 활성화되면 가장 먼저 호출되는 초기화함수 AddScorescore수치를 변경시키도록 명령하는 함수 cpp블록 생성설정한 초기값을 바탕으로 블록을 생성하고 초기화한다. score 증가Score값을 1 증가시키고 text render component의 내용을 최신화한다. Block실제 마우스나 VR기기 같은 입력장치로 클릭할 수 있는 ..
개요언리얼 엔진으로 프로젝트를 생성하면 다양한 종류의 프로젝트를 쉽게 시작할 수 있도록 시작 프로젝트를 지원한다. 이번 포스팅에서는 퍼즐 시작프로젝트를 생성하고 내용을 보면서 공부해보자. 구성 요소프로젝트를 생성하면 화면에 기본적으로 놓여있는 actor들이 어떤 것들이 있는지 알아보자. Lighting과 RenderFX는 이 프로젝트와 직접적인 관계가 없는 actor들이므로 생략. Camera게임 화면을 촬영하는 카메라. 퍼즐 보드를 바라보고 있다.CubeMesh바닥을 표현하는 static mesh actorPuzzleBlockGrid기본 블럭들을 생성하고, 스코어를 나타내는 text render component가 포함된 actorTemplateLabelUI용 text render actorSkySph..
개요언리얼 엔진 공식 홈페이지에 있는 튜토리얼을 보면, 스스로 spawn하고 spawn 해제하는 행동을 하는 컴포넌트를 작성해 보라는 숙제가 있다.영어 원문을 봐도 정확히 어떤 결과를 원하는건지 몰라서 마음대로 해석했다. Build a Component that spawns up to three children, each of which despawn on their own after a set amount of time. 런타임 중에 인스턴스를 생성해서 게임에 보여지게 했다가, 타이머가 끝나면 다시 해제하는 프로그램을 만들어 보자. 스페이스 바를 누르면 3개의 큐브를 주위에 생성하고, 생성된 큐브는 일정 시간이 지나면 사라진다. Spawner Componenet생성 및 해제 역할을 할 컴포넌트를 만든다..
- Total
- Today
- Yesterday
- SOCKET
- OS
- 수학
- mongoDB
- Spring
- 국내여행
- Cocos2d-x
- 드라마
- SwiftUI
- C++
- swift
- game
- JSP
- scala
- machine learing
- ios
- database
- DesignPattern
- C
- winsock
- C/C++
- rxswift
- SHADER
- 데이터베이스
- Git
- 운영체제
- 자료구조
- Java
- ue4
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |