๊ธ€

{{ label!='' ? 'Label : ' : (q!='' ? '๊ฒ€์ƒ‰ : ' : '์ „์ฒด ๊ฒŒ์‹œ๊ธ€') }} {{ label }} {{ q }} {{ ('('+(pubs|date:'yyyy-MM')+')') }}

[๊ฒŒ์ž„ ๋ฆฌ๋ทฐ] Rubinite ๋ฆฌ๋ทฐ

์ด๋ฏธ์ง€
<Rubinite>   ๋ณด์Šค ๋Ÿฌ์‹œ๋Š” ์‰ฝ๊ฒŒ ๋งŒ๋“ค์–ด์ง€๊ธฐ ์–ด๋ ค์šด ์žฅ๋ฅด์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ณ„ ๋ณด์Šค๋งˆ๋‹ค ํŒจํ„ด๊ณผ ์—ฐ์ถœ, ์ „ํˆฌ ํ๋ฆ„์„ ์ƒˆ๋กญ๊ฒŒ ์„ค๊ณ„ํ•ด์•ผ ํ•˜๋Š” ๋ฐ˜๋ฉด, ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์ฒด๊ฐํ•˜๋Š” ์ „์ฒด ํ”Œ๋ ˆ์ดํƒ€์ž„์€ ์งง์•„์ง€๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. ์ถฉ๋ถ„ํ•œ ์ฝ˜ํ…์ธ ๋ฅผ ๋งˆ๋ จํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ œ์ž‘ ๋น„์šฉ์— ๋น„ํ•ด ๋ณผ๋ฅจ์„ ํ™•๋ณดํ•˜๊ธฐ ์–ด๋ ต๊ณ , ์ „ํˆฌ ๋ช‡ ๊ฐœ์˜ ์™„์„ฑ๋„๊ฐ€ ๊ฒŒ์ž„ ์ „์ฒด์˜ ํ‰๊ฐ€๋ฅผ ์ขŒ์šฐํ•œ๋‹ค๋Š” ๋ถ€๋‹ด๋„ ํฌ์ฃ .   ๊ทธ๋ž˜์„œ์ธ์ง€ ์ˆœ์ˆ˜ํ•œ ๋ณด์Šค ๋Ÿฌ์‹œ ๊ฒŒ์ž„์„ ์ฐพ์•„๋ณด๊ธฐ ์‰ฝ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ์˜๋ฏธ์—์„œ <Rubinite>๋Š” ๋ฐ˜๊ฐ€์šด ์ž‘ํ’ˆ์ž…๋‹ˆ๋‹ค. ๊ทœ๋ชจ๊ฐ€ ํฌ์ง€๋Š” ์•Š์ง€๋งŒ ์ž์‹ ์ด ์–ด๋–ค ์ „ํˆฌ๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  ์‹ถ์€์ง€ ๋ถ„๋ช…ํžˆ ์•Œ๊ณ  ์žˆ์œผ๋ฉฐ, ๊ทธ ๋ฐฉํ–ฅ์„ ๋Œ€๋ถ€๋ถ„์˜ ๋ณด์Šค์ „์—์„œ ์ผ๊ด€๋˜๊ฒŒ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๋ช…ํ™•ํ•œ ๋ฌธ๋ฒ•์˜ ์ „ํˆฌ ์ง‘์ค‘ ์‹œ์Šคํ…œ์„ ์ด์šฉํ•œ ํŒจ๋ง์„ ์ฃผ ์ „ํˆฌ ์ˆ˜๋‹จ์œผ๋กœ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค.   ๋ณด์Šค ๋Ÿฌ์‹œ ๊ฒŒ์ž„์—์„œ๋Š” ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์ ๊ณผ ์‹ธ์›Œ์•ผ ํ•˜๋Š”์ง€๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ์ œ์‹œํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.   ์†Œ์šธ๋ผ์ดํฌ์™€ ๊ฐ™์€ ์•ก์…˜ RPG๋Š” ์‚ฌ์ •์ด ์กฐ๊ธˆ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. RPG์ ์ธ ์„ฑ์žฅ ์š”์†Œ๋ฅผ ๊ฐ–์ถ”๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์–‘ํ•œ ํ”Œ๋ ˆ์ด ์Šคํƒ€์ผ์„ ๋ฐ›์•„๋“ค์ผ ํ•„์š”๊ฐ€ ์žˆ์ฃ . ์›๊ฑฐ๋ฆฌ์—์„œ ์•ˆ์ •์ ์œผ๋กœ ํ”ผํ•ด๋ฅผ ๋ˆ„์ ํ•  ์ˆ˜๋„ ์žˆ๊ณ , ํŒจ๋ง์ด๋‚˜ ๊ธด ์„ ๋”œ๋ ˆ์ด๋ฅผ ๊ฐ€์ง„ ๊ณต๊ฒฉ์„ ํ™œ์šฉํ•ด ์œ„ํ—˜์„ ๊ฐ์ˆ˜ํ•˜๋ฉด์„œ ๋น ๋ฅด๊ฒŒ ์ „ํˆฌ๋ฅผ ๋๋‚ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌด๊ธฐ์™€ ๋Šฅ๋ ฅ์น˜, ์žฅ๋น„ ์„ ํƒ์„ ํ†ตํ•ด ์ž์‹ ์—๊ฒŒ ๋งž๋Š” ๋ฐฉ์‹์„ ์ฐพ๋Š” ๊ณผ์ • ์ž์ฒด๊ฐ€ ๊ฒŒ์ž„์˜ ์ค‘์š”ํ•œ ์š”์†Œ์ž…๋‹ˆ๋‹ค.   ๋ฐ˜๋ฉด ๋ณด์Šค ๋Ÿฌ์‹œ๋Š” ๋ฐ˜๋“œ์‹œ ๊ฐ™์€ ์ •๋„์˜ ์ž์œ ๋„๋ฅผ ์ œ๊ณตํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์˜คํžˆ๋ ค ๊ฒŒ์ž„์ด ํ•˜๋‚˜์˜ ๋ช…ํ™•ํ•œ ์ „ํˆฌ ๋ฌธ๋ฒ•์„ ์ •ํ•˜๊ณ , ๋ณด์Šค๋“ค์ด ๊ทธ ๋ฌธ๋ฒ•์„ ์–ผ๋งˆ๋‚˜ ๋‹ค์–‘ํ•˜๊ฒŒ ๋ณ€์ฃผํ•˜๋Š”์ง€๊ฐ€ ๋” ์ค‘์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.   <Titan Souls>๋Š” ๋ชจ๋“  ๋ณด์Šค๊ฐ€ ์•ฝ์ ์„ ํ™”์‚ด ํ•œ ๋ฐœ๋กœ ๋งžํžˆ๋ฉด ์“ฐ๋Ÿฌ์ง„๋‹ค๋Š” ๋‹จ์ˆœํ•œ ๊ทœ์น™์„ ์ค‘์‹ฌ์œผ๋กœ ์„ค๊ณ„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. <Furi> ์—ญ์‹œ ํƒ„๋ง‰์„ ํšŒํ”ผํ•˜๋Š” ๊ตฌ๊ฐ„๊ณผ ๊ทผ์ ‘ ํŒจ๋ง์„ ์š”๊ตฌํ•˜๋Š” ๊ตฌ๊ฐ„์„ ์„ ๋ช…ํ•˜๊ฒŒ ๊ตฌ๋ถ„ํ•˜๋ฉฐ ์ž์‹ ์˜ ์ „ํˆฌ ๋ฐฉ์‹์„ ๊ตฌํ˜„ํ•˜์ฃ .   <Rubinite>์—์„œ๋Š” ์ง‘์ค‘ ์‹œ์Šคํ…œ...

