๐Ÿ“˜TIL - ์˜คํ”ˆ์›”๋“œ RPG ๋ฏธ๋‹ˆ๋งต ๊ตฌ์กฐ ์‹ค์ œ ๊ตฌํ˜„ ๋ฐ ๋Œ€ํ˜• ์›”๋“œ ๋Œ€์‘ ์ •๋ฆฌ

HappyCircleยท2026๋…„ 5์›” 15์ผ

Unreal ๊ฐœ๋ฐœ

๋ชฉ๋ก ๋ณด๊ธฐ
127/163

๋ฐฐ๊ฒฝ

์–ด์ œ๋Š” ๊ธฐ์กด RTS ํ”„๋กœ์ ํŠธ์˜ SceneCapture2D + FogRT ๊ธฐ๋ฐ˜ ๊ตฌ์กฐ๋ฅผ ์˜คํ”ˆ์›”๋“œ RPG ๋ฐฉํ–ฅ์— ๋งž๊ฒŒ ์žฌ์„ค๊ณ„ํ•˜๋ฉด์„œ,
์ •์  MapTexture + ๋“ฑ๋กํ˜• ์•„์ด์ฝ˜ + ํƒํ—˜ Overlay ๊ธฐ๋ฐ˜ ๊ตฌ์กฐ๋กœ ๋ฐฉํ–ฅ์„ ์ •๋ฆฌํ–ˆ๋‹ค.

์˜ค๋Š˜์€ ์—ฌ๊ธฐ์„œ ํ•œ ๋‹จ๊ณ„ ๋” ๋‚˜์•„๊ฐ€ ์‹ค์ œ๋กœ ๋™์ž‘ํ•˜๋Š” ํ˜•ํƒœ์˜ ๋ฏธ๋‹ˆ๋งต ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ•˜๊ณ ,
HUD ์œ„์ ฏยทMaterial UVยท์นด๋ฉ”๋ผ ํšŒ์ „ยท1km x 1km ์›”๋“œ ๋Œ€์‘๊นŒ์ง€ ํฌํ•จํ•ด์„œ ๊ตฌ์กฐ๋ฅผ ์‹ค์ œ ํ”„๋กœ์ ํŠธ ๊ธฐ์ค€์œผ๋กœ ์ •๋ฆฌํ–ˆ๋‹ค.


๊ธฐ์กด ๋ฌธ์ œ์ 

์ฒ˜์Œ์—๋Š” RTS ๋•Œ ์‚ฌ์šฉํ–ˆ๋˜ ๋ฐฉ์‹์ฒ˜๋Ÿผ:

NativePaint
+
MapTexture Draw
+
Slate ํšŒ์ „

๊ตฌ์กฐ๋กœ ๊ตฌํ˜„ํ•˜๋ ค๊ณ  ํ–ˆ๋‹ค.

์ฆ‰:

๋งต ํ…์Šค์ณ ์ž์ฒด๋ฅผ DrawOffset์œผ๋กœ ์ด๋™
โ†’ MakeRotatedBox๋กœ ํšŒ์ „

์‹œํ‚ค๋Š” ๋ฐฉ์‹์ด์—ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ ํ…Œ์ŠคํŠธํ•ด๋ณด๋‹ˆ ๋ฌธ์ œ๊ฐ€ ๊ฝค ๋งŽ์•˜๋‹ค.

ํ”Œ๋ ˆ์ด์–ด ์ด๋™ ์‹œ Border ๋ฐ–์œผ๋กœ ํŠ€์–ด๋‚˜๊ฐ
ํšŒ์ „ Pivot ์–ด๊ธ‹๋‚จ
์นด๋ฉ”๋ผ ํšŒ์ „ ์‹œ ๋งต ์œ„์น˜ ๋™๊ธฐํ™” ๊นจ์ง
์›”๋“œ ํฌ๊ธฐ ๋ณ€๊ฒฝ ์‹œ Zoom ๋ณด์ • ํ•„์š”
์•„์ด์ฝ˜ ์œ„์น˜์™€ ํ…์Šค์ณ ์œ„์น˜ ๋ถˆ์ผ์น˜

ํŠนํžˆ PlayerUp ๋ชจ๋“œ์—์„œ:

์นด๋ฉ”๋ผ ํšŒ์ „ ๊ธฐ์ค€์œผ๋กœ ์•„์ด์ฝ˜์€ ์ •์ƒ ํšŒ์ „
ํ•˜์ง€๋งŒ ๋งต ํ…์Šค์ณ๋Š” ๋‹ค๋ฅธ ๊ธฐ์ค€์œผ๋กœ ํšŒ์ „

ํ•˜๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ–ˆ๋‹ค.


๊ตฌ์กฐ ์žฌ์ •๋ฆฌ

์ •๋ฆฌํ•˜๋‹ค ๋ณด๋‹ˆ ๋ฌธ์ œ์˜ ํ•ต์‹ฌ์€:

Slate์—์„œ ํฐ ํ…์Šค์ณ ์ž์ฒด๋ฅผ ํšŒ์ „์‹œํ‚ค๋Š” ๊ตฌ์กฐ

์— ์žˆ์—ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋ฐฉํ–ฅ์„ ๋‹ค์‹œ ๋ฐ”๊ฟจ๋‹ค.

์ตœ์ข…์ ์œผ๋กœ๋Š”:

๋งต ํ…์Šค์ณ๋ฅผ ์ง์ ‘ ์ด๋™/ํšŒ์ „ํ•˜์ง€ ์•Š๋Š”๋‹ค.
UI Material ๋‚ด๋ถ€ UV๋งŒ ์ด๋™/ํšŒ์ „ํ•œ๋‹ค.

๊ตฌ์กฐ๋กœ ๋ณ€๊ฒฝํ–ˆ๋‹ค.

์ฆ‰:

MapTexture
โ†’ Material UV ์ด๋™
โ†’ Material UV ํšŒ์ „
โ†’ Widget์€ ๊ณ ์ •

๊ตฌ์กฐ๋‹ค.

์ด ๋ฐฉ์‹์œผ๋กœ ๋ฐ”๊พธ๋‹ˆ๊นŒ:

Pivot ๋ฌธ์ œ
Border ์ดํƒˆ ๋ฌธ์ œ
ํšŒ์ „ ๋™๊ธฐํ™” ๋ฌธ์ œ

๊ฐ€ ๊ฑฐ์˜ ์ •๋ฆฌ๋๋‹ค.


์ตœ์ข… ๋ฏธ๋‹ˆ๋งต ๊ตฌ์กฐ

์ตœ์ข… ๊ตฌ์กฐ๋Š” ์•„๋ž˜์ฒ˜๋Ÿผ ์ •๋ฆฌํ–ˆ๋‹ค.

RTMapSubsystem
 โ”œโ”€ ์›”๋“œ ์ขŒํ‘œ โ†’ UV ๋ณ€ํ™˜
 โ”œโ”€ ๋“ฑ๋กํ˜• ์•„์ด์ฝ˜ ๊ด€๋ฆฌ
 โ””โ”€ ์›”๋“œ ํฌ๊ธฐ ๊ด€๋ฆฌ

RTMapIconComponent
 โ””โ”€ BeginPlay / EndPlay ๋“ฑ๋ก

RTMiniMapWidget
 โ”œโ”€ Material UV ๊ฐฑ์‹ 
 โ”œโ”€ ์•„์ด์ฝ˜ Draw
 โ”œโ”€ ํ”Œ๋ ˆ์ด์–ด ๋งˆ์ปค Draw
 โ””โ”€ ํšŒ์ „ ๋ชจ๋“œ ๊ด€๋ฆฌ

M_UI_Minimap
 โ”œโ”€ CenterUV
 โ”œโ”€ Zoom
 โ””โ”€ Rotation

