[Unreal] ์œ ๋‹ˆํ‹ฐ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์–ธ๋ฆฌ์–ผ ์—”์ง„

2023. 6. 11. 20:17ยท๐Ÿ“ Game/โœ Unreal

์œ ๋‹ˆํ‹ฐ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์–ธ๋ฆฌ์–ผ ์—”์ง„

์œ ๋‹ˆํ‹ฐ vs ์–ธ๋ฆฌ์–ผ

 

๊ฒŒ์ž„ ๊ฐœ๋ฐœ์€ ์ž์ฒด ์—”์ง„์„ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•˜์ง€๋งŒ ๋Œ€๋ถ€๋ถ„ ์œ ๋‹ˆํ‹ฐ ํ˜น์€ ์–ธ๋ฆฌ์–ผ ์—”์ง„์„ ์„ ํƒํ•˜๊ณ  ์žˆ๋‹ค. ๋‘ ์—”์ง„์ด ํ™œ์šฉ๋˜๋Š” ์ด์œ ๋Š” ์กฐ๊ธˆ์”ฉ ๋‹ค๋ฅด๋‹ค.

 

์œ ๋‹ˆํ‹ฐ๋Š” ์‰ฝ๊ฒŒ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฐ•์ ์ด ์žˆ๋‹ค. ์—”์ง„ ์‚ฌ์šฉ๋ฒ•์ด ๊ฐ„ํŽธํ•˜๊ณ  ์ง๊ด€์ ์ด๋ผ ๊ฐ„๋‹จํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ง€์‹์œผ๋กœ ์›ฌ๋งŒํ•œ ๊ฒŒ์ž„์„ ๊ฐœ๋ฐœํ•˜๋Š”๋ฐ ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค. ์ด๋Ÿฌํ•œ ์žฅ์ ์œผ๋กœ ์œ ๋‹ˆํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฐœ๋ฐœ์ž์˜ ๋น„์œจ์ด ๊พธ์ค€ํžˆ ์ฆ๊ฐ€ํ•˜๊ณ  ์žˆ๋‹ค. ๋˜ํ•œ ์™ธ๋ถ€์—์„œ ์ œ์ž‘ํ•œ ๋ฆฌ์†Œ์Šค ์ ์šฉ์ด ๋นจ๋ผ ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

 

์–ธ๋ฆฌ์–ผ์˜ ๊ฐ•์ ์€ ๊ทธ๋ž˜ํ”ฝ ํ€„๋ฆฌํ‹ฐ์ด๋‹ค. ๊ทธ๋™์•ˆ ๊ทธ๋ž˜ํ”ฝ ์„ฑ๋Šฅ์„ ๋ฐ”ํƒ•์œผ๋กœ ์˜จ๋ผ์ธ, ์ฝ˜์†” ๊ฒŒ์ž„์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉ๋๋‹ค. ํ•˜์ง€๋งŒ ํœด๋Œ€๊ธฐ๊ธฐ์˜ ๋ฐœ์ „์œผ๋กœ ํ€„๋ฆฌํ‹ฐ๊ฐ€ ํ–ฅ์ƒ๋˜์–ด ๋ชจ๋ฐ”์ผ ๊ฒŒ์ž„ ์‹œ์žฅ์—์„œ๋„ ๋‘๊ฐ์„ ๋“œ๋Ÿฌ๋‚ด๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ๋˜ํ•œ ๋ฆฌ์–ผ ํƒ€์ž„ ๋ Œ๋”๋ง ๊ธฐ๋Šฅ์œผ๋กœ ๋›ฐ์–ด๋‚œ ํšจ์œจ์„ ์ž๋ž‘ํ•œ๋‹ค. ๋ Œ๋”๋ง์€ ์†Œ๋ชจ ์‹œ๊ฐ„๊ณผ ๋…ธ๋ ฅ์ด ํ•„์š”ํ•œ๋ฐ ์–ธ๋ฆฌ์–ผ ์—”์ง„์€ ์ด๋ฅผ ๋ฆฌ์–ผํƒ€์ž„ ๋ Œ๋”๋ง ๊ธฐ๋Šฅ์œผ๋กœ ํ’€์–ด๋ƒˆ๋‹ค.

 

http://www.gameinsight.co.kr/news/articleView.html?idxno=15050 

 

์œ ๋‹ˆํ‹ฐ vs ์–ธ๋ฆฌ์–ผ, ๋์—†๋Š” ์—”์ง„ ๊ฒฝ์Ÿ

์—”์ง„์€ ๊ฒŒ์ž„์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•œ ‘๊ธฐ์ดˆ’์ด์ž ‘ํ•ต์‹ฌ ์š”์†Œ’๋‹ค. ๊ฒŒ์ž„์€ ์—”์ง„์œผ๋กœ ๋ผˆ๋Œ€๋ฅผ ์„ธ์šด ํ›„, ๋ฆฌ์†Œ์Šค๋ฅผ ๋ถ™์—ฌ ์™„์„ฑํ•˜๋Š” ๊ตฌ์กฐ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.๊ตญ๋‚ด ๊ฒŒ์ž„์‹œ์žฅ์€ ํŽ„์–ด๋น„์Šค์˜ ‘๊ฒ€์€์‚ฌ๋ง‰’์ด๋‚˜ ์—”

www.gameinsight.co.kr

 

์–ธ๋ฆฌ์–ผ์˜ ์ ์œ ์œจ์€ ์ ์  ์ฆ๊ฐ€ํ•˜๊ณ ๋Š” ์žˆ์ง€๋งŒ, ์ ‘๊ทผ์„ฑ์ด ์ข‹๋‹ค๋Š” ์œ ๋‹ˆํ‹ฐ์˜ ์žฅ์  ๋•Œ๋ฌธ์ธ์ง€ ์•„์ง๊นŒ์ง€ ์œ ๋‹ˆํ‹ฐ์˜ ์ ์œ ์œจ์ด ์••๋„์ ์œผ๋กœ ๋†’๋‹ค. ๊ทธ๋ž˜์„œ ์–ธ๋ฆฌ์–ผ์—์„œ๋Š” ๊ณต์‹์ ์œผ๋กœ ์œ ๋‹ˆํ‹ฐ์—์„œ ์–ธ๋ฆฌ์–ผ๋กœ ๋น ๋ฅด๊ฒŒ ์ •์ฐฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ž…๋ฌธ์„œ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋‹ค.

 

https://docs.unrealengine.com/4.27/ko/Basics/UnrealEngineForUnityDevs/

 

์œ ๋‹ˆํ‹ฐ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์–ธ๋ฆฌ์–ผ ์—”์ง„ 4

์œ ๋‹ˆํ‹ฐ ์‚ฌ์šฉ์ž๋ถ„๋“ค์˜ ๋น ๋ฅธ ์ ์‘์„ ๋„์šธ ์ˆ˜ ์žˆ๋„๋ก ์œ ๋‹ˆํ‹ฐ ์ง€์‹์„ UE4 ๋กœ ์˜ฎ๊ฒจ๋ด…๋‹ˆ๋‹ค.

docs.unrealengine.com

 

1. ์—๋””ํ„ฐ

์—๋””ํ„ฐ ํ™”๋ฉด ๋น„๊ต

 

์œ ๋‹ˆํ‹ฐ ์—๋””ํ„ฐ์™€ ์–ธ๋ฆฌ์–ผ ์—๋””ํ„ฐ์˜ ํ™”๋ฉด์œผ๋กœ ๊ฐ™์€ ์ƒ‰์€ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.

 

2. ์• ์…‹ ํŽธ์ง‘

 

์œ ๋‹ˆํ‹ฐ์—์„œ๋Š” Inspector ํƒญ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ์— ์„ ํƒ๋œ ์• ์…‹์„ ํŽธ์ง‘ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์–ธ๋ฆฌ์–ผ์—์„œ๋Š” ๋””ํ…Œ์ผ ํŒจ๋„์— ์„ ํƒ๋œ ์˜ค๋ธŒ์ ํŠธ์˜ ํ”„๋กœํผํ‹ฐ๊ฐ€ ๋…ธ์ถœ๋˜๊ธฐ๋Š” ํ•˜์ง€๋งŒ, ๊ทœ๋ชจ๊ฐ€ ํฐ ํŽธ์ง‘ ์ž‘์—…์€ ์ „์šฉ ์ฐฝ์ด๋‚˜ ํƒญ์—์„œ ์ด๋ฃจ์–ด์ง„๋‹ค. ์›น ๋ธŒ๋ผ์šฐ์ €์™€ ๋น„์Šทํ•˜๊ฒŒ ํŽธ์ง‘๋˜๋Š” ์• ์…‹ ๊ฐ๊ฐ์— ๋Œ€ํ•ด ์ƒˆ๋กœ์šด ํƒญ ์ฐฝ์ด ์—ด๋ฆฌ๋ฉฐ ๊ฐ ํƒญ์€ ์ž์œ ๋กญ๊ฒŒ ๋Œ์–ด ๋ถ™์ด๊ฑฐ๋‚˜ ๋…๋ฆฝ ์ฐฝ์œผ๋กœ ๋„์šธ ์ˆ˜๋„ ์žˆ๋‹ค.

 

3. ์šฉ์–ด

์–ธ๋ฆฌ์–ผ ํ‚ค์›Œ๋“œ๋ฅผ ํด๋ฆญํ•˜๋ฉด ์–ธ๋ฆฌ์–ผ ์—”์ง„ ๋ฌธ์„œ๋กœ ์ด๋™๋œ๋‹ค.

 

์นดํ…Œ๊ณ ๋ฆฌ ์œ ๋‹ˆํ‹ฐ ์–ธ๋ฆฌ์–ผ
๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ์œ ํ˜• Component Component
GameObject Actor ์•กํ„ฐ, Pawn ํฐ
Prefab Blueprint Class ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ํด๋ž˜์Šค
์—๋””ํ„ฐ UI Hierarchy Panel World Outliner ์›”๋“œ ์•„์›ƒ๋ผ์ด๋„ˆ
Inspector Details Panel ๋””ํ…Œ์ผ ํŒจ๋„
Project Browser Content Browser ์ฝ˜ํ…์ธ  ๋ธŒ๋ผ์šฐ์ €
Scene View Viewport ๋ทฐํฌํŠธ
๋ฉ”์‹œ Mesh Static Mesh ์Šคํƒœํ‹ฑ ๋ฉ”์‹œ
Skinned Mesh Skeletal Mesh ์Šค์ผˆ๋ ˆํƒˆ ๋ฉ”์‹œ
๋จธํ‹ฐ๋ฆฌ์–ผ Shader Material ๋จธํ‹ฐ๋ฆฌ์–ผ, Material Editor ๋จธํ‹ฐ๋ฆฌ์–ผ ์—๋””ํ„ฐ
Material Material Instance ๋จธํ‹ฐ๋ฆฌ์–ผ ์ธ์Šคํ„ด์Šค
์ดํŽ™ํŠธ Particle Effect Effect, Particle, Cascade ์ดํŽ™ํŠธ, ํŒŒํ‹ฐํด, ์บ์Šค์ผ€์ด๋“œ
Shuriken Cascade ์บ์Šค์ผ€์ด๋“œ
๊ฒŒ์ž„ UI UI UMG (Unreal Motion Graphics) ์–ธ๋ฆฌ์–ผ ๋ชจ์…˜ ๊ทธ๋ž˜ํ”ฝ
์• ๋‹ˆ๋ฉ”์ด์…˜ Animation Skeletal Animation System ์Šค์ผˆ๋ ˆํƒˆ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์‹œ์Šคํ…œ
Mecanim Persona ํŽ˜๋ฅด์†Œ๋‚˜, Animation Blueprint ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ธ”๋ฃจํ”„๋ฆฐํŠธ
2D Sprite Editor Paper2D ํŽ˜์ดํผ 2D
ํ”„๋กœ๊ทธ๋ž˜๋ฐ C# C++ C++
Script Blueprint ๋ธ”๋ฃจํ”„๋ฆฐํŠธ
ํ”ผ์ง์Šค Raycast Line Trace, Shape Trace ๋ผ์ธ ํŠธ๋ ˆ์ด์Šค, ์…ฐ์ดํ”„ ํŠธ๋ ˆ์ด์Šค
Rigid Body Collision, Physics ์ฝœ๋ฆฌ์ „, ํ”ผ์ง์Šค
๋Ÿฐํƒ€์ž„ ํ”Œ๋žซํผ iOS Player, Web Player Platforms ํ”Œ๋žซํผ

 