[๊ฒŒ์ž„ ๋ฆฌ๋ทฐ] Void Stranger(๋ณด์ด๋“œ ์ŠคํŠธ๋ ˆ์ธ์ €) ๋ฆฌ๋ทฐ

์ด๋ฏธ์ง€
<Void Stranger>  ์†Œ์ฝ”๋ฐ˜์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ๊ฒŒ์ž„๋“ค์€ ๊ณ„์†ํ•ด์„œ ์Ÿ์•„์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ข‹์€ ๊ฒŒ์ž„๋“ค์€ ์—ฌ์ „ํžˆ ๊ฐ์ž์˜ ๋ฐฉ์‹์œผ๋กœ ๊ฐœ์„ฑ์„ ์ฆ๋ช…ํ•ฉ๋‹ˆ๋‹ค. <Void Stranger> ์—ญ์‹œ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. 'Void Rod'๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ํ›Œ๋ฅญํ•œ ํผ์ฆ๋“ค์„ ์„ ๋ณด์ผ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ๊ทธ ๋’ค์— ์ˆจ๊ฒจ์ง„ ์Šคํ† ๋ฆฌ์™€ ๋ฐฉ๋Œ€ํ•œ ์ง€์‹ ๊ธฐ๋ฐ˜ ๊ฒŒ์ž„ ์š”์†Œ๋ฅผ ์กฐํ™”๋กญ๊ฒŒ ๋‹ด์•„๋‚ด์–ด ๋”์šฑ ๋น›๋‚˜๋Š” ์ธก๋ฉด์ด ์žˆ์Šต๋‹ˆ๋‹ค.    ๊ทธ๋Ÿฌ๋‚˜ ๋ถ„๋ช…ํžˆ ํ•ด์•ผ ํ•  ๊ฒƒ์ด ์žˆ๊ฒ ๋„ค์š”.  <Void Stranger>๋Š” ๋ถ„๋ช… ๋ถˆํŽธํ•œ ๊ฒŒ์ž„์ž…๋‹ˆ๋‹ค. ๋‹จ์ˆœํžˆ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— ๋ถˆํŽธํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ ๋ฐ˜๋ณต, ๊ธฐ๋ก, ์‹œํ–‰์ฐฉ์˜ค, ๋ถˆ์นœ์ ˆํ•œ ํ•ด์„์„ ์ƒ๋‹นํžˆ ๋งŽ์ด ์š”๊ตฌํ•œ๋‹ค๋Š” ์ ์—์„œ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ฒŒ์ž„์˜ ๊ฐœ์„ฑ์„ ๊ฐ•ํ™”ํ•˜๋Š” ์š”์†Œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋•Œ๋กœ๋Š” ํ›Œ๋ฅญํ•œ ํผ์ฆ๊ณผ ์„œ์‚ฌ๋ฅผ ๋œ ๋น›๋‚˜๊ฒŒ ๋งŒ๋“ค๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ๋น„์œ ์™€ ์ƒ์ง•๋งŒ ๊ณ ๋ด‰๋ฐฅ์ผ ๋ฟ ์ธ์œ„์ ์ธ ๊ตฌ๋ฉ ์•ˆ์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”?   ์ฃผ์ธ๊ณต Gray๋Š” ์ธ์œ„์ ์œผ๋กœ ๊นŽ์ธ ๋“ฏํ•œ ๊ฐ์ง„ ๊ตฌ๋ฉ ์†์œผ๋กœ ๋ชธ์„ ๋˜์ง‘๋‹ˆ๋‹ค. ์ดํ›„ ๊นŠ์€ ๊ณต๊ฐ„์„ ๋‚ด๋ ค๊ฐ€๋ฉฐ ์—ฌ๋Ÿฌ ์žฅ๋ฉด๊ณผ ๋งˆ์ฃผํ•ฉ๋‹ˆ๋‹ค. ์ค‘๊ฐ„์ค‘๊ฐ„ ๋“ฑ์žฅํ•˜๋Š” ๋‚˜๋ฌด์—์„œ ํœด์‹์„ ์ทจํ•˜๋ฉด ๊ฒŒ์ž„์ด ์ข…๋ฃŒ๋˜๊ณ , ๋‹ค์‹œ ์‹คํ–‰ํ–ˆ์„ ๋•Œ Gray์˜ ๊ณผ๊ฑฐ์™€ ๊ด€๋ จ๋œ ์žฅ๋ฉด๋“ค์ด ์ด์–ด์ง‘๋‹ˆ๋‹ค. ์ด๋Š” <Void Stranger>๊ฐ€ ์„œ์‚ฌ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.   ํผ์ฆ ๊ฒŒ์ž„์—์„œ ์„œ์‚ฌ๋ฅผ ํ’€์–ด๋‚˜๊ฐ€๋Š” ๊ฒƒ์€ ๊ฝค ์–ด๋ ค์šด ์ผ์ž…๋‹ˆ๋‹ค. ๋งŽ์€ ๊ฒŒ์ž„์€ ํผ์ฆ๊ณผ ์„œ์‚ฌ๋ฅผ ๋ถ„๋ฆฌ๋œ ํŠธ๋ž™์ฒ˜๋Ÿผ ๋‹ค๋ฃจ๊ณค ํ•˜์ฃ . <Void Stranger>๋Š” ๊ฒŒ์ž„์˜ ๊ตฌ์กฐ, ๋ฐ˜๋ณต, ๋ฉ”ํƒ€์  ์žฅ์น˜ ์•ˆ์— ์ด์•ผ๊ธฐ๋ฅผ ๋…น์ด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„๊ณผ ์•„์ฃผ ์ž˜ ์–ด์šธ๋ฆฌ๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋•Œ๋กœ๋Š” ์ง๊ด€์ ์ผ ํ•„์š”๋„ ์žˆ๋Š” ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋ช‡๋ช‡ ํ”Œ๋ ˆ์ด์–ด๋“ค์€ ์ค‘์š”ํ•œ ์ •๋ณด๋“ค์„ ๋†“์น˜๊ณ  ๊ฒŒ์ž„์˜ ๊ฒฝํ—˜์„ ๋ง์น  ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.   ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋Š” ํœด์‹์ž…๋‹ˆ๋‹ค. ํœด์‹์„ ํ•˜์ง€ ์•Š์•„๋„ ๋‹น์žฅ ์ง„ํ–‰์ด ๋ง‰ํžˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ”Œ๋ ˆ์ด์–ด๋Š” ์„ ํƒํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด์ฃ . ํ•˜์ง€๋งŒ ์ด๋ฅผ ์ง€๋‚˜์น˜๋ฉด Gray์˜ ๋ฐฐ๊ฒฝ๊ณผ ํ›„๋ฐ˜ ์„œ์‚ฌ๋ฅผ ์ดํ•ดํ•˜๋Š” ๋ฐ ํ•„...

[Unreal Engine] ์ƒํ˜ธ์ž‘์šฉ ํ•˜์ด๋ผ์ดํŠธ ๊ตฌํ˜„

์ด๋ฏธ์ง€
์ƒํ˜ธ์ž‘์šฉ ํ•˜์ด๋ผ์ดํŠธ ์ƒํ˜ธ์ž‘์šฉ์ด ๊ฐ€๋Šฅํ•œ ๋ฒ„ํŠผ์ด ๊ฐ•์กฐ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.    Phil in the Mirror๋Š” 1์ธ์นญ ๊ฒŒ์ž„์œผ๋กœ, ๊ฐ์ข… ๋ฌผ์ฒด์™€ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ์š”. ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ํŠน์ • ๋ฌผ์ฒด์™€ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ์ž„์„ ์•Œ๋ฆฌ๊ธฐ ์œ„ํ•ด, ํ•ด๋‹น ๋ฌผ์ฒด๋ฅผ ๋ฐ”๋ผ๋ณด๋ฉด ๋ฌผ์ฒด๊ฐ€ ๊ฐ•์กฐ๋˜๋Š” ์—ฐ์ถœ์ด ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ตฌํ˜„๋  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ œ๊ฐ€ ๊ตฌํ˜„ํ•œ ๋ฐฉ๋ฒ•์„ ๋ง์”€ ๋“œ๋ฆฌ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฌด์Šจ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”?   ํŠนํžˆ, ์ €๋Š” ๊ฐ•์กฐ๋  ๋•Œ ๊ฐ ๋ฌผ์ฒด๊ฐ€ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ fade-in, fade-out๋˜๋Š” ํšจ๊ณผ๋ฅผ ์›ํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐœ๊ฐ€ ๋™์‹œ์— ๊ฐ•์กฐ๋  ์ˆ˜๋„ ์žˆ๊ณ , ๋งˆ์šฐ์Šค๊ฐ€ ์Šค์น˜๋Š” ์‹œ์ ์— ๋”ฐ๋ผ์„œ ๊ฐ์ž๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ ์ฃผ๊ธฐ๋กœ fade-in, fade-out์ด ๋˜์—ˆ์œผ๋ฉด ํ–ˆ์ฃ . ์ด๋Ÿฐ ํšจ๊ณผ๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค: ๋งˆ์Šคํ„ฐ ๋จธํ‹ฐ๋ฆฌ์–ผ ์ด์šฉํ•˜๊ธฐ   ๋ชจ๋“  ์ƒํ˜ธ์ž‘์šฉ ๊ฐ€๋Šฅํ•œ ๋ฌผ์ฒด๋Š” ๋งˆ์Šคํ„ฐ ๋จธํ‹ฐ๋ฆฌ์–ผ์„ ์‚ฌ์šฉํ•˜๊ณ , ํ•ด๋‹น ๋จธํ‹ฐ๋ฆฌ์–ผ์—์„œ๋Š” ๋จธํ‹ฐ๋ฆฌ์–ผ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ†ตํ•ด ๊ฐ•์กฐ์˜ ์ •๋„๋ฅผ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋งŒ์•ฝ Interactableํ•œ ๊ฐ์ฒด๊ฐ€ ์•ž์— ์žˆ๋‹ค๋ฉด, ํ•ด๋‹น ๊ฐ์ฒด์˜ ๋จธํ‹ฐ๋ฆฌ์–ผ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ 0์—์„œ 1๋กœ ์ ์ง„์ ์œผ๋กœ ์กฐ์ ˆํ•˜๋Š” ๊ฒƒ์ด์ฃ . ์ œ๊ฐ€ ๊ตฌํ˜„ํ•œ ๋ฐฉ๋ฒ•์€ ์ด๊ฒƒ์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์—, ์ž์„ธํ•œ ์ฝ”๋“œ ๋‚ด์šฉ์„ ๋‹ด๊ธฐ๋Š” ์–ด๋ ต์Šต๋‹ˆ๋‹ค๋งŒ ์•„๋งˆ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ์ด๋ฃจ์–ด์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค: APlayerCharacter::CheckHighlight() { if (CanInteract() == false) { return ; } AActor* InteractableActor = GetInteractableActor(); ... InteractableActorDynamicMaterial ->SetScalarParameterValue(FName( "HighlightIntensity" ), FadeValue); }   ๊ทธ๋ฆฌ๊ณ  ๋งˆ์Šคํ„ฐ ๋จธํ‹ฐ๋ฆฌ์–ผ์—์„œ๋Š” HighlightIntensity๋ฅผ ๊ฐ€...