์ค‘์š”ํ–ˆ๋˜ ๊ฑด:

๋งต ๋ฐฐ๊ฒฝ์€ Material
์•„์ด์ฝ˜์€ NativePaint

๋กœ ์—ญํ• ์„ ๋ถ„๋ฆฌํ•œ ์ ์ด์—ˆ๋‹ค.


Material UV ๊ธฐ๋ฐ˜ ๋ฏธ๋‹ˆ๋งต

์ด๋ฒˆ ๊ตฌํ˜„์—์„œ ๊ฐ€์žฅ ํฌ๊ฒŒ ๋ฐ”๋€ ๋ถ€๋ถ„์€
๋ฏธ๋‹ˆ๋งต ๋ฐฐ๊ฒฝ์„ Slate Draw๊ฐ€ ์•„๋‹ˆ๋ผ Material UV ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ”๊พผ ์ ์ด์—ˆ๋‹ค.

๋จธํ‹ฐ๋ฆฌ์–ผ ๋‚ด๋ถ€์—์„œ๋Š”:

TexCoord
โ†’ ์ค‘์‹ฌ ๊ธฐ์ค€ ์ด๋™
โ†’ ํšŒ์ „
โ†’ Zoom
โ†’ CenterUV ์ด๋™
โ†’ Texture Sample

ํ๋ฆ„์œผ๋กœ ์ฒ˜๋ฆฌํ–ˆ๋‹ค.

์ฆ‰ ์‹ค์ œ๋กœ ์›€์ง์ด๋Š” ๊ฑด:

Texture ์ž์ฒด๊ฐ€ ์•„๋‹ˆ๋ผ
UV ์ขŒํ‘œ

์˜€๋‹ค.

์ด ๊ตฌ์กฐ๋กœ ๋ฐ”๊พธ๋‹ˆ๊นŒ:

์œ„์ ฏ ์ž์ฒด๋Š” ๊ณ ์ •
ํ”Œ๋ ˆ์ด์–ด ์œ„์น˜ ๊ธฐ์ค€์œผ๋กœ UV ์ด๋™
์นด๋ฉ”๋ผ ํšŒ์ „ ๊ธฐ์ค€์œผ๋กœ UV ํšŒ์ „

๊ตฌ์กฐ๊ฐ€ ์•ˆ์ •์ ์œผ๋กœ ๋งž์•„ ๋–จ์–ด์กŒ๋‹ค.


์นด๋ฉ”๋ผ ๊ธฐ์ค€ ํšŒ์ „ ๊ตฌ์กฐ

์ฒ˜์Œ์—๋Š”:

GetActorRotation().Yaw

๊ธฐ์ค€์œผ๋กœ ํšŒ์ „์‹œํ‚ค๊ณ  ์žˆ์—ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์˜คํ”ˆ์›”๋“œ RPG์—์„œ๋Š”:

ํ”Œ๋ ˆ์ด์–ด ๋ชธ ๋ฐฉํ–ฅ๋ณด๋‹ค
์นด๋ฉ”๋ผ ๋ฐฉํ–ฅ์ด ๋” ์ค‘์š”

ํ•˜๋‹ค๊ณ  ํŒ๋‹จํ–ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์ตœ์ข…์ ์œผ๋กœ๋Š”:

PlayerCameraManager->GetCameraRotation().Yaw

๊ธฐ์ค€์œผ๋กœ ํšŒ์ „ ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝํ–ˆ๋‹ค.

์ตœ์ข… ๋™์ž‘์€:

NorthUp
โ†’ ๋งต ๊ณ ์ •
โ†’ ํ”Œ๋ ˆ์ด์–ด ๋งˆ์ปค ํšŒ์ „

PlayerUp
โ†’ ๋งต ํšŒ์ „
โ†’ ์•„์ด์ฝ˜ ์œ„์น˜ ํšŒ์ „
โ†’ ํ”Œ๋ ˆ์ด์–ด ๋งˆ์ปค๋Š” ์ƒ๋‹จ ๊ณ ์ •

๊ตฌ์กฐ๋กœ ์ •๋ฆฌํ–ˆ๋‹ค.


์•„์ด์ฝ˜ ๊ตฌ์กฐ ์ •๋ฆฌ

์ด๋ฒˆ์—๋Š” ์•„์ด์ฝ˜ ๊ตฌ์กฐ๋„ ์‹ค์ œ ํ”„๋กœ์ ํŠธ ๊ธฐ์ค€์œผ๋กœ ๋‹ค์‹œ ์ •๋ฆฌํ–ˆ๋‹ค.

๊ธฐ์กด์—๋Š” ๋‹จ์ˆœํžˆ:

Texture + Color

์ •๋„๋งŒ ์ƒ๊ฐํ–ˆ์—ˆ๋Š”๋ฐ,
์ตœ์ข…์ ์œผ๋กœ๋Š”:

ERTMapIconType

๊ธฐ๋ฐ˜์œผ๋กœ ์ •๋ฆฌํ–ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค๋ฉด:

Player
POI
Boss
Village
Quest
Campfire

๋“ฑ์ด๋‹ค.

๊ทธ๋ฆฌ๊ณ :

bShowOnMiniMap
bShowOnWorldMap

๋ฅผ ๋ถ„๋ฆฌํ•ด์„œ:

HUD ๋ฏธ๋‹ˆ๋งต ์ „์šฉ
์›”๋“œ๋งต ์ „์šฉ

ํ‘œ์‹œ๋„ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ค์—ˆ๋‹ค.


1km x 1km ์›”๋“œ ๋Œ€์‘

์ด๋ฒˆ ํ…Œ์ŠคํŠธ ์›”๋“œ ๊ธฐ์ค€์€:

1km x 1km
โ‰ˆ 100000uu x 100000uu

๊ทœ๋ชจ๋‹ค.

๊ทธ๋ž˜์„œ:

MapOrigin
MapSize
ViewWorldRadius

๋ฅผ ๋ชจ๋‘ 1km ์›”๋“œ ๊ธฐ์ค€์œผ๋กœ ๋‹ค์‹œ ์ •๋ฆฌํ–ˆ๋‹ค.

์›”๋“œ๊ฐ€ ์›์  ์ค‘์‹ฌ์ด๋ผ๋ฉด:

MapOrigin = FVector2D(-50000.0f, -50000.0f);
MapSize = FVector2D(100000.0f, 100000.0f);

์›”๋“œ๊ฐ€ (0, 0)๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค๋ฉด:

MapOrigin = FVector2D(0.0f, 0.0f);
MapSize = FVector2D(100000.0f, 100000.0f);

๋ฏธ๋‹ˆ๋งต์—์„œ ํ”Œ๋ ˆ์ด์–ด ์ฃผ๋ณ€์„ ๋ณด์—ฌ์ฃผ๋Š” ๋ฐ˜๊ฒฝ์€:

ViewWorldRadius = 10000.0f;

์ •๋„๋กœ ์žก์•˜๋‹ค.

์ฆ‰:

๋ฐ˜๊ฒฝ 100m
์ง€๋ฆ„ 200m

์ •๋„์˜ ์˜์—ญ์„ ๋ฏธ๋‹ˆ๋งต ์•ˆ์— ํ™•๋Œ€ํ•ด์„œ ๋ณด์—ฌ์ฃผ๋Š” ๊ตฌ์กฐ๋‹ค.

Zoom ๊ณ„์‚ฐ ๊ณต์‹์€:

Zoom = MapSize.X / (ViewWorldRadius * 2)

์ด๋‹ค.

1km ์›”๋“œ ๊ธฐ์ค€์œผ๋กœ ๊ณ„์‚ฐํ•˜๋ฉด:

