기본 콘텐츠로 건너뛰기

250318 변수 블루프린트 기본

에디터 맵설정 Edit - Project Settings - Maps & Modes
Editor Startup Map : 에디터를 실행할 시 처음 표시되는 레벨
Game Default Map : 게임을 실행할 시 처음 표시되는 레벨
화살표 : Content Drawer 에서 선택한 레벨을 설정
돋보기 : 해당 파일의 위치를 알려줌

머티리얼(Material)
물체의 색, 질감 등의 표현

출력 핀 :노드의 오른쪽에 존재하여 출력하는 핀
입력 핀 : 노드의 왼쪽에 존재하여 입력을 받는 핀
화살표 : Content Drawer 에서 선택한 머티리얼을 설정
돋보기 : 해당 파일의 위치를 알려줌

TextureCoordinate 와 텍스쳐의 UVs의 연결
물체에 맞는 적합한 텍스쳐를 사용해야 하지만, 텍스쳐의 크기가 조금 안맞는 경우가 생길 수 있다. 이러한 경우에 TextureCoordinate를 이용해서 한면에 표현되는 텍스쳐의 사이즈를 조절함으로써 텍스쳐보다 크고 작은 물체의 외관에 어울리게 머터리얼을 수정할 수 있다.

일반적으로 TextureCoordinate의 값을 늘리면 표현되는 텍스쳐의 수가 늘어나고 반대로 값을 줄이면 텍스쳐의 수가 줄어든다.


지오메트리 브러시
실질적으로는 사용 되지 않지만, 기본적인 스케치 작업을 위해서 활용.
마찬가지로 Scale을 이용 가능 하지만 Brush Settings를 이용하는 것을 권장함.




Brush Type에서 Subtractive를 설정하면 맞닿은 Geometry를 뺄 수 있음.


Geometry 의 모든 면 선택 : Shift + B
바닥에 붙이기 : End

컨텐츠 추가하기
컨텐츠 브라우저 상단에 Add를 클릭하여 가져옴


초기에 지오메트리 브러쉬를 이용해 간단하게 꾸밀 때는, 먼저 텍스쳐를 입혀놓고, Alt+이동이나 Ctrl + C, V를 활용하는 것이 좋음. Subtract를 사용할 때는 해당 부분의 머터리얼을 설정해야 한다는 것을 잊지 말아야함.

변수

= 대입연산자 : 오른쪽에 있는 것을 왼쪽에 넣으시오
; 문장끝
자료형은 메모리의 형식, 크기
변수는 메모리와 같다.
자료형 변수 이름 = 값;
ex) 메모리의 형식과 크기는 '###' 자료형이고, 이에 따른 변수의 이름은 'ㅁㅁㅁ'라고 할테니 이에 'ㅇㅇㅇ'이라는 값을 넣어달라.
변수이름을 가져오면 값이 돌아온다.

블루프린트

블루프린트 또한 개별의 폴더(Blueprints)안에 BP_이름 형식으로 저장해 주는 것을 권장한다.



블루 프린트 내의 변수 설정 등을 한 후에는 반드시 Compile과 저장을 해주어야 한다.

Add를 통해 블루프린트 내에 Component를 추가할 수 있다.


Boolean : True, False
Byte, Integer, Integer 64 : 정수
Float : 실수
Name, String, Text : 문자열
Vector : x, y, z 3개의 변수를 가진 배열 (벡터와 벡터끼리의 연산)
Rotator : 3개의 회전을 다루기 위한 변수 
Transform : 이동(position), 회전(rotation), 크기(scale)의 값을 가진 배열

초기 변수 설정시 컴파일을 해야 설정 가능하다.
변수의 경우 일반적으로 이름을 소문자로 적는다.

흐름선

흐름선의 방향대로 순차적으로 실행된다.



변수를 설정하는 Set 변수 : Alt+드래그 

변수를 가져오는 Get 변수 : Ctrl+드래그 

Casting : 본래 자료형 Integer를 Text형으로 바꾸고 있다.


이벤트 Begin Play : 게임 플레이와 함께 한 번 실행 되는 함수/이벤트

Tick : 매 프레임 마다 한 번 실행되는 함수/이벤트


액터를 월드/레벨에 배치하지 않으면 실행되지 않는다.


Format Text

Print Text, Print String만으로는 연산의 과정 등 표현해주기 힘든 부분을 표현할 수 있으므로 활용됨.


더하기 등의 다양한 연산은 + - * / % 로 검색하는 게 편함.

상수를 사용하여 문제를 해결하면 최적화 면에서 이득을 볼 수 있음.


배열

변수는 하나의 값 밖에 저장하지 못하다는 단점이 존재함.

이를 해결하기 위해 활용함.