[Unreal Engine] AI ๊ธฐ๋ฐ˜ 10๊ฐœ๊ตญ์–ด ํ˜„์ง€ํ™” ์‚ฌ๋ก€

์ด๋ฏธ์ง€
๋ฒˆ์—ญ์„ ๋งก๊ธธ ๋ˆ์ด ์—†์–ด์š”!  Phil in the Mirror๋Š” 7000+ ๋‹จ์–ด์˜ ํ…์ŠคํŠธ ๋ถ„๋Ÿ‰์„ ๊ฐ€์ง„ ๊ฒŒ์ž„์ด์—ˆ๋Š”๋ฐ์š”. AI๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ๊ตญ์–ด๋ฅผ ํฌํ•จํ•œ 10๊ฐœ๊ตญ์–ด์˜ ๋ฒˆ์—ญ์„ ๋ชฉํ‘œ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ, ์„œ์‚ฌ ๊ธฐ๋ฐ˜์˜ ํผ์ฆ ๊ฒŒ์ž„์ด์—ˆ๋˜ ๋งŒํผ ๋ฒˆ์—ญ ๊ฒ€์ˆ˜์—๋Š” ์‹ ๊ฒฝ์„ ๋งŽ์ด ์ผ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์€์œ ์ ์ธ ํ‘œํ˜„๋“ค๋กœ ํผ์ฆ๋“ค์ด ๊ตฌ์„ฑ๋˜๊ธฐ๋„ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—, ์•ฝ๊ฐ„์˜ ๋‰˜์•™์Šค ์ฐจ์ด๋งŒ์œผ๋กœ๋„ ํผ์ฆ์˜ ๋‚œ์ด๋„๊ฐ€ ์™„์ „ํžˆ ๋‹ฌ๋ผ์งˆ ์—ผ๋ ค๊ฐ€ ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.   ์–ธ๋ฆฌ์–ผ ์—”์ง„์—์„œ๋Š” ํ”„๋กœ์ ํŠธ์˜ ํ…์ŠคํŠธ๋“ค์„ ์ˆ˜์ง‘ํ•˜์—ฌ *.po ํŒŒ์ผ๋กœ exportํ•˜๋Š” ๊ฒƒ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. po ํŒŒ์ผ์˜ ๊ตฌ์„ฑ์€ ๋Œ€๋žต์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ•ญ๋ชฉ๋“ค์˜ ๋‚˜์—ด์ž…๋‹ˆ๋‹ค: #. Key: Content_Init_030 #. SourceLocation: /Game/StringTable/ST_Computer.ST_Computer #: /Game/StringTable/ST_Computer.ST_Computer msgctxt "ST_Computer,Content_Init_030" msgid "๋ชจ๋“ˆ ๋กœ๋”ฉ ์ค‘: ์ž…์›, ์ง„๋‹จ, ์ฒญ๊ตฌ..." msgstr ""   msgctxt์˜ ๊ฒฝ์šฐ ์–ธ๋ฆฌ์–ผ ์—”์ง„์—์„œ StringTable์˜ namespace์ด๊ณ , msgid๋Š” ์›์–ด, msgstr์€ ๋ฒˆ์—ญ๋ณธ์ด ๋ฉ๋‹ˆ๋‹ค. ๊ตฌ์กฐ ์ž์ฒด๋Š” ๊ต‰์žฅํžˆ ๋‹จ์ˆœํ•˜๋ฏ€๋กœ, ์‚ฌ์‹ค ์ด๊ฒƒ๋งŒ์œผ๋กœ๋„ ์ถฉ๋ถ„ํžˆ CLI ๊ธฐ๋ฐ˜ AI๊ฐ€ ๋ฒˆ์—ญํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. msgstr์˜ ๋‚ด์šฉ์„ ์ฑ„์šฐ๋ผ๊ณ  ์‹œํ‚ค๋Š” ๊ฒƒ์ด์ฃ . Gemini CLI๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฒˆ์—ญ์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๋Š” ์“ธ๋งŒํ•˜๊ธด ํ–ˆ์œผ๋‚˜ ์—ฌ๋Ÿฌ ๋ฌธ์ œ๋“ค์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์žฅ๋ถ€ํ˜ธ ์ฒ˜๋ฆฌ   po ํŒŒ์ผ์€ msgctxt, msgid, msgstr์™€ ๊ฐ™์€ key๊ฐ€ ์žˆ๊ณ , ๊ทธ ๋’ค์— ํฐ๋”ฐ์˜ดํ‘œ์™€ ํ•จ๊ป˜ ๋‚ด์šฉ์ด ๋‚˜์˜ค๋Š” ๊ตฌ์กฐ๋ฅผ ๊ฐ–๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋ฒˆ์—ญ ๋‚ด์šฉ ์•ˆ์— ํฐ๋”ฐ์˜ดํ‘œ๊ฐ€ ์žˆ๋‹ค๋ฉด, \"์™€ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” AI๊ฐ€ ์ด๋Ÿฐ ํ˜•ํƒœ์—์„œ ์žฆ์€ ์‹ค์ˆ˜๋ฅผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ์˜ ๊ตฌ์กฐ๋ฅผ ๋ฌด์‹œํ•˜๊ณ  ํฐ๋”ฐ์˜ดํ‘œ ์—†์ด ๋ฒˆ์—ญ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค๋“ ๊ฐ€, \...

