Notice
Recent Posts
Recent Comments
Link
๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก์ „์ฒด ๊ธ€ (1107)

KoreanFoodie's Study

[์–ธ๋ฆฌ์–ผ] ์–ธ๋ฆฌ์–ผ5 ์—์„œ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ฆฌํƒ€๊นƒํ•˜๊ธฐ

IK_Rig ๋ฅผ ์ด์šฉํ•˜๊ธฐ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์‚ฌ์šฉํ•  ๋•Œ, ์Šค์ผˆ๋ ˆํ†ค์ด ๋‹ค๋ฅธ ๊ฒฝ์šฐ ๋ฆฌํƒ€๊นƒ์„ ํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค. ์–ธ๋ฆฌ์–ผ 5์—์„œ๋Š” IK_Rig ์„ ์ด์šฉํ•ด ํฌ์ฆˆ๋“ค์„ ํšจ์œจ์ ์œผ๋กœ ์ˆ˜์ •ํ•˜๋„๋ก ๋งŒ๋“ค์—ˆ๋‹ค. ์œ„์˜ ์›๋ณธ IK_Rig์„ ์ž˜ ๋ณด๋ฉด IK_Retargeting ์— Chain ์ด ์„ค์ •๋˜์–ด ์žˆ๋‹ค. ์™ผํŽธ์˜ Bone Hierarchy ๋ฅผ ์ž˜ ๋ณด๋ฉด์„œ, ์šฐ๋ฆฌ๊ฐ€ ๋ฆฌํƒ€๊นƒํ•˜๊ณ ์žํ•˜๋Š” IK_Rig ์— ๋งž๊ฒŒ ์ฒด์ธ์„ ์„ค์ •ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ์Šค์ผˆ๋ ˆํƒˆ ๋ฉ”์‹œ (์—ฌ๊ธฐ์„œ๋Š” SK_Epic Character) ์— ๊ธฐ๋ฐ˜ํ•œ IK_Rig ์„ ์ƒ์„ฑํ•œ๋‹ค. ์ด๋ฆ„์€IK_Blaster ๋กœ ํ•œ๋‹ค. ๊ทธ ํ›„, ๊ธฐ์กด์˜ IK_Mannequin ๊ณผ ๊ฐ™์€ ์ด๋ฆ„์˜ Chain ๋“ค์„ ๋งŒ๋“ค์–ด ์ฃผ๋ฉด ๋œ๋‹ค. ๋ฐฉ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ๊ทธ ํ›„, IK Retargeter ๋ฅผ ์ƒ์„ฑํ•ด์ค€๋‹ค. Sourc..

Game Dev/Unreal C++ : Study 2022. 5. 18. 00:58
[MiniEssay] ์˜ค์ปฌํŠธํ•™ ๊ฐœ๋ก  ์„œ๋ฌธ

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

[์–ธ๋ฆฌ์–ผ] LAN ๋„คํŠธ์›Œํฌ๋ฅผ ์ด์šฉํ•œ ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด์–ด ๊ฐ„๋‹จ ์„ค์ • (๋ธ”๋ฃจํ”„๋ฆฐํŠธ ํŽธ)

๋ธ”๋ฃจํ”„๋ฆฐํŠธ ๋…ธ๋“œ๋ฅผ ์ด์šฉํ•˜๊ธฐ ThirdPerson Template ์„ ํ™œ์šฉํ•ด ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด์–ด ์„ธํŒ…์„ ํ•ด ๋ณด์ž. StarterPack ์— ์žˆ๋Š” BP_ThirdPersonCharacter ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ๋…ธ๋“œ๋ฅผ ์„ค์ •ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ์ฐธ๊ณ ๋กœ Lobby ๋Š” Default ์„ค์ •์˜ Map ์„ ๋งŒ๋“  ๊ฒƒ์ด๊ณ , Open 13.32.244.36 ์€ Local IPv4 Address ์ด๋‹ค. ๊ทธ ํ›„, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํŒจํ‚ค์ง• ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค์–ด ์ค€๋‹ค. (์•„๋ž˜ Binary Configuration ์€ Development ๋กœ ๋ฐ”๊พธ์–ด ์ค€๋‹ค) ์ด์ œ ์™„๋ฃŒ๋œ exe ํŒŒ์ผ์„ ์ด ์ปดํ“จํ„ฐ์—์„œ ์—ด๊ณ , 1์„ ๋ˆŒ๋Ÿฌ ๋กœ๋น„๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค. ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์—์„œ 2์„ ๋ˆŒ๋Ÿฌ ๋กœ๋น„์— ์ ‘์†ํ•˜๋ฉด, ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด๋ฅผ ์ฆ๊ธธ ์ˆ˜ ์žˆ๋‹ค. ์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค ๋•Œ, Thrid..