자료형 배열이름 [사이즈];

배열 이름은 주소를 의미. 첫 배열의 주소, 0번째를 의미하기도 하기 때문에,

이 크기와 형식으로, 주소부터 사이즈 만큼 만든다.

해당 자료형의 사이즈 만큼 변수를 만든다.

색인 인덱스는 배열로부터 인덱스 번째를 의미함.


반복문

For Loop

First Index 부터 Last Index 까지 1씩 더하며 반복 실행한다.


정렬 : 다중 선택 후 P

코멘트 : 다중 선택 후 C


👾 참고 

지오메트리 브러시 액터

https://dev.epicgames.com/documentation/ko-kr/unreal-engine/geometry-brush-actors-in-unreal-engine?application_version=5.0

머티리얼

https://dev.epicgames.com/documentation/ko-kr/unreal-engine/essential-unreal-engine-material-concepts

https://dev.epicgames.com/documentation/ko-kr/unreal-engine/unreal-engine-material-editor-user-guide

블루프린트 구조

https://dev.epicgames.com/documentation/ko-kr/unreal-engine/blueprints-visual-scripting-in-unreal-engine

블루프린트 변수

https://dev.epicgames.com/documentation/ko-kr/unreal-engine/blueprint-variables-in-unreal-engine

이 블로그의 인기 게시물

250523 PCG 2

PCG Building Volume Sampler를 사용할 경우 Voxel Size를 맞추어주자. 2m길이를 Transform Points로 Offset을 이동시켜 Difference를 통해 메쉬를 생성한다. 사용시에 Pivot의 위치가 중앙이 아니면 제대로 표현되지 않을 것이다. PCG Landscape Landscape 생성후 PCG Volume 생성. Get Landscape Data - Surface Sampler 안보인다면 Generate Surface Sampler 일반 그리드 패턴으로 서피스 데이터에 포인트를 샘플링합니다. 이 노드에는 다음과 같은 옵션이 있습니다. 포인트 규모(Point Extents) : 서피스의 기본 그리드 셀 크기를 정의합니다. 여유(Looseness) : 변형 가능한 셀 크기를 정의합니다. 실제로 셀 크기는 포인트 규모 * (1 + 여유)입니다. 제곱미터당 포인트(Points Per Square Meter) : 유지되는 셀의 비율을 계산합니다. 이 프로퍼티는 그리드가 클 때 과잉을 제한합니다. Looseness : 기본 1. 0일경우 Extent의 길이 만큼, 1일경우 2배가 됨.  Attribute Filter를 생성하고, Material에 해당하는 Layer를 찾아서 이름을 넣어준다. Type을 Float로 하고 Float Value를 설정하면, 해당 머티리얼이 색칠된 정도 0~1에서 Operator에 의해 >(초과) 0.6초과 일 경우만 생성되게 할 수 있다. 값을 1로 하고 Equal을 이용해서 1인 경우만 생성되게 하는 것도 가능하다. plugin Water body lake를 넣으면, 이또한 Spline이라는 것을 알 수 있다. 따라서 Get Spline Data-Spline Sampler를 통해 사용할 수 있다. GetActorData와 Difference를 통해서 Lake내부를 제거해주기 PCG Mesh Mesh Sampler를 쓰기위해 Get Actor Property를 이용하면, 해당 액터가 ...

250604 저장불러오기

SaveGame 블루프린트 생성 Game Instance 생성, Init 오버라이드 AC_Inventory Save Load

250609 온라인

 Online Subsystem외에도 어느 서버를 사용할 것인지에 따라 플러그인을 추가해주어야 한다. 공통으로 OnlineSubsystem으로 시작한다. 헤더파일 CPP파일 cmd에서 Ipconfig를 통해 Ipv4를 넣어주면 된다. DefaultEngine.ini 수정 https://dev.epicgames.com/documentation/ko-kr/unreal-engine/online-subsystem-steam-interface-in-unreal-engine#%EC%99%84%EC%84%B1%EC%84%B8%ED%8C%85 [/Script/Engine.GameEngine] +NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver") [OnlineSubsystem] DefaultPlatformService=Steam [OnlineSubsystemSteam] bEnabled=true SteamDevAppId=480 bInitServerOnclient=true [/Script/OnlineSubsystemSteam.SteamNetDriver] NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection" 전용 서버 없이 클라이언트가 서버를 만들 수 있게 함. 호스팅 Binaries와 Saved파일을 한번 제거해주고, Generate해주기 헤더파일 헤더파일 CPP 파일 CreateSessionComplete, FindSessionsComplete, JoinSessionComplete 생성자 CreateGameSession 세션을 생성하고 존재하면 제거한다. OnCreateSessionComplete ServerTrav...