[Unreal Engine] ์˜ค๋””์˜ค ์‹œ๊ฐํ™”๋ฅผ ์ด์šฉํ•œ ๋Œ€ํ™” ์—ฐ์ถœ

์ด๋ฏธ์ง€
   Phil in the Mirror์—์„œ๋Š” ์ „ํ™”๋ฅผ ํ†ตํ•ด ๋Œ€ํ™”ํ•˜๋Š” ์žฅ๋ฉด๋“ค์ด ์žˆ๋Š”๋ฐ์š”. ๊ทœ๋ชจ๊ฐ€ ์ž‘์•„ ๋”๋น™์„ ํ•  ์ˆ˜๋„ ์—†๋Š”๋ฐ ๋‹จ์ˆœํžˆ ๋Œ€์‚ฌ๋งŒ ๋– ์žˆ๋Š” ๊ฒƒ์ด ์กฐ๊ธˆ ํ—ˆ์ „ํ•ด, ๋ชฉ์†Œ๋ฆฌ๊ฐ€ ๋“ค๋ฆฌ๋Š” ๋А๋‚Œ์„ ์—ฐ์ถœํ•˜๊ณ ์ž ์†Œ๋ฆฌ์˜ ์‹œ๊ฐํ™”๋ฅผ ํ•จ๊ป˜ ํ•ด์ฃผ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์ฒ˜๋Ÿผ์š”: ๊ฐ€์šด๋ฐ์˜ ์›ํ˜• ํ‘œ์‹œ๋Š” ์Œ์„ฑ์ด ์‹œ๊ฐํ™”๋˜์–ด ๋ณด์—ฌ์ง‘๋‹ˆ๋‹ค.   ์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ž‘์—…๋“ค์ด ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค: ์Œ์„ฑ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์Œ์„ฑ ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐ„์— ๋”ฐ๋ผ ๋ถ„์„ํ•˜์—ฌ, ๊ฐ ์ฃผํŒŒ์ˆ˜ ์˜์—ญ์˜ ํฌ๊ธฐ๊ฐ€ ์–ด๋А์ •๋„ ๋˜๋Š”์ง€ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋ถ„์„๋œ ํฌ๊ธฐ๋ฅผ ํ…์Šค์ฒ˜๋กœ ๊ตฌ์„ฑํ•˜์—ฌ ๋จธํ‹ฐ๋ฆฌ์–ผ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋จธํ‹ฐ๋ฆฌ์–ผ์€ ํ•ด๋‹น ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‹œ๊ฐํ™”๋ฅผ ํ•˜์—ฌ ์œ ์ €์—๊ฒŒ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์Œ์„ฑ ๋ฐ์ดํ„ฐ   ์ƒ์ˆ ํ•˜์˜€๋“ฏ, ์ด ๊ฒŒ์ž„์—๋Š” ๋”๋น™ ๋“ฑ์„ ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ง์ ‘์ ์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์Œ์„ฑ ๋ฐ์ดํ„ฐ๋Š” ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ๋Œ€์‚ฌ ์ž์ฒด๋ฅผ ๋ถ„์„ํ•ด์„œ ์ ˆ์ฐจ์ ์ธ ์ •๋ณด๋ฅผ ์–ป์–ด๋‚ผ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์„๊นŒ ๊ณ ๋ฏผํ•˜์˜€์œผ๋‚˜, ์†Œ ์žก๋Š” ์นผ์„ ์“ฐ๋Š” ๋А๋‚Œ์ด ๋“ค์–ด ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ๊ณ ๋ฏผํ•˜๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ํ•„์š”ํ•œ ์Œ์„ฑ์€ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๋“ค์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋‹จ์ˆœํžˆ ๋ฌด๋ฃŒ TTS ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ๋Œ€์‚ฌ๋“ค์„ ๋งํ•˜๋Š” ์Œ์„ฑ๋“ค์„ ์–ป์–ด๋‚ด ํ™œ์šฉํ•˜๊ธฐ๋กœ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.    ์ด๋ ‡๊ฒŒ ์–ป์€ TTS ์Œ์›์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ถ„์„์ด ํ•„์š”ํ•œ๋ฐ์š”. ํ‘ธ๋ฆฌ์— ๋ณ€ํ™˜์„ ํ†ตํ•ด ๊ฐ ์Œ์—ญ๋Œ€์˜ ์ง„ํญ์„ ์–ป์€ ๋’ค ์ด๋“ค์„ ์ด์šฉํ•ด์„œ ๊ทธ๋ ค๋‚ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์–ธ๋ฆฌ์–ผ ์—”์ง„์—์„œ ์ œ๊ณตํ•˜๋Š” AudioSynesthesia ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ™œ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ํ”Œ๋Ÿฌ๊ทธ์ธ์—์„œ๋Š” ConstantQNRT ์—์…‹ ๋“ฑ์„ ์ง€์›ํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด์„œ ์Œ์›์˜ ํŠน์ • ์‹œ๊ฐ„์—์„œ ๊ฐ ์ฃผํŒŒ์ˆ˜ ์˜์—ญ์˜ ํฌ๊ธฐ๊ฐ€ ์–ด๋А์ •๋„์ธ์ง€ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.   ๋”ฐ๋ผ์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—๋””ํ„ฐ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ์ฃผ์–ด์ง„ TTS ์Œ์›๋“ค์„ ์ž๋™์œผ๋กœ ConstantQNRT ์—์…‹์œผ๋กœ ์ƒ์„ฑํ•˜๋„๋ก ํ•˜์˜€์Šต๋‹ˆ๋‹ค: import unreal def safe_update_or_create_nr...