Game Dev/Unreal C++ : Study 2022. 5. 17. 15:52
[์–ธ๋ฆฌ์–ผ] ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด์–ด ์„œ๋ฒ„์˜ ์ดํ•ด

๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด์–ด ์„œ๋ฒ„์˜ ์œ ํ˜• peer - to peer ๊ฐ๊ฐ์˜ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์„ธ์…˜์„ ๊ฐ€์ง€๊ณ , ์›€์ง์ž„์ด๋‚˜ ๊ฒŒ์ž„ ๋ฐ์ดํ„ฐ์˜ ๋ณ€๊ฒฝ์ด ์žˆ์„ ๊ฒฝ์šฐ ์—ฐ๊ฒฐ๋œ ๋‹ค๋ฅธ ์„ธ์…˜์˜ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ด๋ฅผ ์ „ํŒŒํ•œ๋‹ค. A ์—์„œ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์บ๋ฆญํ„ฐ๋ฅผ ์›€์ง์˜€๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ, ์›€์ง์ธ ์ขŒํ‘œ๋ฅผ ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์—๊ฒŒ ์ „๋‹ฌํ•˜๊ธฐ ์ „๊นŒ์ง€ ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์—์„œ๋Š” A์˜ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์ด ์กฐํšŒ๋˜์ง€ ์•Š๋Š”๋‹ค. Client - Server Model Client - Server Model ์—์„œ๋Š”, ๊ฐ ํด๋ผ์ด์–ธํŠธ๋“ค์ด ์–ด๋–ค ๋™์ž‘์„ ํ•˜๊ฒŒ ๋˜๋ฉด, ๋ฐ์ดํ„ฐ์˜ ๋ณ€๊ฒฝ์„ Server ๋กœ request ํ•œ๋‹ค. Server ์—์„œ๋Š” ์ •ํ•ฉ์„ฑ์ด ์žˆ๋Š” ์ƒํƒœ๋ฅผ ๊ฐ–๊ณ  ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ๋‹ค๋ฅธ ํด๋ผ์ด์–ธํŠธ๋“ค์—๊ฒŒ ์ „ํŒŒํ•˜๋Š”์‹์œผ๋กœ ์œ„์น˜๋‚˜ ์ƒํƒœ ๋“ฑ์„ ์—…๋ฐ์ดํŠธ ํ•œ๋‹ค. Client - Server Model ์€ ํฌ๊ฒŒ Listen-Serve..

Game Dev/Unreal C++ : Study 2022. 5. 17. 12:37
C++ ๊ธฐ์ดˆ ๊ฐœ๋… 15-5 : ์“ฐ๋ ˆ๋“œํ’€(ThreadPool) ๋งŒ๋“ค๊ธฐ

๋ชจ๋‘์˜ ์ฝ”๋“œ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ํ•ต์‹ฌ ๋‚ด์šฉ์„ ๊ฐ„์ถ”๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ชจ๋‘์˜ ์ฝ”๋“œ์˜ ์”น์–ด๋จน๋Š” C++ ๊ฐ•์ขŒ๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”! ThreadPool ๊ฐ„๋‹จ ์š”์•ฝ ThreadPool ์— ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ์ž‘์—…์„ ์ถ”๊ฐ€ํ•˜๋ฉด, ์“ฐ๋ ˆ๋“œํ’€์— ์žˆ๋Š” ์“ฐ๋ ˆ๋“œ๊ฐ€ ์ด๋ฅผ ๋งก์•„ ์ž‘์—…ํ•˜๊ฒŒ ๋œ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” ์“ฐ๋ ˆ๋“œ์— ์ƒˆ๋กœ์šด ์ž‘์—…์„ ์ถ”๊ฐ€ํ•˜๋Š” ์ผ์„ queue ๋ฅผ ํ†ตํ•ด ์ฒ˜๋ฆฌํ•œ๋‹ค. ์ด๊ณณ์˜ ๊ตฌํ˜„์„ ๊ธฐ์ดˆ๋กœ ํ•˜์—ฌ ์ž‘์„ฑํ–ˆ๋‹ค. ๋ชจ๋“  ์“ฐ๋ ˆ๋“œ๊ฐ€ ์ž‘์—…์ค‘์ด์–ด๋„ ์ƒˆ๋กœ์šด ์ž‘์—…์„ ์ถ”๊ฐ€ํ•ด๋„ ์ƒ๊ด€์—†๋‹ค! ํด๋ž˜์Šค ์„ค๊ณ„ํ•˜๊ธฐ ๋จผ์ € ์“ฐ๋ ˆ๋“œ๋“ค์„ ๋ณด๊ด€ํ•  ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. // ์ด Worker ์“ฐ๋ ˆ๋“œ์˜ ๊ฐœ์ˆ˜. size_t num_threads_; // Worker ์“ฐ๋ ˆ๋“œ๋ฅผ ๋ณด๊ด€ํ•˜๋Š” ๋ฒกํ„ฐ. std::vector worker_threads_; ํŽธ์˜์ƒ, ์“ฐ๋ ˆ๋“œํ’€์—์„œ ๋Œ์•„๊ฐ€๋Š” ์“ฐ๋ ˆ๋“œ๋“ค์„ ..

Tutorials/C++ : Beginner 2022. 4. 21. 14:10
C++ ๊ธฐ์ดˆ ๊ฐœ๋… 15-4 : future, promise, packaged_task, async

๋ชจ๋‘์˜ ์ฝ”๋“œ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ํ•ต์‹ฌ ๋‚ด์šฉ์„ ๊ฐ„์ถ”๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ชจ๋‘์˜ ์ฝ”๋“œ์˜ ์”น์–ด๋จน๋Š” C++ ๊ฐ•์ขŒ๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”! ๋™๊ธฐ์™€ ๋น„๋™๊ธฐ C++ ์ฝ”๋“œ๋Š” ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํŒŒ์ผ์„ ์ฝ๊ณ , ์ฝ์€ ํŒŒ์ผ๋กœ ์–ด๋–ค ์ž‘์—…์„ ํ•˜๊ณ , ๋งˆ์ง€๋ง‰์œผ๋กœ ํŒŒ์ผ๊ณผ ๊ด€๊ณ„์—†๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด์ž. ์ด ๊ฒฝ์šฐ, ํŒŒ์ผ๊ณผ ๊ด€๊ณ„์—†๋Š” ์ž‘์—…์„ ํ•˜๊ธฐ ์œ„ํ•ด ํŒŒ์ผ์„ ์ฝ๊ธฐ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผ ํ•˜๋Š” ์ง€์—ฐ ์‹œ๊ฐ„์ด ์กด์žฌํ•œ๋‹ค. ์ด์ „์— ๋ฐฐ์šด ์“ฐ๋ ˆ๋“œ๋ฅผ ์ด์šฉํ•˜๋ฉด ์ด ์ž‘์—…์„ ๋น„๋™๊ธฐ์ ์œผ๋กœ ๋ฐ”๊พธ์–ด ์ค„ ์ˆ˜๋„ ์žˆ๋‹ค. void file_read(string* result) { string txt = read("a.txt"); *result = do_something_with_txt(txt); } int main() { string result; t..

Tutorials/C++ : Beginner 2022. 4. 20. 14:19