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

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

KoreanFoodie's Study

C++ ๊ธฐ์ดˆ ๊ฐœ๋… 10-4 : C++ ๋ฌธ์ž์—ด์˜ ๋ชจ๋“  ๊ฒƒ (string๊ณผ string_view)

๋ชจ๋‘์˜ ์ฝ”๋“œ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ํ•ต์‹ฌ ๋‚ด์šฉ์„ ๊ฐ„์ถ”๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ชจ๋‘์˜ ์ฝ”๋“œ์˜ ์”น์–ด๋จน๋Š” C++ ๊ฐ•์ขŒ๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”! std::string std::string ์ด๋ž€ ๋ฌด์—‡์ผ๊นŒ? ์‚ฌ์‹ค std::string ์€ basic_string์ด๋ผ๋Š” ํด๋ž˜์Šค ํ…œํ”Œ๋ฆฟ์˜ ์ธ์Šคํ„ด์Šคํ™” ๋ฒ„์ „์ด๋‹ค. basic_string definition ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค : template class basic_string; Traits ๋Š” ์ฃผ์–ด์ง„ CharT ๋ฌธ์ž๋“ค์— ๋Œ€ํ•ด ๊ธฐ๋ณธ์ ์ธ ๋ฌธ์ž์—ด ์—ฐ์‚ฐ๋“ค์„ ์ •์˜ํ•ด ๋†“์€ ํด๋ž˜์Šค๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ, Traits๋ฅผ ๋ฐ”๊พธ๋ฉด ์ •๋ ฌ ์ˆœ์„œ๋ฅผ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋Š” ๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์กฐ์ž‘์„ ํ•  ์ˆ˜ ์žˆ๋‹ค! ๋‹ค์‹œ ๋งํ•ด, basic_string ์— ์ •์˜๋œ ๋ฌธ์ž์—ด ์—ฐ์‚ฐ๋“ค์€ ์‚ฌ์‹ค ์ „๋ถ€ Traits ์˜ ๊ธฐ๋ณธ์ ์ธ ๋ฌธ์ž์—ด ์—ฐ์‚ฐ๋“ค์„ ๊ฐ€์ง€๊ณ  ..

Tutorials/C++ : Beginner 2022. 4. 18. 17:07
C++ ๊ธฐ์ดˆ ๊ฐœ๋… 10-3 : STL ์•Œ๊ณ ๋ฆฌ์ฆ˜ (STL algorithm)

๋ชจ๋‘์˜ ์ฝ”๋“œ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ํ•ต์‹ฌ ๋‚ด์šฉ์„ ๊ฐ„์ถ”๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ชจ๋‘์˜ ์ฝ”๋“œ์˜ ์”น์–ด๋จน๋Š” C++ ๊ฐ•์ขŒ๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”! STL algorithm STL algorithm ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” STL ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฐ ํ•„์š”ํ•œ ํŽธ๋ฆฌํ•œ ๋ฉ”์†Œ๋“œ๋“ค์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋‹ค. STL ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์žˆ๋Š” ํ•จ์ˆ˜๋“ค์€ ๋Œ€์ฒด๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‘ ๊ฐ€์ง€ ํ˜•ํƒœ๋ฅผ ๋„๊ณ  ์žˆ๋‹ค. template void do_something(Iter begin, Iter end); template void do_something(Iter begin, Iter end, Pred pred); ๋‘ ๋ฒˆ์งธ์˜ Pred ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ bool ์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜ ๊ฐ์ฒด(Funtor) ๊ฐ€ ์ „๋‹ฌ๋œ๋‹ค. ์ •๋ ฌ (sort, stable_sort, partial_sort ์ •๋ ฌ์€ ..

Tutorials/C++ : Beginner 2022. 4. 18. 15:15
์–ธ๋ฆฌ์–ผ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ ˆ์ด์–ด (Layered Animation), ๋ณธ๋งˆ๋‹ค ๋ ˆ์ด์–ด๋กœ ๋ธ”๋ Œ๋”ฉ (Layered Blend Per Bone)

์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ ˆ์ด์–ด ์–ธ๋ฆฌ์–ผ์—์„œ๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜ ๊ฐ„์˜ ์ž์—ฐ์Šค๋Ÿฌ์šด ์ „ํ™˜์„ ์œ„ํ•ด ๋ธ”๋ Œ๋“œ ์ŠคํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋งŒ์•ฝ UpperBody ๋งŒ ์ด์„ ๋“œ๋Š” ๋ชจ์…˜์„ ์žฌ์ƒํ•˜๊ณ  ์‹ถ๋‹ค๊ณ  ํ•˜์ž. ๋ธ”๋ Œ๋“œ ์ŠคํŽ˜์ด์Šค๋ฅผ ์ด์šฉํ•ด ํŠน์ • ๋ถ€์œ„๋งŒ ๋™์ž‘์„ ๋ฐ”๊พธ๋Š” ๋“ฑ์˜ ๊ธฐ๋Šฅ๋„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์„๊นŒ? ์–ธ๋ฆฌ์–ผ์—์„œ๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ ˆ์ด์–ด๋ฅผ ํ™œ์šฉํ•ด ์œ„์˜ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฐฉ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. 1. ๋จผ์ € ๋ธ”๋ Œ๋“œํ•  ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์„ ํƒํ•œ๋‹ค. 2. ๊ฒŒ์ž„ ๋ชจ๋“œ์˜ Default Pawn Class ๋ฅผ ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•  ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ํƒ€๊นƒ๋œ ์Šค์ผˆ๋ ˆํ†ค์œผ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค. 3. ์• ๋‹˜ ๋ชฝํƒ€์ฃผ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. 4. ์• ๋‹˜ ๋ชฝํƒ€์ฃผ์—์„œ ๋‹๋ณด๊ธฐ ํด๋ฆญ ํ›„, ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ์Šฌ๋กฏ์œผ๋กœ ์ง€์ •ํ•œ๋‹ค. 5. ์Šฌ๋กฏ์ด ์—†์„ ๊ฒฝ์šฐ ์ƒˆ๋กœ ์ƒ์„ฑํ•œ๋‹ค. 6. ์›ํ•˜๋Š” ์Šฌ๋กฏ์„ ์ง€์ •ํ•œ๋‹ค. 7. ์• ๋‹˜ ๊ทธ๋ž˜ํ”„๋กœ ์ด๋™ํ•œ๋‹ค. 8...

Game Dev/Unreal C++ : Study 2022. 4. 6. 20:08
์–ธ๋ฆฌ์–ผ ๋ธ”๋ Œ๋“œ ์ŠคํŽ˜์ด์Šค (Blendspace)

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

Game Dev/Unreal C++ : Study 2022. 4. 6. 20:08
์–ธ๋ฆฌ์–ผ ์ฝ”์–ด ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ (Core Redirect)

์ฝ”์–ด ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ๋ž€? ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฉ‹์ง€๊ฒŒ ์™„์„ฑํ–ˆ๋Š”๋ฐ, ๋งŒ์•ฝ ๋ณ€์ˆ˜ ๋ช…์ด๋‚˜ ์• ์…‹ ๋ช…์„ ๋ฐ”๊ฟ”์•ผ ํ•œ๋‹ค๋ฉด ์–ด๋–จ๊นŒ? ํ•ด๋‹น ๋ณ€์ˆ˜๋‚˜ ์• ์…‹์„ ์ฐธ์กฐํ•˜๋Š” ๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ์ „๋ถ€ ํ—ค์ง‘์–ด ๋†“๋Š” ๊ฒƒ์€ ์ƒ๋‹นํ•œ ๋‚ญ๋น„๋ฅผ ์ˆ˜๋ฐ˜ํ•  ๊ฒƒ์ด๋‹ค. ์ด๋ฅผ ์œ„ํ•ด, ์–ธ๋ฆฌ์–ผ์—์„œ๋Š” "๊ธฐ์กด ์ด๋ฆ„ -> ์ƒˆ๋กœ์šด ์ด๋ฆ„" ์„ ํ•œ๋ฒˆ์— ๋ฐ”๊ฟ”์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š”๋ฐ, ๊ทธ๊ฒƒ์ด ๋ฐ”๋กœ '์ฝ”์–ด ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ' ์ด๋‹ค. ์ฝ”์–ด ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ๋Š” DefaultEngine.ini ํŒŒ์ผ์ด๋‚˜, Default.ini ํŒŒ์ผ ๋“ฑ์— ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค. ์˜ˆ์‹œ๋ฅผ ๋ณด์ž. [CoreRedirects] +ClassRedirects=(OldName="Pawn",NewName="MyPawn",InstanceOnly=true) +ClassRedirects=(OldName="/Script/MyModule.MyOldClass",NewN..

Game Dev/Unreal C++ : Study 2022. 4. 4. 13:40