[Unreal Engine] Custom Slate Widget ๋„์ž… ์‚ฌ๋ก€

์ด๋ฏธ์ง€
Custom Slate Widget   Phil in the Mirror์—์„œ๋Š” ์–ธ๋ฆฌ์–ผ ์—”์ง„ 5์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š” UI ์š”์†Œ ๋ช‡๋ช‡๊ฐ€์ง€๊ฐ€ ํ•„์š”ํ–ˆ๋Š”๋ฐ์š”. ๊ทธ๋Ÿฌํ•œ ์š”์†Œ๋“ค์„ ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค์–ด์„œ ํ•ด๊ฒฐํ–ˆ๋Š”์ง€์— ๋Œ€ํ•ด์„œ ๊ธฐ์ˆ ํ•ด๋ณผ๊นŒ ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ˆœํžˆ ์œ ์ € ์œ„์ ฏ ๋ธ”๋ฃจํ”„๋ฆฐํŠธ๋ฅผ ์ด์šฉํ•œ ์—๋””ํ„ฐ ์ˆ˜์ค€์—์„œ ํ•ด๊ฒฐํ•  ์ˆ˜๋„ ์žˆ์—ˆ์ง€๋งŒ ์ฝ”๋“œ ์ˆ˜์ค€์—์„œ ์ด๋“ค์„ ์ ์ ˆํžˆ ๊ตฌํ˜„ํ•ด์„œ, ์œ ์—ฐํ•จ๊ณผ ์„ฑ๋Šฅ์  ์ด์  ๋ฐ ์‚ฌ์šฉ์„ฑ์„ ์ฑ™๊ธด ์‚ฌ๋ก€๋ฅผ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค. 1) Redact Decorator   Phil in the Mirror์—์„œ ํ”Œ๋ ˆ์ด์–ด๋Š” ๋‹ค์–‘ํ•œ ๋ฌธ์„œ๋“ค์„ ์ฝ๊ณ  ์‚ฌ๊ฑด๋“ค์˜ ๊ด€๊ณ„๋ฅผ ํŒŒ์•…ํ•˜์—ฌ ์ˆจ๊ฒจ์ง„ ๋‚ ์งœ๋“ค์„ ์ถ”๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ค‘์š”ํ•œ ์ •๋ณด๋“ค์€ ๊ฐ€๋ ค๋†“๊ณ , ์ด๋“ค์„ ์ถ”๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ ์—ฌ๊ธฐ์„œ ๊ณ ๋ ค๋˜์–ด์•ผ ํ•  ์‚ฌํ•ญ์ด ์žˆ์—ˆ๋Š”๋ฐ์š”. ๋ฐ”๋กœ ๋กœ์ปฌ๋ผ์ด์ œ์ด์…˜์ž…๋‹ˆ๋‹ค. ํ…์ŠคํŠธ ์ƒ์—์„œ ๊ฐ€๋ ค์งˆ ๋ถ€๋ถ„๋“ค์€ ์–ด๋–ค ์–ธ์–ด์ด๋А๋ƒ์— ๋”ฐ๋ผ์„œ ์œ„์น˜๊ฐ€ ๋‹ฌ๋ผ์ง€๊ณ , ๊ธธ์ด๋„ ๋‹ฌ๋ผ์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ํ•ด๊ฒฐํ•  ํ•„์š”๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํ…์ŠคํŠธ์˜ ์ผ๋ถ€๊ฐ€ ๊ฒ€์ •์ƒ‰์œผ๋กœ ๊ฐ€๋ ค์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.   ๋‹จ์ˆœํžˆ U+2588(█) ๋ฌธ์ž๋ฅผ ์ด์šฉํ•  ์ˆ˜๋„ ์žˆ์—ˆ์ง€๋งŒ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค: 1) ์–ธ์–ด๋งˆ๋‹ค ๊ธ€์ž์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ƒ์ดํ•œ๋ฐ, ์ •๋ง๋กœ ๋ฌธ๋งฅ ์ƒ์˜ ๋‹จ์–ด๊ฐ€ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๊ฐ€๋ ค์ง€๋Š” ๋А๋‚Œ์„ ์—ฐ์ถœํ•˜๊ธฐ ์–ด๋ ค์› ์Šต๋‹ˆ๋‹ค. ๊ฐ€๋ น "์†๊ฐ€๋ฝ ์ ˆ๋‹จ ์‚ฌ๊ณ "์™€ "finger amputation accident"๋Š” ๊ธ€์ž์ˆ˜์˜ ์ฐจ์ด๊ฐ€ ์ปค์„œ, ์–ด๋А ํ•œ์ชฝ ์–ธ์–ด์—์„œ ์–ด์ƒ‰ํ•˜๊ฒŒ ๋ณด์ด๋Š” ์ธก๋ฉด์ด ์žˆ์Šต๋‹ˆ๋‹ค. 2) ์‚ฌ์ด์— ๊ณต๋ฐฑ์ด ์—†์ด ์ด์–ด์ง€๋Š” ๋А๋‚Œ์ด ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค. (███์ฒ˜๋Ÿผ ์ด์–ด์„œ ์จ๋ณด๋ฉด ์‚ฌ์ด์— ์• ๋งคํ•œ ๊ณต๋ฐฑ์ด ๋ณด์ž…๋‹ˆ๋‹ค)   ๋”ฐ๋ผ์„œ ํ…์ŠคํŠธ๊ฐ€ ๋ Œ๋”๋ง๋  ๋•Œ, ํ•ด๋‹น ์˜์—ญ ์œ„์— ๊ฒ€์ •์ƒ‰ ๋ฐ•์Šค๋ฅผ ๊ทธ๋ ค๋‚ผ ํ•„์š”๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” RichTextBlock์˜ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•˜์—ฌ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ •ํ™•ํžˆ๋Š”, Decorator๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด์ฃ . RichTextBlock์€ Decorator๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋Ÿฌํ•œ Decorator๋“ค์€ RichTextBlock์˜ ๋‚ด์šฉ์— ์ ‘๊ทผํ•˜์—ฌ ๋ณธ์ธ์ด ๊พธ๋ฐ€ ์ˆ˜ ์žˆ๋Š” ...