๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“‚ UNREAL ENGINE

[๋ธ”๋ฃจํ”„๋ฆฐํŠธ2] 05์›” 28์ผ ์–ธ๋ฆฌ์–ผ

by Sjungwon 2024. 5. 28.

BP์˜ ๊ฒฝ์šฐ ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ๊บผ๋‚ด์„œ ์•กํ„ฐ๋กœ ๋ ˆ๋ฒจ์— ๋ฐฐ์น˜๋ฅผ ํ•ด๋‘๊ณ  BP์— ๋‚ด๋ถ€์— ๋“ค์–ด๊ฐ€์„œ ์˜ˆ)๋ผ์ดํŠธ์˜ ๋ฐ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๋ฉด ๋ ˆ๋ฒจ์— ๋‚˜์™€์žˆ๋Š” ์•กํ„ฐ ๋ชจ๋‘์˜ ๋ฐ๊ธฐ๊ฐ€ ํ•œ๊บผ๋ฒˆ์— ๋‹ฌ๋ผ์ง„๋‹ค. 

BP๋ฅผ ์•กํ„ฐ๋กœ ์—ฌ๋Ÿฌ๊ฐœ ๋ฐฐ์น˜ํ•ด๋‘๊ณ  ๊ทธ ์—ฌ๋Ÿฌ๊ฐœ ์ค‘์— ํ•œ๊ฐœ๋ฅผ ๋ฐ”๊พผ๋‹ค๋ฉด ๊ทธ ํ•œ ๊ฐœ์˜ ์•กํ„ฐ๋Š” ๋Š๊ธฐ๊ฒŒ ๋œ๋‹ค. 

 

๊ฐ€๋กœ๋“ฑ์€ BP_๊ฐ€๋กœ๋“ฑ์ด๋ผ๋Š” ์• ๋ฅผ ๋ฐ”๋ผ๋ณด๊ณ  ์žˆ๋Š” ์• ๋“ค์ด๋‹ค. ๊ทธ๋ž˜์„œ BP_๊ฐ€๋กœ๋“ฑ์˜ ๋ถˆ์„ ๋ฐ”๊พธ๋ฉด ๋ ˆ๋ฒจ์— ์žˆ๋Š” ๊ฑ”๋„ค๋„ ๋‹ค ๋ฐ”๋€Œ๊ฒŒ ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋‹จ๋…์œผ๋กœ๋Š” ๋ชป ๋ฐ”๊พธ๋‚˜?

 

BP์—์„œ ๋ฐ”๊พธ๋ฉด ๋‹ค ๋ฐ”๋€Œ์ง€๋งŒ ๊ทธ๋ƒฅ ๋ ˆ๋ฒจ์—์„œ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•ด์„œ ์ƒ‰์ƒ์„ ๋ฐ”๊พธ๋ฉด ํ•˜๋‚˜๋งŒ ๋ฐ”๋€๋‹ค. 

ํ•˜์ง€๋งŒ ์—ฌ๋Ÿฌ๊ฐœ ์ค‘์— ํ•˜๋‚˜ ๋ฐ”๊พผ ์• ๊ฐ€ ์žˆ์œผ๋ฉด ๊ทธ ์• ๋Š” ๋ฐ”๋€Œ์ง€ ์•Š๋Š”๋‹ค.

 

๋ ˆ๋ฒจ์— ์˜ฌ๋ผ๊ฐ€์žˆ๋Š” ์—‘ํ„ฐ๊ฐ€ ๊ทธ ๋ ˆ๋ฒจ์—์„œ ๋ณ€ํ™”๊ฐ€ ์ผ์–ด๋‚˜๋ฉด ๋ ˆํผ๋Ÿฐ์Šค BP๋ž‘ ๋Š์–ด์ง„๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค. 

 

Get actor of class ๋Š” BP_Class ์ŠคํฌํŠธ ๋ผ์ดํŠธ์˜ ๋ณ€์ˆ˜๊ฐ€ ๊ฐ€์ง€๊ณ  ์˜ค๋ฉด ๋ฐ‘์— ์žˆ๋Š” BP_๊ฐ€๋กœ๋“ฑ์— ์˜ํ•ด์„œ ์‹น ๋‹ค ๋ถˆ๋Ÿฌ์„œ ์ŠคํฌํŠธ ๋ผ์ดํŠธ์˜ ๊ฐ•๋„๋ฅผ ๋ฐ”๊พธ๊ณ  ์‹ถ๋‹ค๋ฉด ๋ถˆ๋Ÿฌ์„œ ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•œ๋ฒˆ์— ๋งŽ์€ ์•กํ„ฐ๋ฅผ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์“ด๋‹ค. 

 