4. ํ”„๋กœ์ ํŠธ์™€ ํŒŒ์ผ

์œ ๋‹ˆํ‹ฐ ํ”„๋กœ์ ํŠธ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์–ธ๋ฆฌ์–ผ ํ”„๋กœ์ ํŠธ๋Š” ํ•ญ์ƒ ๋ณ„๋„์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์กด์žฌํ•˜๋ฉฐ ์ž์ฒด์ ์ธ ํ”„๋กœ์ ํŠธ ํŒŒ์ผ์„ ๊ฐ–๋Š”๋‹ค.

๋””๋ ‰ํ† ๋ฆฌ

 

  • .uproject ํŒŒ์ผ: ๋”๋ธ”ํด๋ฆญ ํ•˜๋ฉด ๊ฒŒ์ž„์„ ์–ธ๋ฆฌ์–ผ ์—๋””ํ„ฐ์— ๋กœ๋“œํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์šฐํด๋ฆญ์œผ๋กœ ์ถ”๊ฐ€ ์˜ต์…˜์„ ํ™•์ธํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
  • Content ํด๋”: ์œ ๋‹ˆํ‹ฐ์˜ Assets ํด๋”์™€ ๋น„์Šทํ•˜๊ฒŒ ์ด ํด๋”์— ๊ฒŒ์ž„ ์• ์…‹์ด ์ €์žฅ๋œ๋‹ค.
  • Source ํด๋”: C++ ์†Œ์Šค(.cpp), ํ—ค๋”(.h) ํŒŒ์ผ, ๋นŒ๋“œ(.Build.cs, .Target.cs) ํŒŒ์ผ ๋“ฑ ๋‹ค์–‘ํ•œ ํŒŒ์ผ์ด ์ €์žฅ๋˜๋ฉฐ ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ์ „์šฉ ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ Source ํด๋”๊ฐ€ ์—†๋‹ค.

Content ํด๋”์™€ Source ํด๋”

  • Map ํŒŒ์ผ: ์œ ๋‹ˆํ‹ฐ์˜ Scene ํŒŒ์ผ๊ณผ ๋น„์Šทํ•œ ํŒŒ์ผ๋กœ ๋ ˆ๋ฒจ์ด๋ผ ๋ถ€๋ฅธ๋‹ค. ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋ฐฐ์น˜ํ•˜๊ณ  ๋ผ์ดํŒ… ๋ฐ์ดํ„ฐ์™€ ํŠน์ • ๋ ˆ๋ฒจ ์ „์šฉ ์„ธํŒ…์„ ์ €์žฅํ•œ๋‹ค.

 

5. ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ

์œ ๋‹ˆํ‹ฐ์—์„œ์˜ ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ๋Š” ์›”๋“œ์— ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋ฌผ์„ ๋งํ•˜๋ฉฐ ์ด๋ฅผ ์–ธ๋ฆฌ์–ผ์—์„œ๋Š” ์•กํ„ฐ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

 

 

์–ธ๋ฆฌ์–ผ์—์„œ๋Š” ๋ฐฐ์น˜ ํŒจ๋„์—์„œ ๋ทฐํฌํŠธ๋กœ ์•กํ„ฐ๋ฅผ ๋Œ์–ด ๋†“์œผ๋ฉด ๋œ๋‹ค. ๊ธฐ๋ณธ ์•กํ„ฐ๋งŒ ๊ฐ€์ง€๊ณ ๋„ ๊ฒŒ์ž„์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์ง€๋งŒ ์ผ์ •ํ•œ ๊ธฐ๋Šฅ์ด ๋‚ด์žฅ๋œ ํŠน์ˆ˜ ์•กํ„ฐ ์œ ํ˜•์ด ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ”Œ๋ ˆ์ด์–ด๋‚˜ AI ์˜ค๋ธŒ์ ํŠธ์— ์‚ฌ์šฉ๋˜๋Š” Pawn ํฐ, ์• ๋‹ˆ๋ฉ”์ด์…˜ ์บ๋ฆญํ„ฐ์— ์‚ฌ์šฉ๋˜๋Š” Character ์บ๋ฆญํ„ฐ ๋“ฑ์ด ์žˆ๋‹ค. ๊ธฐ๋ณธ ์•กํ„ฐ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ด๋Ÿฌํ•œ ํŠน์ˆ˜ ์•กํ„ฐ ์œ ํ˜•๋„ ๋Œ์–ด๋†“์€ ๋‹ค์Œ ํ”„๋กœํผํ‹ฐ๋‚˜ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ถ”๊ฐ€ ๋˜๋Š” ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ ์ด๋Ÿฌํ•œ ํŠน์ˆ˜ ์•กํ„ฐ ์ž‘์—…์„ ์œ„ํ•œ ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ํ”„๋ ˆ์ž„์›Œํฌ๋„ ์กด์žฌํ•œ๋‹ค.

 

6. ์ปดํฌ๋„ŒํŠธ

์œ ๋‹ˆํ‹ฐ์—์„œ๋Š” ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ์— ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ํ•จ์ˆ˜์„ฑ์„ ๋ถ€์—ฌํ•˜๋Š”๋ฐ, ์–ธ๋ฆฌ์–ผ์—์„œ๋„ ์ด์™€ ์œ ์‚ฌํ•˜๋‹ค. ์•กํ„ฐ๋ฅผ ๋Œ์–ด๋†“์€ ์ดํ›„์—๋Š” ๋””ํ…Œ์ผ ํŒจ๋„์˜ ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€ ๋ฒ„ํŠผ์œผ๋กœ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ผ๋ฐ˜ ๋ชฉ๋ก์œผ๋กœ ์ €์žฅ๋˜๋Š” ์œ ๋‹ˆํ‹ฐ์™€๋Š” ๋‹ค๋ฅด๊ฒŒ ์–ธ๋ฆฌ์–ผ์—์„œ๋Š” ์ปดํฌ๋„ŒํŠธ๋ผ๋ฆฌ ์„œ๋กœ ๋ถ™๋Š” ๊ณ„์ธต๊ตฌ์กฐ๋กœ ์ €์žฅ๋œ๋‹ค.

  • ์œ ๋‹ˆํ‹ฐ: ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ์˜ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ์ƒ์„ฑํ•œ ๋‹ค์Œ ๊ทธ ํŠธ๋žœ์Šคํผ์„ ๊ฐ™์ด ๋ถ€๋ชจ๋กœ ๋งŒ๋“ค์–ด ๋ณตํ•ฉ ์˜ค๋ธŒ์ ํŠธ๋กœ ๋งŒ๋“ ๋‹ค.

์œ ๋‹ˆํ‹ฐ ์ปดํฌ๋„ŒํŠธ ๊ตฌ์กฐ

  • ์–ธ๋ฆฌ์–ผ: ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ณ„์ธต๊ตฌ์กฐ์‹์œผ๋กœ ์ค‘์ฒฉ์‹œ์ผœ ๋ณตํ•ฉ ์˜ค๋ธŒ์ ํŠธ๋กœ ๋งŒ๋“ ๋‹ค.

์–ธ๋ฆฌ์–ผ ์ปดํฌ๋„ŒํŠธ ๊ตฌ์กฐ

 

7. ํ”„๋ฆฌํŒน

์œ ๋‹ˆํ‹ฐ์˜ ์ž‘์—… ๋ฐฉ์‹์€ ํ”„๋ฆฌํŒน์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ๋‹ค. ์œ ๋‹ˆํ‹ฐ์—์„œ๋Š” ์ปดํฌ๋„ŒํŠธ๋กœ ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ ์„ธํŠธ๋ฅผ ๋งŒ๋“  ๋‹ค์Œ ํ”„๋ฆฌํŒน์„ ์ƒ์„ฑํ•˜๊ณ  ํ”„๋ฆฌํŒน ์ธ์Šคํ„ด์Šค๋ฅผ ์›”๋“œ์— ๋ฐฐ์น˜ํ•˜๊ฑฐ๋‚˜ ์‹คํ–‰ ์‹œ๊ฐ„์— ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

 

์–ธ๋ฆฌ์–ผ์˜ ์ž‘์—… ๋ฐฉ์‹์€ ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ํด๋ž˜์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ๋‹ค. ์ปดํฌ๋„ŒํŠธ๋กœ ์•กํ„ฐ๋ฅผ ๋งŒ๋“  ๋‹ค์Œ ๋ธ”๋ฃจํ”„๋ฆฐํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ์ƒˆ๋กœ์šด ๋ธ”๋ฃจํ”„๋ฆฐํŠธ๋Š” ์ฝ˜ํ…์ธ  ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋ฐ”๋กœ ํŽธ์ง‘ํ•˜๊ฑฐ๋‚˜ ๋ ˆ๋ฒจ์— ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ƒ์„ฑ๋œ ๋ธ”๋ฃจํ”„๋ฆฐํŠธ

 

8. ์Šคํฌ๋ฆฝํŠธ

์œ ๋‹ˆํ‹ฐ์—์„œ๋Š” ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ์— C# ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์žˆ๋‹ค. MonoBehaviour๋ฅผ ์ƒ์†ํ•˜๋Š” ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด ์ปดํฌ๋„ŒํŠธ๊ฐ€ ํ•˜๋Š” ์ผ์„ ์ •์˜ํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค.

 

์–ธ๋ฆฌ์–ผ์—์„œ๋Š” ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ์Šคํฌ๋ฆฝํŠธ ๋˜๋Š” C++๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปดํฌ๋„ŒํŠธ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์œ ๋‹ˆํ‹ฐ์—์„œ์˜ Start() ํ•จ์ˆ˜์™€ Update() ํ•จ์ˆ˜๊ฐ€ ์žˆ๋Š” ์Šค์ผˆ๋ ˆํ†ค ํด๋ž˜์Šค ํŒŒ์ผ๊ณผ ๋™์ผํ•˜๊ฒŒ ์–ธ๋ฆฌ์–ผ์—์„œ๋„ ๋น„์Šทํ•œ ํ•จ์ˆ˜๊ฐ€ ์ƒ์„ฑ๋˜์–ด ์ฃผ์–ด์ง„๋‹ค.

  • ๋ธ”๋ฃจํ”„๋ฆฐํŠธ: ๊ฐ„๋‹จํ•œ ๊ฒŒ์ž„ ๋‚ด ๋กœ์ง ํ๋ฆ„์ด๋‚˜ ์•ก์…˜ ์‹œํ€€์Šค์— ์ด์ƒ์ ์ด๋ฉฐ ๋น„์ฃผ์–ผ ๋ฐฉ์‹์œผ๋กœ ์‰ฝ๊ฒŒ ์ ‘๊ทผํ•˜๊ณ  ์ œ์–ด๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • C++ ํ”„๋กœ๊ทธ๋ž˜๋ฐ: ๊ฒŒ์ž„ ํ”Œ๋ ˆ์ด ์‹œ์Šคํ…œ, ๋ณต์žกํ•œ AI, ์ƒˆ๋กœ์šด ์—”์ง„ ๊ธฐ๋Šฅ ์ œ์ž‘๊ณผ ๊ฐ™์€ ๋Œ€๊ทœ๋ชจ ์ž‘์—…์šฉ์ด๋‹ค.

 

์Šคํฌ๋ฆฝํŠธ ์ปดํฌ๋„ŒํŠธ

 

๋ธ”๋ฃจํ”„๋ฆฐํŠธ ํด๋ž˜์Šค๋ฅผ C++ ํด๋ž˜์Šค์™€ ํ˜ผํ•ฉํ•˜์—ฌ ํ™•์žฅ์ด ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋Œ€๋ถ€๋ถ„ ๋ธ”๋ฃจํ”„๋ฆฐํŠธ์™€ C++๋ฅผ ํ˜ผํ•ฉํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค.

 