100000 / (10000 * 2) = 5

์ฆ‰ Zoom = 5๊ฐ€ ๋œ๋‹ค.

์ด ๊ตฌ์กฐ๋กœ ์ •๋ฆฌํ•˜๋‹ˆ๊นŒ:

์›”๋“œ ํฌ๊ธฐ๊ฐ€ ๋ฐ”๋€Œ์–ด๋„
ViewWorldRadius๋งŒ ์กฐ์ •ํ•˜๋ฉด
๋ฏธ๋‹ˆ๋งต ํ™•๋Œ€ ๋ฒ”์œ„๋ฅผ ์‰ฝ๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ

์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.


SceneCapture ๊ตฌ์กฐ ์ •๋ฆฌ

๋ฏธ๋‹ˆ๋งต ๊ตฌ์กฐ๋ฅผ ์ •๋ฆฌํ•˜๋ฉด์„œ
SceneCapture ๋ฐฉํ–ฅ๋„ ๊ฐ™์ด ์ •๋ฆฌํ–ˆ๋‹ค.

์ตœ์ข…์ ์œผ๋กœ๋Š”:

์‹ค์‹œ๊ฐ„ SceneCapture ์‚ฌ์šฉ X

๋ฐฉํ–ฅ์œผ๋กœ ๊ฐ”๋‹ค.

๋Œ€์‹ :

Orthographic SceneCapture
โ†’ RenderTarget ์ƒ์„ฑ
โ†’ Static Texture Bake
โ†’ MapTexture ์‚ฌ์šฉ

๊ตฌ์กฐ๋‹ค.

์ฆ‰ SceneCapture๋Š”:

์‹ค์‹œ๊ฐ„ ๋ Œ๋”๋ง ์‹œ์Šคํ…œ์ด ์•„๋‹ˆ๋ผ
๋งต ๋ฒ ์ดํฌ ์ƒ์„ฑ ๋„๊ตฌ

๊ฐ€ ๋˜์—ˆ๋‹ค.

1km x 1km ์›”๋“œ ๊ธฐ์ค€ SceneCapture ์„ค์ •์€:

Projection Type = Orthographic
Ortho Width = 100000
Rotation = Pitch -90

๋กœ ๋งž์ถ”๋ฉด ๋œ๋‹ค.

์›”๋“œ๊ฐ€ ์›์  ์ค‘์‹ฌ์ด๋ฉด:

Location = (0, 0, ์ถฉ๋ถ„ํžˆ ๋†’์€ Z)

์›”๋“œ๊ฐ€ (0, 0)๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋ฉด:

Location = (50000, 50000, ์ถฉ๋ถ„ํžˆ ๋†’์€ Z)

๋กœ ๋ฐฐ์น˜ํ•˜๋ฉด ๋œ๋‹ค.


์›”๋“œ๋งต ๋ฐฉํ–ฅ

์˜ค๋Š˜ ์ •๋ฆฌํ•˜๋ฉด์„œ ์›”๋“œ๋งต ๊ตฌ์กฐ ๋ฐฉํ–ฅ๋„ ๋” ๋ช…ํ™•ํ•ด์กŒ๋‹ค.

์ค‘์š”ํ–ˆ๋˜ ๊ฑด:

๋ฏธ๋‹ˆ๋งต๊ณผ ์›”๋“œ๋งต์€ ์—ญํ• ์ด ๋‹ค๋ฅด๋‹ค.

๋Š” ์ ์ด์—ˆ๋‹ค.

๋ฏธ๋‹ˆ๋งต์€:

ํ˜„์žฌ ์œ„์น˜ ํƒ์ƒ‰
๊ทผ์ฒ˜ ์ •๋ณด ํ™•์ธ

์ด๊ณ ,

์›”๋“œ๋งต์€:

์ „์ฒด ์ง€์—ญ ๊ตฌ์กฐ
์ง„ํ–‰ ์ƒํƒœ
POI ๊ด€๋ฆฌ
์ง€์—ญ ํƒํ—˜

์— ๊ฐ€๊นŒ์› ๋‹ค.

๊ทธ๋ž˜์„œ:

RTMapSubsystem
RTMapIconComponent

๋Š” ๊ณต์œ ํ•˜๋˜,

WBP_Minimap
WBP_WorldMap

์€ ๋ถ„๋ฆฌํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ์ •๋ฆฌํ–ˆ๋‹ค.


๊ตฌ์กฐ ๋‹จ์ˆœํ™”

์ด๋ฒˆ ๊ตฌํ˜„์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•˜๊ฒŒ ๋А๋‚€ ๊ฑด
โ€œ๊ธฐ๋Šฅ ์ถ”๊ฐ€๋ณด๋‹ค ๊ตฌ์กฐ ๋‹จ์ˆœํ™”๊ฐ€ ๋จผ์ €โ€๋ผ๋Š” ์ ์ด์—ˆ๋‹ค.

์ฒ˜์Œ์—๋Š”:

GridManager
FogSubsystem
MarkerManager
MapRenderer

๊ฐ™์ด ์—ฌ๋Ÿฌ ํด๋ž˜์Šค๋กœ ๋‚˜๋ˆ„๋ ค๊ณ  ํ–ˆ์ง€๋งŒ,
์ •๋ฆฌํ•˜๋‹ค ๋ณด๋‹ˆ MVP ๊ธฐ์ค€์—์„œ๋Š” ๊ณผํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์•„ ๋ณด์˜€๋‹ค.

๊ทธ๋ž˜์„œ ์ตœ์ข…์ ์œผ๋กœ๋Š”:

RTMapSubsystem
RTMapIconComponent
RTMiniMapWidget
M_UI_Minimap

์ •๋„๋กœ ์ตœ์†Œํ™”ํ–ˆ๋‹ค.

ํŠนํžˆ:

๋ˆ„๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š”์ง€
๋ˆ„๊ฐ€ ๊ทธ๋ฆฌ๋Š”์ง€
๋ˆ„๊ฐ€ ๋“ฑ๋กํ•˜๋Š”์ง€

๋ฅผ ๋ฐ”๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฑธ ๊ฐ€์žฅ ์ค‘์š”ํ•˜๊ฒŒ ์ƒ๊ฐํ–ˆ๋‹ค.


๋А๋‚€ ์ 

์ด๋ฒˆ ๊ตฌํ˜„์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๊ฐ€์žฅ ํฌ๊ฒŒ ๋А๋‚€ ๊ฑด,
์˜คํ”ˆ์›”๋“œ RPG ๋ฏธ๋‹ˆ๋งต์€ โ€œ๋ Œ๋”๋ง ์‹œ์Šคํ…œโ€๋ณด๋‹ค โ€œUI ์ •๋ณด ์‹œ์Šคํ…œโ€์— ๋” ๊ฐ€๊น๋‹ค๋Š” ์ ์ด์—ˆ๋‹ค.

์ฒ˜์Œ์—๋Š” RTS์ฒ˜๋Ÿผ:

์‹ค์‹œ๊ฐ„ ์›”๋“œ ๋ Œ๋”๋ง

์ค‘์‹ฌ์œผ๋กœ ์ƒ๊ฐํ–ˆ์ง€๋งŒ,
์ •๋ฆฌํ•˜๋‹ค ๋ณด๋‹ˆ ์‹ค์ œ๋กœ ์ค‘์š”ํ•œ ๊ฑด:

ํ˜„์žฌ ์œ„์น˜
ํƒํ—˜ ์ƒํƒœ
POI ์ •๋ณด
๋ฐฉํ–ฅ ์ธ์ง€

์˜€๋‹ค.

๊ทธ๋ž˜์„œ:

์ •์  MapTexture
+
Material UV
+
๋“ฑ๋กํ˜• ์•„์ด์ฝ˜

๊ธฐ๋ฐ˜ ๊ตฌ์กฐ๊ฐ€ ํ›จ์”ฌ ๋‹จ์ˆœํ•˜๊ณ  ์•ˆ์ •์ ์œผ๋กœ ๋А๊ปด์กŒ๋‹ค.

ํŠนํžˆ ์ด๋ฒˆ์—๋Š”:

ํ™•์žฅ์„ฑ๋ณด๋‹ค ๋จผ์ €
๊ตฌ์กฐ๋ฅผ ๋‹จ์ˆœํ•˜๊ฒŒ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ

์ด MVP ๋‹จ๊ณ„์—์„œ ํ›จ์”ฌ ์ค‘์š”ํ•˜๋‹ค๊ณ  ๋А๊ผˆ๋‹ค.


์˜ค๋Š˜์˜ ์ •๋ฆฌ

  • Slate์—์„œ ํ…์Šค์ณ ์ž์ฒด๋ฅผ ํšŒ์ „์‹œํ‚ค๋Š” ๊ตฌ์กฐ ๋Œ€์‹  Material UV ๊ธฐ๋ฐ˜ ํšŒ์ „ ๊ตฌ์กฐ๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด์„œ ํšŒ์ „/Pivot/Border ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋‹ค.
  • ๋ฏธ๋‹ˆ๋งต ๋ฐฐ๊ฒฝ์€ Material, ์•„์ด์ฝ˜๊ณผ ํ”Œ๋ ˆ์ด์–ด ๋งˆ์ปค๋Š” NativePaint๋กœ ๋ถ„๋ฆฌํ•˜๋ฉด์„œ ์—ญํ• ์„ ๋‹จ์ˆœํ™”ํ–ˆ๋‹ค.
  • ์˜คํ”ˆ์›”๋“œ RPG์—์„œ๋Š” ํ”Œ๋ ˆ์ด์–ด ๋ชธ ๋ฐฉํ–ฅ๋ณด๋‹ค ์นด๋ฉ”๋ผ ๋ฐฉํ–ฅ ๊ธฐ์ค€ ํšŒ์ „์ด ๋” ์ž์—ฐ์Šค๋Ÿฝ๋‹ค๊ณ  ํŒ๋‹จํ•ด PlayerCameraManager ๊ธฐ๋ฐ˜ ๊ตฌ์กฐ๋กœ ๋ณ€๊ฒฝํ–ˆ๋‹ค.
  • 1km x 1km ์›”๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ MapSize / ViewWorldRadius ๊ธฐ๋ฐ˜ Zoom ๊ตฌ์กฐ๋ฅผ ์ •๋ฆฌํ•˜๋ฉด์„œ ํ”Œ๋ ˆ์ด์–ด ์ฃผ๋ณ€ ์˜์—ญ๋งŒ ํ™•๋Œ€ ํ‘œ์‹œ๋˜๋„๋ก ๊ตฌํ˜„ํ–ˆ๋‹ค.
  • ์‹ค์‹œ๊ฐ„ SceneCapture ๊ตฌ์กฐ ๋Œ€์‹  Orthographic Capture โ†’ Static Texture Bake ๊ธฐ๋ฐ˜ ๊ตฌ์กฐ๋กœ ๋ฐฉํ–ฅ์„ ์ •๋ฆฌํ•˜๋ฉด์„œ ์„ฑ๋Šฅ๊ณผ ์œ ์ง€๋ณด์ˆ˜ ์ธก๋ฉด์—์„œ ํ›จ์”ฌ ๋‹จ์ˆœํ•œ ๊ตฌ์กฐ๊ฐ€ ๋˜์—ˆ๋‹ค.
profile
๊ฐœ๋ฐœํ•ฉ์‹œ๋‹ค!

0๊ฐœ์˜ ๋Œ“๊ธ€