๐Ÿ“„

Structure - ST

Mark as Draft

์ •์˜

Unreal Engine ๋‚ด๋ถ€์—์„œ ์„œ๋กœ ๋‹ค๋ฅธ Type์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ๋…ผ๋ฆฌ์ ์ธ ๋‹จ์œ„๋กœ ๋ฌถ์–ด ๊ด€๋ฆฌํ•˜๊ณ  Memory ์ ‘๊ทผ ํšจ์œจ์„ ๊ทน๋Œ€ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ์šฉ์ž ์ •์˜ Data Type์ด๋‹ค.

์„ค๋ช…

C++ struct ๋ฌธ๋ฒ•์„ ๋ฐ”ํƒ•์œผ๋กœ Epic Games๊ฐ€ ์—”์ง„ ๊ณ ์œ ์˜ Reflection System๊ณผ ์—ฐ๋™๋˜๋„๋ก ์„ค๊ณ„ํ–ˆ๋‹ค.
Class์ธ UObject์™€ ๋‹ฌ๋ฆฌ Garbage Collection์˜ ์ถ”์ ์„ ๋ฐ›์ง€ ์•Š๊ณ  ์ฃผ๋กœ Stack Memory์— ํ• ๋‹น๋˜๋Š” Value Type์œผ๋กœ ์ž‘๋™ํ•˜์—ฌ ์ƒ์„ฑ๊ณผ ์†Œ๋ฉธ์— ๋”ฐ๋ฅด๋Š” Overhead๊ฐ€ ๊ทน๋„๋กœ ์ ๋‹ค.

์›๋ฆฌ

  1. Refleciton System ์—ฐ๋™
    1. USTRUCT ๋งคํฌ๋กœ๋ฅผ ์„ ์–ธํ•˜์—ฌ C++์˜ Data ํ˜•ํƒœ๋ฅผ ๊ฐ€์ƒ ๋จธ์‹ ์— ๋“ฑ๋กํ•˜๊ณ  Blueprint Editor์—์„œ ์‹œ๊ฐ์ ์œผ๋กœ ์ ‘๊ทผํ•˜๊ณ  ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ ๋‹ค.
  1. Value Type ์—ฐ์‚ฐ
    1. Reference ํ˜•ํƒœ๋กœ Memory ์ฃผ์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” Class์™€ ๋‹ฌ๋ฆฌ ๋ณ€์ˆ˜ ์„ ์–ธ ์‹œ Data ์ž์ฒด๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ ๋„˜๊ฒจ์ฃผ๋Š” ๋ฐฉ์‹์„ ์ฑ„ํƒํ•˜์—ฌ Memory ํŒŒํŽธํ™”๋ฅผ ๋ฐฉ์ง€ํ•œ๋‹ค.
  1. Serialization ์ตœ์ ํ™”
    1. Serialization ๊ธฐ๋Šฅ์„ ๊ธฐ๋ณธ ์ง€์›ํ•˜์—ฌ ๋‚ด๋ถ€ Data๋ฅผ Byte ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ํ•œ ๋’ค Hard Disk์— ์ €์žฅํ•˜๊ฑฐ๋‚˜ Server๋กœ ์†ก์ถœํ•˜๋Š” ๊ฐ€๋ฒผ์šด ํ†ต์‹  ๊ทœ๊ฒฉ์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค.
  1. Data Table ๊ทœ๊ฒฉํ™”
    1. Excel์ด๋‚˜ CSV ํŒŒ์ผ์˜ Column ํ•ญ๋ชฉ๋“ค์„ ์—”์ง„์œผ๋กœ ๊ฐ€์ ธ์˜ฌ ๋•Œ ๊ฐ Column์˜ Type์„ 1๋Œ€1๋กœ ๋งค์นญ ์‹œํ‚ค๋Š” ๊ธฐ์ค€ Row ํ‘œ๋งท ์—ญํ• ์„ ์™„๋ฒฝํžˆ ์ˆ˜ํ–‰ํ•œ๋‹ค.

๊ตฌ์กฐ

struct FAudioData { GENERATED_BODY() UPROPERTY() float Volume; };
  • FAudioData: Epic Games ํ‘œ์ค€ ST ์ ‘๋‘์‚ฌ๊ฐ€ ๋ถ™์€ ๊ตฌ์กฐ์ฒด ์ด๋ฆ„
  • GENERATED_BODY: ์—”์ง„์ด ์ž๋™ ์ƒ์„ฑ ์ฝ”๋“œ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ๋งคํฌ๋กœ
  • UPROPERTY: ์—”์ง„๊ณผ Blueprint์— ๋ณ€์ˆ˜๋ฅผ ๋…ธ์ถœํ•˜๋Š” ์ง€์‹œ์–ด

์˜ˆ์‹œ

Audio Parameter ์บก์Аํ™”

Metasound๋‚˜ Wwise์— ์ „๋‹ฌํ•  ์ˆ˜์‹ญ ๊ฐœ์˜ ๋ณ€์ˆ˜๋ฅผ ๋‚ฑ๊ฐœ๋กœ ์—ฐ๊ฒฐํ•˜๋ฉด ์ฝ”๋“œ๊ฐ€ ์—‰ํ‚จ๋‹ค. ์ด๋ฅผ FAudioParameter๋กœ ๋ฌถ์–ด Audio Folder์— ๋ณด๊ด€ํ•œ ๋’ค Event์— ๋‹จ์ผ ํ•€์œผ๋กœ ๋„˜๊ฒจ ๋ˆ„๋ฝ ์‚ฌ๊ณ ๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” Pipeline์„ ๊ตฌ์ถ•ํ•œ๋‹ค.

Data. Table Inventory ์—ฐ๋™

์ˆ˜๋ฐฑ ๊ฐœ์˜ Item์ด ๊ฐ€์ง„ ์ด๋ฆ„์ด๋‚˜ Icon ๊ฒฝ๋กœ ๋“ฑ์„ ํ•˜๋‚˜์˜ Structure๋กœ ์ •์˜ํ•œ๋‹ค. ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ Data Table Asset์„ ๋งŒ๋“ค์–ด Excel ํŒŒ์ผ๊ณผ ์—ฐ๋™ํ•˜๋ฉด ํ”„๋กœ๊ทธ๋ž˜๋จธ ๊ฐœ์ž… ์—†์ด Data๋งŒ ๊ต์ฒด๋˜์–ด ๋ฐธ๋Ÿฐ์Šค๋ฅผ ์‹ค์‹œ๊ฐ„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

Save Game Data ์••์ถ• ๊ธฐ๋ก

ํ”Œ๋ ˆ์ด์–ด์˜ ์œ„์น˜๋‚˜ Quest ์ง„ํ–‰๋„ ๋“ฑ ๋‹ค์–‘ํ•œ Type์˜ Data๋ฅผ Hard Disk์— ์ €์žฅํ•  ๋•Œ ์“ด๋‹ค. ๊ฐœ๋ณ„ ๋ณ€์ˆ˜ ๋Œ€์‹  ๊ฑฐ๋Œ€ํ•œ FSaveDataStruct์— ๋‹ด์•„ Save Game Object์— ๋„˜๊ธฐ๋ฉด ๋‹จ์ผ ํŒŒ์ผ๋กœ ๋น ๋ฅด๊ณ  ์•ˆ์ „ํ•˜๊ฒŒ ์••์ถ• ์ €์žฅ๋œ๋‹ค.

Mark as Published