9. ํŠน์ˆ˜ ์œ ํ˜• ์•กํ„ฐ

์–ธ๋ฆฌ์–ผ์—๋Š” ์ผ์ • ์ˆ˜์ค€์˜ ๋Šฅ๋ ฅ์„ ๋ณด์žฅํ•˜๋ฉฐ ํ•ญ์ƒ ํŠน์ • ์ปดํฌ๋„ŒํŠธ๋ฅผ ํฌํ•จํ•˜๋Š” ํŠน์ˆ˜ ์œ ํ˜• ์•กํ„ฐ๊ฐ€ ์žˆ๋‹ค.

  • Pawn: ์ œ์–ด ๊ฐ€๋Šฅํ•œ ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ๋กœ ์ „ํ˜•์ ์œผ๋กœ ํ”Œ๋ ˆ์ด์–ด์˜ ์•„๋ฐ”ํƒ€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์•กํ„ฐ ์œ ํ˜•์ด๋‹ค. ํฐ์€ Controller ์ปจํŠธ๋กค๋Ÿฌ ์†Œ์œ ๋ฅผ ํ†ตํ•ด ํ”Œ๋ ˆ์ด์–ด๋‚˜ AI ๋“ฑ์— ์˜ํ•ด ์›€์ง์ธ๋‹ค.
  • Character: ์ด์กฑ ๋ณดํ–‰ ์•„๋ฐ”ํƒ€ ์šฉ์œผ๋กœ ๋””์ž์ธ๋œ ๋ณด๋‹ค ์ „๋ฌธํ™”๋œ ๋ฒ„์ „์˜ ํฐ์œผ๋กœ ๊ทธ๋Ÿฌํ•œ ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ ์œ ํ˜•์˜ ๋ณต์žก๋„๋ฅผ ๋‹ค์ˆ˜ ์ฒ˜๋ฆฌํ•œ๋‹ค.
  • Controller: ํฐ์„ Possess ๋น™์˜ํ•˜์—ฌ ์ œ์–ดํ•œ๋‹ค. ํฐ๊ณผ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๋ถ„๋ฆฌํ•จ์œผ๋กœ์จ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ๊ฐ€์ •ํ•˜๊ณ  ๊ทธ์™€ ๋˜‘๊ฐ™์€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํฐ์„ ์ž„์˜๋กœ ์กฐ์ž‘ํ•˜๋Š” AI ์ปจํŠธ๋กค๋Ÿฌ ์ž‘์„ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • Player Controller: ํ”Œ๋ ˆ์ด์–ด์˜ ๊ฒŒ์ž„ํŒจ๋“œ, ํ„ฐ์น˜, ๋งˆ์šฐ์Šค/ํ‚ค๋ณด๋“œ์—์„œ ์ž…๋ ฅ์„ ๋ฐ›๊ณ  ๊ทธ ์ž…๋ ฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋น™์˜ ์ค‘์ธ ํฐ ๋˜๋Š” ์บ๋ฆญํ„ฐ๋ฅผ ๊ตฌ๋™์‹œํ‚ค๊ธฐ ์œ„ํ•œ ์ข€ ๋” ์ „๋ฌธํ™”๋œ ์ปจํŠธ๋กค๋Ÿฌ์ด๋‹ค.

 

10. ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ํ”„๋ ˆ์ž„์›Œํฌ

์™„์„ฑ๋œ ๋ ˆ๋ฒจ ์œ„์—์„œ ์ •ํ•ด์ง„ ๊ทœ์น™์— ๋”ฐ๋ผ ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด๊ฐ€ ์ง„ํ–‰๋ผ์•ผ ํ•˜๋Š”๋ฐ, ์ด๋ฅผ ์งœ์ž„์ƒˆ ์žˆ๊ฒŒ ์„ค๊ณ„ํ•˜๊ณ  ํšจ๊ณผ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์–ธ๋ฆฌ์–ผ ์—”์ง„์€ ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ํ”„๋ ˆ์ž„์›Œํฌ๋ผ๋Š” ์‹œ์Šคํ…œ์„ ์ œ๊ณตํ•œ๋‹ค.

  • ๊ฒŒ์ž„ ๋ชจ๋“œ
  • ํฐ

 

11. ์ฝ”๋“œ

๋ธ”๋ฃจํ”„๋ฆฐํŠธ์˜ ๊ฒฝ์šฐ ๋ชจ๋“  ๊ฒƒ์ด ๋‚ด์žฅ๋˜์–ด ์žˆ์–ด ์–ธ๋ฆฌ์–ผ ์—๋””ํ„ฐ๋งŒ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ C++์˜ ๊ฒฝ์šฐ ์ถ”๊ฐ€ IDE ์„ค์น˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

 

์œ ๋‹ˆํ‹ฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ•จ์ˆ˜๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ์ œ๊ณตํ•ด์ฃผ๊ณ  ์žˆ๋‹ค.

public class MyComponent : MonoBehaviour
{
    void Start() {}
    void OnDestroy() {}
    void Update() {}
}

 

์–ธ๋ฆฌ์–ผ์—์„œ๋„ ์œ ๋‹ˆํ‹ฐ์˜ ๊ธฐ๋ณธ ํ•จ์ˆ˜๋“ค๊ณผ ์œ ์‚ฌํ•œ ํ•จ์ˆ˜๋“ค์ด ์กด์žฌํ•œ๋‹ค.

UCLASS()
class AMyActor : public AActor
{
    GENERATED_BODY()

    void BeginPlay();
    void EndPlay(const EEndPlayReason::Type EndPlayReason);
    void Tick(float DeltaSeconds);
};

 

๋ธ”๋ฃจํ”„๋ฆฐํŠธ์˜ ๊ฒฝ์šฐ์—” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉ๋œ๋‹ค.

 

 ์–ธ๋ฆฌ์–ผ์˜ C++ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ์Šคํฌ๋ฆฝํŠธ๋กœ๋„ ์›ํ•˜๋Š” ๊ฑฐ์˜ ๋ชจ๋“  ๊ฒƒ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ž์„ธํ•œ ์˜ˆ์ œ๋Š” ์›๋ณธ ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜์ž!

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)
'๐Ÿ“ Game/โœ Unreal' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Unreal] ํ”ผ์ง์Šค
  • [Unreal] ์ฝœ๋ฆฌ์ „
  • [Unreal] ๋ธ”๋ฃจํ”„๋ฆฐํŠธ
  • [Unreal] ๋ ˆ๋ฒจ, ๋ ˆ์ด์–ด
Blxxming
Blxxming
CS ์ง€์‹๊ณผ ๊ณต๋ถ€ํ•˜๋‹ค ๋ฐฐ์šด ๊ฒƒ, ๊ฒฝํ—˜ํ•œ ๊ฒƒ ๋“ฑ์„ ๊ธฐ๋กํ•˜๋Š” ๋ธ”๋กœ๊ทธ์ž…๋‹ˆ๋‹ค.
  • Blxxming
    ๐Ÿ’ก๋ฒˆ๋œฉ๐Ÿ’ก
    Blxxming
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
  • ๊ณต์ง€์‚ฌํ•ญ

    • Tech Interview
    • ๐Ÿ“š Tech (246)
      • ๐Ÿ“ Computer Science (96)
        • โœ OS (12)
        • โœ Network & Web (10)
        • โœ Database (11)
        • โœ Data Structure (6)
        • โœ Algorithm (40)
        • โœ Design Pattern (9)
        • โœ Cloud Computing (3)
        • โœ (5)
      • ๐Ÿ“ Language (73)
        • โœ Language (6)
        • โœ C & C++ (11)
        • โœ C# (19)
        • โœ JAVA (37)
      • ๐Ÿ“ Game (43)
        • โœ Computer Graphics (2)
        • โœ Unity (14)
        • โœ Unreal (26)
        • โœ (1)
      • ๐Ÿ“ Book (34)
        • โœ Effective (3)
        • โœ Game Server (16)
        • โœ Clean Code (14)
        • โœ (1)
  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.0
Blxxming
[Unreal] ์œ ๋‹ˆํ‹ฐ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์–ธ๋ฆฌ์–ผ ์—”์ง„
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”