์•กํ„ฐ๋ผ๋Š” ๋ณ€์ˆ˜๋Š” ๋ ˆ๋ฒจ์— ์žˆ๋Š” ๋ญ”๊ฐ€๋ฅผ ๋‹ค ์ง‘์–ด๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ๋ณ€์ˆ˜๋‹ค. 

์•กํ„ฐ๋ผ๋Š” ๊ฒƒ์„ ํ•˜๋‚˜ ๋งŒ๋“ค์—ˆ๋‹ค. 

 

๋žœ๋ค๊ฐ€๋กœ๋“ฑ๋ฐ๊ธฐ -> ํ”Œ๋กœํŠธ (๋ฐ๊ธฐ์˜ ๊ฐ’์„ ๋„ฃ์„ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์†Œ์ˆ˜์  ํฌํ•จ์„ ์„ ์–ธํ•œ๋‹ค. )(

 

๋‹จ์ผ์€ ๊ฐ€๋กœ๋“ฑ 1๋ฒˆ์„ ๋„ฃ๊ฑฐ๋‚˜

๊ฐ€๋กœ๋“ฑ 2๋ฒˆ์„ ๋„ฃ๊ฑฐ๋‚˜ ๋‹จ ํ•˜๋‚˜๋งŒ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค. 

 

๋ฐฐ์—ด์€ ์—ฌ๋Ÿฌ๊ฐœ๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค. ํ•˜๋‚˜ ์ด์ƒ์„ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค. 

๋ฐฐ์—ด์ด ์ค‘์š”ํ•˜๋‹ค. (๋ธ”๋ฃจํ”„๋ฆฐํŠธ์˜ ์ข‹์€ ์ ์€ ์ž๋™ํ™”์ธ๋ฐ 1๊ฐœ ๊ฐ€์ง€๊ณ  ํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋‹ค. ๊ทธ๋Ÿด๋ ค๋ฉด ๋ณ€์ˆ˜ ํƒ€์ž…์ด ๋ฐฐ์—ด์„ ์จ์•ผ ํ•œ๋‹ค. ) ๋“ค์–ด์˜ฌ๊ฒŒ ํ•˜๋‚˜์ผ์ง€ ๋‘๊ฐœ์ผ์ง€ ์—ฌ๋Ÿฌ๊ฐœ ์ผ์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ์—ฌ๋Ÿฌ๊ฐœ ์ผ๊ฒƒ ๊ฐ™๋‹ค ํ•˜๋ฉด ๋ฐฐ์—ด์„ ์“ฐ๋ฉด๋œ๋‹ค. 

 

๋ฐฐ์—ด๋กœ ํƒ€์ž…์„ ๋ฐ”๊พธ๋ฉด 

์–˜๋„ ๋ฐ”๊ฟ”์ค€๋‹ค. 

์ด๋ ‡๊ฒŒ +๋ฅผ ๋ˆ„๋ฅด๋ฉด ์—ฌ๋Ÿฌ๊ฐœ์˜ ๊ฐ’์„ ๋„ฃ๊ธฐ ์œ„ํ•ด์„œ ์“ฐ๊ฒŒ ๋œ๋‹ค. 

 

๋ฐฐ์—ด์€ ๊ธฐ๋ณธ์ ์œผ๋กœ 4๊ฐœ๋ฅผ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ 1,2,3,4 ์“ฐ๋Š”๋ฐ ์ปดํ“จํ„ฐ ์•ˆ์—๋Š” ๋ฐฐ์—ด์€ 4๊ฐœ์ง€๋งŒ ๊ธฐ๋ณธ์ ์œผ๋กœ 0,1,2,3

 

์ŠคํฌํŠธ๋ผ์ดํŠธ์˜ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฐ€์ง€๊ณ  ์™€์„œ (์ธํ…์‹œํ‹ฐ)์˜ ๊ฐ’์„ ๋žœ๋ค๊ฐ’์œผ๋กœ ๋งŒ๋“ค๊ฒ๋‹ˆ๋‹ค. 

 

Get all Actors Of class 

์–˜๋Š” ๋ฐฐ์—ด์„ 

 

 

์ด๋ ‡๊ฒŒ ๋ฐฐ์—ด์ด ๋‚˜์˜ค๋“  ๋‹จ์ผ์ด ๋‚˜์˜ค๋Š” ๋“ฑ์ด ์žˆ๋‹ค. 

 

Get Each Loop ์ด๋ผ๋Š” ๊ฒƒ์„ ์—ฐ๊ฒฐ์„ ํ•œ๋‹ค. 

 

BP ๊ฐ€๋กœ๋“ฑ ์•ˆ์• ๋Š” Get component by class ์—์„œ ์ŠคํฌํŠธ ๋ผ์ดํŠธ์˜ ์ปดํฌ๋„ŒํŠธ ํ•œ๊ฐœ๊ฐ€ ์žˆ์„๊ฑฐ์•ผ. 

 

Loop๋ฅผ ํ†ตํ•ด์„œ 0๋ถ€ํ„ฐ ์‹ ํ˜ธ๋“ฑ์„ ๊บผ๋‚ด์˜จ๋‹ค. ๊บผ๋‚ด์™€์„œ ๊ทธ ๊บผ๋‚ด์˜จ ๊ฒƒ์˜ ์ŠคํฌํŠธ ๋ผ์ดํŠธ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊บผ๋‚ด์™€์„œ ๊ฑฐ๊ธฐ ์ปดํฌ๋„ŒํŠธ์— ํ•ด๋‹นํ•˜๋Š” intensity๋ฅผ ๋ณ€๊ฒฝํ•ด์ค€๋‹ค.  ํ•œ๊ฐœ์”ฉ 50000 ์ธํ…์‹œํ‹ฐ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.,

 

๋ฐฐ์—ด์“ฐ๋Š” ๋ฐฉ๋ฒ•์€ 

For Each Loop์“ฐ๊ณ  ๊ทธ ๋’ค๋Š” ๋งŒ๋“ค๋ฉด๋œ๋‹ค. 

 

 

 

์—ฌ๊ธฐ ๋„ฃ๋Š” ๋ฐฉ๋ฒ•๋„ ๋‹ค๋ฅด๋‹ค. 

 

๋ฐฐ์—ด์˜ ๊ฒฝ์šฐ Get (ref)๋ฅผ ์—ฐ๊ฒฐํ•ด์•ผ ํ•œ๋‹ค.

์—ฌ๊ธฐ์„œ 0 ์ž๋ฆฌ์— 1์„ ๋„ฃ์œผ๋ฉด 1์— ํ•ด๋‹นํ•˜๋Š” ์• ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค. 

Random integer in Range ๋ผ๊ณ  ํ•œ๋‹ค. ์ด๊ฑฐ๋Š” ๊ตฌ๊ฐ„์„ ๋งํ•˜๋Š” ์•  ์ธ๋ฐ ์šฐ๋ฆฌ์—๊ฒŒ ๋žœ๋ค ๊ฐ€๋กœ๋“ฑ๋ฐ๊ธฐ ๋ผ๋Š” ๋ฐฐ์—ด์ด 0~5๊นŒ์ง€ ์žˆ์œผ๋‹ˆ๊นŒ

 

๋žœ๋ค๊ฐ€๋กœ๋“ฑ๋ฐ๊ธฐ๋ฅผ min 0 ์œผ๋กœ max๋Š” 5๋กœ ํ•œ๋‹ค.

 

ํ•œ๊บผ๋ฒˆ์— ๋งŽ์€ ๊ฒƒ์„ ์ œ์–ดํ•˜๋ ค๊ณ  ํ•˜๋‹ค๋ณด๋ฉด ์ด๋ ‡๊ฒŒ ์“ด๋‹ค. 

 

๋žœ๋ค ๋ณ€์ˆ˜๋ฅผ ํ•˜๋‚˜์”ฉ ๊บผ๋‚ด๋Š” ๊ฒƒ์€ Get์ธ๋ฐ

๋ฌด์กฐ๊ฑด 0๋ฒˆ ๋ถ€ํ„ฐ ๊บผ๋‚ด๋Š” ๊ฒƒ์€ For Each Loop์„ ๋งํ•œ๋‹ค. 

 

BP_์—์„œ ๊บผ๋‚ด์˜จ ์•กํ„ฐ๋“ค ๋žœ๋ค์œผ๋กœ ๋ถˆ ๋ฐ๊ธฐ ์กฐ์ •ํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•

 

1. ๋ผ์ดํŠธ ๋žœ๋ค๋ฐ๊ธฐ ๋ผ๋Š” ์ปค์Šคํ…€ ์ด๋ฒคํŠธ๋ฅผ ๋ถˆ๋Ÿฌ์™€์„œ 

2. Get All Actors of Class๋ผ๋Š” ํด๋ž˜์Šค์˜ ๋ชจ๋“  ์•กํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์•  ๋ฅผ ๋ถˆ๋Ÿฌ์„œ (์–ด๋–ค ์•กํ„ฐ๋“  ๊ฐ€์ ธ์˜ค๋Š” ) BP_๊ฐ€๋กœ๋“ฑ ์ด๋ผ๋Š” ์•กํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์™€์„œ 

3. Set ํ•ด์„œ Promot to variable ์ด๋ผ๋Š” ๋ณ€์ˆ˜๋กœ ์Šน๊ฒฉ์„ ์‹œํ‚จ๋‹ค. ์—ฌ๊ธฐ์„œ ๋ฐฐ์—ด์ด๋ฏ€๋กœ ๋ฐฐ์—ด๋กœ ๋ณ€์ˆ˜๊ฐ€ ์Šน๊ฒฉ์ด ๋œ๋‹ค. 

4. ์ด์ œ ๋ฐฐ์—ด ๋ณ€์ˆ˜์˜ ํ•˜๋‚˜ํ•˜๋‚˜์— ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ For Each Loop๋ฅผ ์—ฐ๊ฒฐ์„ ํ•ด์ค€๋‹ค. 

5. ์—ฐ๊ฒฐ์„ ํ•˜๊ณ  ๋‚˜์„œ ๋ฌด์—‡์„ ๋ฐ”๊พธ๊ณ  ์‹ถ๋‹ˆ? ๋ผ๋Š” ๋ฌผ์Œ์— Get Componet by Class ๋ผ๊ณ  ํ•ด์„œ ํด๋ž˜์Šค์— ์˜ํ•ด ๊ทธ ๊ฒƒ์˜ ํ•ด๋‹น ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฐ€์ ธ์˜ค๊ฒ ๋‹ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋Ÿฌํ—ฅ ๋˜๋ฉด ์šฐ๋ฆฌ๋Š” ๋ฐฐ์—ด ๋ณ€์ˆ˜ ํ•˜๋‚˜ํ•˜๋‚˜์˜ ์ปดํฌ๋„ŒํŠธ์— ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•ด์ง„๋‹ค. 

๊ทธ๋ ‡๋‹ค๋ฉด ์ปดํฌ๋„ŒํŠธ์— ๋“ค์–ด๊ฐ€ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ๊ฒƒ ์ค‘์— ๋ฌด์—‡์„ ๊ฑด๋“œ๋ฆด ๊ฒƒ์ธ๊ฐ€?

6. Set intensty๋ผ๋Š” ๋ฐ๊ธฐ๋ฅผ ๊ฑด๋“œ๋ฆฌ๊ธฐ๋กœ ํ–ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์ด ๋ฐ๊ธฐ์˜ ๊ฐ•๋„๋Š” ? New intensity๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ๋˜๋Š”๋ฐ 

7. ์—ฌ๊ธฐ์„œ ๋ฐ๊ธฐ์˜ ๊ฐ•๋„์— ์šฐ๋ฆฌ๊ฐ€ ๋žœ๋ค์œผ๋กœ ๋„ฃ๊ธฐ์œ„ํ•ด '๋žœ๋ค๊ฐ€๋กœ๋“ฑ ๋ฐ๊ธฐ'๋ผ๋Š” ๋ฐฐ์—ด์„ ๊ฐ€์ง€๊ณ  ๊ฑฐ๊ธฐ์— get (a ref)ํ•ด์„œ ์—ฐ๊ฒฐ์„ ํ•ด์ฃผ๊ณ  ๊ฑฐ๊ธฐ์— Random integer in Range ๋ฅผ ํ•ด์„œ ์ธํ‹ฐ์ €์˜ ๋ฒ”์œ„๋ฅผ ์„ค์ €์„ ํ•ด์ค€๋‹ค. ์šฐ๋ฆฌ๋Š” 0~5๋ฐ–์— ๋žœ๋ค ๊ฐ€๋กœ๋“ฑ ๋ฐ๊ธฐ ์˜ ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด๋‘์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๊ฐ€์ง€๊ณ  ์—ฐ๊ฒฐ์„ ํ•ด์„œ ๋ฒ”์œ„๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๋ฉด ๊ฐ๊ฐ ๋Œ๋•Œ๋งˆ๋‹ค ํ•˜๋‚˜์”ฉ ๋žœ๋ค ๊ฐ’์ด ๋“ค์–ด๊ฐ„๋‹ค. 

 

 

 

 

tag๋ฅผ ํ™œ์šฉํ•œ๋‹ค. 

 

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ฐ€๋กœ๋“ฑ์ด๋ผ๋Š”  tag ๊ฐ€ ๋‹ฌ๋ฆฐ ์• ๋งŒ ๋žœ๋ค ๊ฐ’์„ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค. 

 

1๊ธธ์ด๋ผ๋Š” ํ…Œ๊ทธ๋ฅผ ๊ฐ€์ง„ ์• ๋งŒ ๋žœ๋ค์œผ๋กœ ๋ฐ๊ธฐ๊ฐ€ ์กฐ์ ˆ๋œ๋‹ค. 

 

์ƒ‰์ƒ์ด ๋ฐ”๋€Œ๋Š” ์‹ ํ˜ธ๋“ฑ

 

Get Component by Class์˜ Set Light Color๋ฅผ ์—ฐ๊ฒฐ์„ ํ•ด์ฃผ๋ฉด ์ƒ‰์ƒ์— ์—ฐ๊ฒฐ์ด ๋œ๋‹ค. ์ด์ œ ์ด ์ƒ‰์ƒ์„ ๋ฐ”๊พธ๋Š” New Light Color๋ฅผ ๋žœ๋คํ•˜๊ฒŒ ๊ฐ’์„ ์ผ์ง์„ ์˜ ์ƒ‰์ƒ์œผ๋กœ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๊ฐ’์ด ์žˆ๋Š”๋ฐ ๋žœ๋ค์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ์• ๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค. 

 

์–˜๊ฐ€

์ด์ œ ์ด๋ ‡๊ฒŒ ๊ฐ๊ฐ์˜ Random range ๋ฒ”์œ„๋ฅผ ๊ฐ€์ ธ์„œ 0(๊ฒ€์€์ƒ‰) ์—์„œ 1(ํฐ์ƒ‰)์œผ๋กœ ๋ฐ”๋€” ๋•Œ๋งˆ๋‹ค ์ƒ‰์ƒ์ด ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. 

๋ผ์ดํŠธ ์ปฌ๋Ÿฌ๊ฐ€ ๊ทธ๋ƒฅ ์ปฌ๋Ÿฌ๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋Œ€๋ฌธ์— Make Linear Color ๋ฅผ ๊ผญ ์—ฐ๊ฒฐ์„ ํ•ด์ค˜์•ผ ํ•œ๋‹ค. 

 

์™œ ์„ ํ˜•์ปฌ๋Ÿฌ๋ฅผ ๋„ฃ์—ˆ๋ƒ๋ฉด

Set light Color ์˜ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด๋ณด๋ฉด ๋ณ€์ˆ˜ ํƒ€์ž…์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ ํ˜•์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ์•˜์œผ๋‹ˆ ์ด์ œ ์„ ํ˜•์„ ๋งŒ๋“ค์–ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. 

 

 

์ž๋™์œผ๋กœ ๊นœ๋นก์ด๋ฉฐ ๋ฐ”๋€Œ๋Š” ์‹ ํ˜ธ๋“ฑ

tick์— ๋‹ค๊ฐ€ ์—ฐ๊ฒฐ

 

 

์—ฌ๊ธฐ์„œ ์•กํ„ฐ ํ•˜๋‚˜๊ฐ€ ๋‚˜์˜ค๊ธฐ ๋•Œ๋ฌธ์— Set actor location๋„ 

์ด๋ ‡๊ฒŒ for each loop์— ์—ฐ๊ฒฐ์„ ํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ ์—ฐ๊ฒฐ์„ ํ•˜๋ฉด ๋˜๋‹ˆ๊นŒ

์•ž์—์„œ ๋งŒ๋“ค์–ด๋‘์—ˆ๋˜ 
Get Component by case ์™€ ๊ฐ™์€ ์ˆœ์œ„๋กœ ์—ฐ๊ฒฐ์„ ํ•ด์ค€๋‹ค. ๊ทธ๋ฆฌ๊ณ  Set actor location ์˜ ์œ„์น˜ ๊ฐ’์„ ๊ตฌ์กฐ์ฒด ๋ถ„ํ• ๋กœ ํ•ด์„œ 

 

์ด๋ ‡๊ฒŒ ํ•ด์„œ ์œ„์น˜๋„ ๋ฐ”๊พธ๊ณ  ์ƒ‰์ƒ๊ณผ ๋ฐ๊ธฐ๋„ ๋žœ๋คํ•˜๊ฒŒ ๋ฐ”๊พธ๊ฒŒ ๋งŒ๋“ ๋‹ค. 

 

PCG?

 

์‹ ํ˜ธ๋“ฑ ์—ฌ๋Ÿฌ๊ฐœ ๋žœ๋ค์œผ๋กœ ๊น”๊ธฐ (์ผ์ผํžˆ ์‹ฌ์„ ํ•„์š”์—†์ด) 

spawn actor class๋ฅผ ์–น๋Š”๋‹ค.

 

์ด๋Œ€๋กœ ๊ทธ๋ƒฅ ์ปดํŒŒ์ผ ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋œฌ๋‹ค ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์ด ์—†์œผ๋‹ˆ

์ด๋ ‡๊ฒŒ class๋„ ์ •ํ•ด์ฃผ๊ณ  (๋ญ˜ ์Šคํฐํ•ด?)

spawn Transform (์–ด๋””๋กœ?)

 

 

์—ฌ๊ธฐ์„œ spawn transform ์„ ๊ตฌ์กฐ์ฒด ๋ถ„ํ•  ํ•ด๋ฒ„๋ฆฐ๋‹ค. 

 

์ด๋ ‡๊ฒŒ ๋‹ค์‹œ location์„ ๋ถ„ํ• ์„ ํ•˜๊ณ  x์™€y ๊ฐ’์„ ๋ณ€๊ฒฝ์„ ํ•œ๋‹ค. 

 

Loop๋ฌธ์„ ์ด์šฉํ•˜์—ฌ ๋ˆ„๋ฅด๋Š” ์ž‘์—… ์ž๋™์œผ๋กœ ๋ฐ˜๋ณต๋˜๊ฒŒ ํ•˜๊ธฐ 

10๋ฒˆ ๋Œ๋ฆฌ๊ฒŒ ํ•˜๋Š” loop๋ฌธ์ด ์žˆ๋‹ค. 

 

์ธ์Šคํ„ด์Šค ํŽธ์ง‘ ๊ฐ€๋Šฅ์„ ๋ˆŒ๋Ÿฌ์„œ ๋””ํ…Œ์ผ ์ฐฝ์— ๋‚˜์˜ค๊ฒŒ ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋ช‡๊ฐœ ๋งŒ๋“ค์ง€๋ฅผ ๊ฑด๋“ค ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. 

 

Last Index๊ฐฏ์ˆ˜ ๋งŒํผ ๋งŒ๋“ค์–ด์ง„ ์‹ ํ˜ธ๋“ฑ ๊ณ ๊ฐœ ๋žœ๋ค์œผ๋กœ ๋Œ๋ฆฌ๊ธฐ 

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด Last index์— ๋“ค์–ด๊ฐ€๋Š” ์ˆซ์ž์˜ ๊ฐฏ์ˆ˜ ๋งŒํผ ๋งŒ๋“ค์–ด์ง€๊ณ  ์ด์ œ ๊ทธ ๊ฐœ์ˆ˜๋“ค์ด x, y ๊ฐ’์— ๋”ฐ๋ผ ์œ„์น˜๊ฐ€ ๋‹ฌ๋ผ์ง€๊ณ  spawn  z ์— ๋”ฐ๋ผ ๊ณ ๊ฐœ๋ฅผ ๋Œ๋ฆฌ๊ฒŒ ๋œ๋‹ค. 

 

์ •๋ฆฌํ•˜๋ฉด ์ด๋ ‡๋‹ค.

 

 

๊ณผ์ œ : ์›์ ์—์„œ ๊ฐ€๋กœ๋“ฑ์„ ์ผ์ • ๋น„์œจ๋กœ (100์ •๋„ ๋–จ์–ด์ง€๊ฒŒ ํ•ด์„œ ์ผ์ •์œ„์น˜๋กœ ๋”ฑ๋”ฑ ๋ฐฐ์—ด์„ ํ•œ๋‹ค. 20๊ฐœ ์ •๋„ ํ•œ๋‹ค๊ณ  ์น˜๋ฉด ์›์ ์„ ๋งŒ๋“ค๊ณ  ๊ทธ ๋‹ค์Œ x ์ถ•์œผ๋กœ 50 ๋–จ์–ด์ ธ์„œ ํ•˜๋‚˜ ๋งŒ๋“ค๊ณ  ๊ทธ๊ฑธ 5๊ฐœ ๋งŒ๋“ค๊ณ  5 ๋งŒ๋“ค๋ฉด y์ถ•์œผ๋กœ ๊ฐ€์„œ ๋‹ค์‹œ 5๊ฐœ ๋งŒ๋“ค๊ณ  ์ญ‰ ๋ฐฐ์—ด์„ ์‹œํ‚จ๋‹ค.  

 

index๋Š” 

๋ช‡๋ฒˆ์งธ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š”์ง€๊ฐ€ ๋‚˜์˜จ๋‹ค. 

 

 

 

Branch ์ด์šฉํ•˜๊ธฐ 

 

์„ ํƒ์„ ๋ณ€์ˆ˜ํ™”

์ด๋ ‡๊ฒŒ ๋ณ€์ˆ˜๋กœ ํ•ด์„œ ๋ฐ–์—์„œ ๋ณ€์ˆ˜์— ๋“ค์–ด๊ฐˆ ์•กํ„ฐ๋‚˜ ์ˆซ์ž๋ฅผ ๋ณ€๊ฒฝํ•ด์„œ ์Šคํฐํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

์ด๋ ‡๊ฒŒ ์ˆœ์„œ๊ฐ€ ๋‚˜์˜ค๋Š”๋ฐ ์ด ์ˆœ์„œ๊ฐ€ 

์—ฌ๊ธฐ ์ˆœ์„œ์ด๋‹ˆ๊นŒ ์—ฌ๊ธฐ์„œ ์ˆœ์„œ ๋ฐ”๊ฟ”์ฃผ๋ฉด ์ €๊ธฐ์„œ๋„ ๋ฐ”๋€๋‹ค. 

 

 

์ด๋ ‡๊ฒŒ ๋งŒ๋“ ๋‹ค. 

 

๋ณ€์ˆ˜๋“ค์ด ์žˆ์œผ๋ฉด ์™ ๋งŒํ•˜๋ฉด ๋ฐ–์œผ๋กœ ๊บผ๋‚ด๋ด

 

 

๋‹ค์ค‘์•กํ„ฐ์ œ์–ด

๋‹ค์ˆ˜์˜ ๋ผ์ดํŠธ ๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ง€๊ณ  ์™€์„œ 

์ด๋ ‡๊ฒŒ ๋ณ€์ˆ˜๋ฅผ ๋‘๋ฉด

์ด๋ ‡๊ฒŒ ๋‚˜์˜ค๋Š”๋ฐ ์—ฌ๊ธฐ์„œ ์ธํ…์Šค ๋ฅผ ์•Œ์•„์„œ ์„ ํƒํ•ด์„œ ๋„ฃ์€ ๊ทธ๊ฒƒ๋“ค๋งŒ ๋ฐ๊ธฐ๋ฅผ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค. 

 

๋‚˜๋Š” ์ด๊ฑธ ์“ธ ๊ฑฐ์•ผ ๊ทผ๋ฐ ์–ด๋–ค๊ฑด์ง€ ๋ชฐ๋ผ ์ผ๋‹จ ์•กํ„ฐ๊ฐ€์ง€๊ณ  ์™€์„œ ๊ทธ๊ฑฐ ๊ฐ€์ง€๊ณ  ๋ญ”๊ฐ€๋ฅผ ํ• ๊ฑฐ์•ผ. ๋„“๊ฒŒ ์žก๊ณ  ๊ฐ€๋Š” ๊ฒƒ. 

 

์šฐ๋ฆฌ ์ž‘์—…์ด ์ผ์ฃผ์ผํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ๋ชจ์…ฅ์บก์ณ๊ฐ€ ์˜ค๋Š˜ ํ•˜๊ณ  ๋๋‚˜๋‹ˆ๊นŒ ์ด๋ ‡๊ฒŒ ์ฐ์–ด์„œ ๊ฐ€์ ธ์˜จ๋‹ค.

 

์œ„ํ—˜ํ•œ ์ด์œ  : ๋ฐฐ์—ด์—”๋ฆฌ๋จผํŠธ์— ์•„๋ฌด๊ฒƒ๋„ ์—†์œผ๋ฉด ์—๋Ÿฌ๊ฐ€ ๋‚œ๋‹ค. 

์Šคํฌ์ดํŠธ๋กœ ๋ ˆ๋ฒจ์—์„œ ์›ํ•˜๋Š” ์•กํ„ฐ๋ฅผ ์„ ํƒํ•˜๋ฉด๋œ๋‹ค. 

 

 

๋”ฐ๋ผ๋‹ค๋‹ˆ๋Š” ์นด๋ฉ”๋ผ ๋งŒ๋“ค๊ธฐ

1. ๋จผ์ € event tick์„ ์‹œ์ž‘ํ•ด์„œ ์˜ฌ๋ผ๊ฐ€์ž๋งˆ์ž ํ˜ธ์ถœ๋˜๋„๋กํ•œ๋‹ค. set World location์„ ์—ฐ๊ฒฐํ•ด์„œ ์‹œ๋„ค ์นด๋ฉ”๋ผ์˜ ์œ„์น˜์— ์˜ํ–ฅ์„ ๋ผ์น˜๊ฒŒํ•œ๋‹ค. 

2. ์ด ์œ„์น˜๋ฅผ ๋”ฐ๋ผ๊ฐˆ ์•กํ„ฐ ์˜ ์œ„์น˜๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” Get Actor Location ์ด๋ผ๋Š” ๊ฒƒ์„ ์‚ฌ์šฉํ•ด์„œ ๋”ฐ๋ผ๊ฐˆ ์•กํ„ฐ์˜ ์œ„์น˜๋ฅผ ๊ฐ€์ ธ์™€์„œ ์ด ์•กํ„ฐ๊ฐ€ ์›€์ง์ด๋ฉด ์นด๋ฉ”๋ผ๋„ ์›€์ง์ด๊ฒŒ ํ•œ๋‹ค. 

3. ํ•˜์ง€๋งŒ ๊ฐ™์ด ๋ฐ”๋กœ ์†์—์„œ ์›€์ง์ด๋ฉด ์•ˆ๋˜๋‹ˆ ์ข€ ๋–จ์–ดํŠธ๋ ค๋†“๊ธฐ ์œ„ํ•ด์„œ ๋งˆ์ด๋„ˆ์Šค๋ฅผ ์—ฐ๊ฒฐ์„ ํ•ด์„œ ๊ทธ๊ฑฐ๋ฅผ ๋ณ€์ˆ˜ํ™”์‹œ์ผœ์„œ '์นด๋ฉ”๋ผ ์œ„์น˜ offset'์„ ํ•ด์„œ ๋””ํ…Œ์ผ ์ฐฝ์—์„œ ๊ธธ์ด๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค. 

 

์บ๋ฆญํ„ฐ ์†Œ์ผ“์— ๋ถ™์–ด์žˆ๋Š” ์นด๋ฉ”๋ผ

 

 

์†Œ์ผ“์œ„์น˜

1. ๋จผ์ € ์†Œ์ผ“์œ„์น˜ ๊ตฌํ•˜๊ธฐ๋ผ๋Š” ์ปค์Šคํ…€์ด๋ฒคํŠธ๋ฅผ ๋งŒ๋“ ๋‹ค.

2. For Each loop๋ผ๊ณ  ๋ฐ˜๋ณต์„ ํ•ด์ฃผ๋Š” ์• ๋ฅผ ์—ฐ๊ฒฐํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ Get all socket Name ๋ชจ๋“  ์†Œ์ผ“์˜ ์ด๋ฆ„์„ ๊ฐ€์ ธ์˜ค๋Š” ์—์˜ ํƒ€์ผ“์€ ๋”ฐ๋ผ๊ฐˆ ์•กํ„ฐ๋ผ๊ณ  ๋‘”๋‹ค. ์•กํ„ฐ์˜ ํƒ€๊ฒŸ์„ ๋”ฐ๋ผ Switch onString ์œผ๋กœ ์ ์–ด์„œ case 1๋ฒˆ์ด ๋Œ๋„๋ก ํ•œ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด