[Unreal][C++] AI ์บ๋ฆญํ„ฐ
ยท
๐Ÿ“ Game/โœ Unreal
ํ”Œ๋ ˆ์ด์–ด๋ฅผ ์ถ”์ ํ•˜๋Š” ์  ์บ๋ฆญํ„ฐ๋ฅผ ๋งŒ๋“ค์–ด ๋ณผ ๊ฒƒ์ด๋‹ค. 1. Character ํด๋ž˜์ŠคCharacter ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›๋Š” C++ ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. Character ํด๋ž˜์Šค๋Š” Pawn ํด๋ž˜์Šค์˜ ์ž์‹์œผ๋กœ ์ด์กฑ ๋ณดํ–‰๊ณผ ๊ฐ™์€ ์•„๋ฐ”ํƒ€์— ์‚ฌ์šฉ๋œ๋‹ค. ์ƒ์„ฑํ•œ Character ํด๋ž˜์Šค๋ฅผ ๋ฒ ์ด์Šค๋กœ ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ๊ทธ ํ›„ ์Šค์ผˆ๋ ˆํƒˆ ๋ฉ”์‹œ, ๋จธํ„ฐ๋ฆฌ์–ผ, ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ ์šฉ ๋ฐฉ๋ฒ•์€ ์ด ๊ธ€์„ ์ฐธ๊ณ ํ•˜๋ฉด ๋œ๋‹ค.   2. AI Controller ํด๋ž˜์Šค์–ธ๋ฆฌ์–ผ ์—”์ง„์—์„œ๋Š” ์บ๋ฆญํ„ฐ๋Š” controller์˜ ์ง€๋ฐฐ๋ฅผ ๋ฐ›๋Š”๋‹ค. ํ”Œ๋ ˆ์ด์–ด ์บ๋ฆญํ„ฐ๋Š” Player Controller์— ๋น™์˜๋˜๊ณ  ๋™์ผํ•˜๊ฒŒ AI ์บ๋ฆญํ„ฐ๋„ AI Controller์— ๋น™์˜๋˜๊ฒŒ ๋œ๋‹ค. ์ง€๊ธˆ์€ AI ์บ๋ฆญํ„ฐ๋ฅผ ๊ตฌํ˜„ ์ค‘์ด๋‹ˆ AI Controller๋ฅผ ์ƒ์†๋ฐ›๋Š” C++ ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•œ..
[Unreal][C++] ์•„์ดํ…œ ํš๋“, ์ฐฉ์šฉ
ยท
๐Ÿ“ Game/โœ Unreal
์บ๋ฆญํ„ฐ์— ์žฅ์ฐฉ ๊ฐ€๋Šฅํ•œ ์•„์ดํ…œ์„ ํš๋“ํ•œ ํ›„ ์ฐฉ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ตฌํ˜„ํ•  ๊ฒƒ์ด๋‹ค. 1. ์•„์ดํ…œ ์ƒ์„ฑ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ ์•„์ดํ…œ์„ ๊ด€๋ฆฌํ•  Base C++ Class๋ฅผ ์ƒ์„ฑํ–ˆ๋‹ค. ์ด ํด๋ž˜์Šค์—์„  ํƒ€์ž…, ๋ ˆ๋ฒจ, ๋จธํ„ฐ๋ฆฌ์–ผ, ์ฝœ๋ฆฌ์ „ ๋“ฑ ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉ๋  ๊ธฐ๋Šฅ๋“ค์„ ๊ด€๋ฆฌํ•œ๋‹ค. ๊ฐ ์•„์ดํ…œ๋งˆ๋‹ค ๋‹ค๋ฅด๊ฒŒ ๊ตฌํ˜„๋˜์–ด์•ผ ํ•˜๋Š” ๊ฒƒ(์Šคํƒœํ‹ฑ ๋ฉ”์‹œ ๋“ฑ)๋“ค์€ ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๊ทธ ์•ˆ์—์„œ ๊ด€๋ฆฌ๋˜๋„๋ก ๋ฐฉํ–ฅ์„ ์žก์•˜๋‹ค. ์•„์ดํ…œ๋งˆ๋‹ค ํƒ€์ž…์ด ๋‹ค๋ฅด๊ณ , ๊ฐ™์€ ํƒ€์ž…์˜ ์•„์ดํ…œ์ด๋ผ๋„ ๋ ˆ๋ฒจ์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ํƒ€์ž…๊ณผ ๋ ˆ๋ฒจ์„ ์„ ์–ธํ–ˆ๋‹ค. UENUM(BlueprintType)enum class EItemType : uint8{ HAT, BAG, KEY, GADGET, MAX};UPROPERTY(EditAnywhere)EItemType Type = EItemType::HAT;UPR..
[Unreal][C++] ํ”Œ๋ ˆ์ด์–ด ์บ๋ฆญํ„ฐ
ยท
๐Ÿ“ Game/โœ Unreal
Character ํด๋ž˜์Šค๋ฅผ ํ™•์žฅํ•ด์„œ ํ”Œ๋ ˆ์ด์–ด์˜ ์ž…๋ ฅ์— ๋ฐ˜์‘ํ•˜๋Š” ์บ๋ฆญํ„ฐ๋ฅผ ๋งŒ๋“ค์–ด ๋ณผ ๊ฒƒ์ด๋‹ค. 1. Character ํด๋ž˜์ŠคCharacter ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›๋Š” C++ ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. Character ํด๋ž˜์Šค๋Š” Pawn ํด๋ž˜์Šค์˜ ์ž์‹์œผ๋กœ ์ด์กฑ ๋ณดํ–‰๊ณผ ๊ฐ™์€ ์•„๋ฐ”ํƒ€์— ์‚ฌ์šฉ๋œ๋‹ค.  ์ด์ œ ์ด ์บ๋ฆญํ„ฐ ํด๋ž˜์Šค์— 3์ธ์นญ ์นด๋ฉ”๋ผ๋ฅผ ๋ถ™์ผ ๊ฒƒ์ด๋‹ค. UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Camera, meta = (AllowPrivateAccess = "true"))USpringArmComponent* CameraBoom;UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Camera, meta = (AllowP..
[Unreal][C++] 1์ธ์นญ ์ŠˆํŒ… ํŠœํ† ๋ฆฌ์–ผ
ยท
๐Ÿ“ Game/โœ Unreal
1์ธ์นญ ์ŠˆํŒ… ํŠœํ† ๋ฆฌ์–ผhttps://docs.unrealengine.com/5.3/ko/first-person-shooter-tutorial-in-unreal-engine/ ์ผ์ธ์นญ ์ŠˆํŒ… C++ ํŠœํ† ๋ฆฌ์–ผ์ผ์ธ์นญ ์ŠˆํŒ… ๊ฒŒ์ž„ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›Œ๋ด…๋‹ˆ๋‹ค.docs.unrealengine.com 1. ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑํ•˜๊ธฐ1) ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์ƒˆ ํ”„๋กœ์ ํŠธ ๋‚ด ๋งต์„ ์ƒ์„ฑํ•˜๊ณ , ๊ทธ ๋งต์„ ์—๋””ํ„ฐ ์‹œ์ž‘ ๋งต์œผ๋กœ ์ง€์ •ํ•œ๋‹ค. ๊ฒŒ์ž„ ํ”„๋กœ์ ํŠธ ์นดํ…Œ๊ณ ๋ฆฌ ๋‚ด ๊ธฐ๋ณธ(Blank) ํ…œํ”Œ๋ฆฟ ์„ ํƒC++ ํ”„๋กœ์ ํŠธ ํƒ€์ž… ์„ ํƒ์‹œ์ž‘์šฉ ์ฝ˜ํ…์ธ  ๋น„ํ™œ์„ฑํ™”ํ”„๋กœ์ ํŠธ ์ด๋ฆ„ FPSProject ์ง€์ • FPS ๋งต ์ƒ์„ฑํ”„๋กœ์ ํŠธ ์„ธํŒ…์—์„œ ์—๋””ํ„ฐ ์‹œ์ž‘ ๋งต ์„ค์ • 2) ๊ฒŒ์ž„๋ชจ๋“œ C++ ํด๋ž˜์Šค๋ฅผ ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ํด๋ž˜์Šค๋กœ ํ™•์žฅํ•˜๊ธฐ๊ฒŒ์ž„๋ชจ๋“œ C++ ํด๋ž˜์Šค๋ฅผ ๋ฒ ์ด์Šค๋กœ ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•œ ..
[Unreal][Lyra] ํ–ฅ์ƒ๋œ ์ž…๋ ฅ
ยท
๐Ÿ“ Game/โœ Unreal
1. ํ–ฅ์ƒ๋œ ์ž…๋ ฅํ–ฅ์ƒ๋œ ์ž…๋ ฅ์€ ๋ณต์žกํ•œ ์ž…๋ ฅ ์ฒ˜๋ฆฌ์™€ ์‹ค์‹œ๊ฐ„ ์ž…๋ ฅ ๋ฆฌ๋งคํ•‘์„ ์œ„ํ•œ ์ž…๋ ฅ ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ์ด๋‹ค.๋น ๋ฅธ ๋ฐ˜๋ณต ์ž‘์—…๊ณผ ๋ชจ๋“ˆ์„ฑ์• ์…‹ ๊ธฐ๋ฐ˜ ํ™˜๊ฒฝ์—์„œ ์›์‹œ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ํ•„ํ„ฐ๋ง ๋ฐ ์ฒ˜๋ฆฌ๋ฅผ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ ์ œ๊ณต ํ–ฅ์ƒ๋œ ์ž…๋ ฅ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด, ํ”Œ๋Ÿฌ๊ทธ์ธ ํ™œ์„ฑํ™” ๋ฐ ์ž…๋ ฅ ์„ธํŒ…์„ ๋ณ€๊ฒฝํ•ด์•ผ ํ•œ๋‹ค.  1) ์ž…๋ ฅ ์•ก์…˜(Input Actions)์ž…๋ ฅ ์•ก์…˜์€ ํ–ฅ์ƒ๋œ ์ž…๋ ฅ ์‹œ์Šคํ…œ๊ณผ ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ ์‚ฌ์ด์˜ ํ†ต์‹  ๋งํฌ์ด๋‹ค.์ƒํ˜ธ์ž‘์šฉ ์บ๋ฆญํ„ฐ์˜ ์–ด๋–ค ํ–‰๋™์ด๋“  ์ž…๋ ฅ ์•ก์…˜์ด ๋  ์ˆ˜ ์žˆ๋‹ค.์ค๊ธฐ(on/off), ๊ฑท๊ธฐ(์ถ•) ๋“ฑ ์•ก์…˜ ํŠน์ง•์— ๋”ฐ๋ผ ์ž…๋ ฅ ๊ฐ’ ํƒ€์ž…์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค.  ํฐ ํด๋ž˜์Šค๊ฐ€ ํŠธ๋ฆฌ๊ฑฐ ๋œ ์ž…๋ ฅ ์•ก์…˜์— ๋ฐ˜์‘ํ•˜๊ฒŒ ํ•˜๋ ค๋ฉด ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ๊ทธ๋ž˜ํ”„์— ์ด๋ฒคํŠธ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•œ๋‹ค. ๊ฐ ์ž…๋ ฅ ์•ก์…˜์€ ํ•ด๋‹นํ•˜๋Š” ์• ์…‹ ์ด๋ฆ„์„ ๊ฐ€์ง„ ์ด๋ฒคํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.  ์ดํ›„ ์ž…๋ ฅ ..
[Unreal][Lyra] ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ์–ด๋นŒ๋ฆฌํ‹ฐ ์‹œ์Šคํ…œ
ยท
๐Ÿ“ Game/โœ Unreal
1. ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ์–ด๋นŒ๋ฆฌํ‹ฐ ์‹œ์Šคํ…œGAS(Gameplay Ability System)๋Š” ์–ด๋นŒ๋ฆฌํ‹ฐ ๋ฐ ์–ดํŠธ๋ฆฌ๋ทฐํŠธ ์œ ํ˜•์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค.๋น ๋ฅธ ๋ฐ˜๋ณต ์ž‘์—…๊ณผ ๋ชจ๋“ˆ์„ฑ: ์ ํ”„์ฒ˜๋Ÿผ ๋‹จ์ˆœํ•œ ๊ฒƒ๋ถ€ํ„ฐ ๊ธฐ์ˆ  ๋ชจ์Œ์ฒ˜๋Ÿผ ๋ณต์žกํ•œ ๊ฒƒ๊นŒ์ง€ ๋‹ค์–‘ํ•œ ์ธ๊ฒŒ์ž„ ์–ด๋นŒ๋ฆฌํ‹ฐ๋ฅผ ์„ค๊ณ„ ๋ฐ ๊ตฌํ˜„ํ•˜๊ณ  ํšจ๊ณผ์ ์œผ๋กœ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.๋„คํŠธ์›Œํฌ ๋ฆฌํ”Œ๋ฆฌ์ผ€์ด์…˜ GAS์˜ ์ฃผ์š” ๊ฐœ๋…์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์–ด๋นŒ๋ฆฌํ‹ฐ ์‹œ์Šคํ…œ ์ปดํฌ๋„ŒํŠธ(Ability System Component)๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ์–ด๋นŒ๋ฆฌํ‹ฐ ์‹œ์Šคํ…œ๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ์•กํ„ฐ์— ๋ถ™๋Š” ์ปดํฌ๋„ŒํŠธ์ด๋‹ค.์–ด๋นŒ๋ฆฌํ‹ฐ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ณ , ์–ดํŠธ๋ฆฌ๋ทฐํŠธ๋ฅผ ์ €์žฅํ•˜๊ณ , ์ดํŽ™ํŠธ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ณ , ์•กํ„ฐ ๊ฐ„ ์ƒํ˜ธ์ž‘์šฉ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ์–ด๋นŒ๋ฆฌํ‹ฐ(Gameplay Abilities)UGameplayAbility ํด๋ž˜์Šค์˜ C++ ๋˜๋Š” ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ์ž์†์ด๋‹ค.ํŠน์ •..