[Unreal][Lyra] ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ์–ด๋นŒ๋ฆฌํ‹ฐ ์‹œ์Šคํ…œ

2023. 11. 26. 16:07ยท๐Ÿ“ Game/โœ Unreal

1. ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ์–ด๋นŒ๋ฆฌํ‹ฐ ์‹œ์Šคํ…œ

GAS(Gameplay Ability System)๋Š” ์–ด๋นŒ๋ฆฌํ‹ฐ ๋ฐ ์–ดํŠธ๋ฆฌ๋ทฐํŠธ ์œ ํ˜•์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค.

  • ๋น ๋ฅธ ๋ฐ˜๋ณต ์ž‘์—…๊ณผ ๋ชจ๋“ˆ์„ฑ: ์ ํ”„์ฒ˜๋Ÿผ ๋‹จ์ˆœํ•œ ๊ฒƒ๋ถ€ํ„ฐ ๊ธฐ์ˆ  ๋ชจ์Œ์ฒ˜๋Ÿผ ๋ณต์žกํ•œ ๊ฒƒ๊นŒ์ง€ ๋‹ค์–‘ํ•œ ์ธ๊ฒŒ์ž„ ์–ด๋นŒ๋ฆฌํ‹ฐ๋ฅผ ์„ค๊ณ„ ๋ฐ ๊ตฌํ˜„ํ•˜๊ณ  ํšจ๊ณผ์ ์œผ๋กœ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋„คํŠธ์›Œํฌ ๋ฆฌํ”Œ๋ฆฌ์ผ€์ด์…˜

 

GAS์˜ ์ฃผ์š” ๊ฐœ๋…์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

GAS ๋ช…์„ธ์„œ

  • ์–ด๋นŒ๋ฆฌํ‹ฐ ์‹œ์Šคํ…œ ์ปดํฌ๋„ŒํŠธ(Ability System Component)
    • ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ์–ด๋นŒ๋ฆฌํ‹ฐ ์‹œ์Šคํ…œ๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ์•กํ„ฐ์— ๋ถ™๋Š” ์ปดํฌ๋„ŒํŠธ์ด๋‹ค.
    • ์–ด๋นŒ๋ฆฌํ‹ฐ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ณ , ์–ดํŠธ๋ฆฌ๋ทฐํŠธ๋ฅผ ์ €์žฅํ•˜๊ณ , ์ดํŽ™ํŠธ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ณ , ์•กํ„ฐ ๊ฐ„ ์ƒํ˜ธ์ž‘์šฉ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.
  • ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ์–ด๋นŒ๋ฆฌํ‹ฐ(Gameplay Abilities)
    • UGameplayAbility ํด๋ž˜์Šค์˜ C++ ๋˜๋Š” ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ์ž์†์ด๋‹ค.
    • ํŠน์ • ์–ด๋นŒ๋ฆฌํ‹ฐ๊ฐ€ ์–ด๋–ค ์—ญํ• ์„ ํ•˜๋Š”์ง€ ์ •์˜ํ•œ๋‹ค.
    • ์–ด๋นŒ๋ฆฌํ‹ฐ์˜ ๋ฆฌํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์ธ์Šคํ„ด์‹ฑ ํ–‰๋™ ๊ฐ™์€ ์š”์†Œ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌ๋˜๋Š”์ง€ ์ •์˜ํ•œ๋‹ค.
    • ์ ํ”„์ฒ˜๋Ÿผ ์˜์›… ๋ฐ์ดํ„ฐ์— ์ด๋ฏธ ์„ ์ฒœ์ ์œผ๋กœ ๋‚ด์žฌ๋˜์–ด ์žˆ์„ ์ˆ˜๋„ ์žˆ๊ณ , ๊ฒŒ์ž„ ํ”ผ์ฒ˜ ๊ฐ™์€ ์•ก์…˜์œผ๋กœ๋ถ€ํ„ฐ ๋ถ€์—ฌ๋ฐ›์„ ์ˆ˜๋„ ์žˆ๊ณ , ๊ฒฝํ—˜์ด๋‚˜ ์žฅ๋น„๋ฅผ ํ†ตํ•ด ํš๋“ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
    • ์–ด๋นŒ๋ฆฌํ‹ฐ ํƒœ์Šคํฌ(Ability Task)๋ฅผ ํ†ตํ•ด ๋น„๋™๊ธฐ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ์–ดํŠธ๋ฆฌ๋ทฐํŠธ(Gameplay Attributes)
    • ๊ฒŒ์ž„์ด๋‚˜ ์•กํ„ฐ์— ํŠน์ •ํ•œ ๋ฐฉ์‹์œผ๋กœ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” FGameplayAttribute ๊ตฌ์กฐ์ฒด์— ์ €์žฅ๋˜๋Š” float ๊ฐ’์ด๋‹ค.
    • ์ƒ๋ช…๋ ฅ, ํž˜, ์ ํ”„ ๋†’์ด, ๊ณต๊ฒฉ ์†๋„์™€ ๊ฐ™์€ ์ผ๋ฐ˜์ ์ธ ๊ฐ’์„ ๋งํ•œ๋‹ค.
  • ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ์ดํŽ™ํŠธ(Gameplay Effects)
    • ์ฆ‰์‹œ ๋˜๋Š” ์ผ์ • ์‹œ๊ฐ„ ๋™์•ˆ ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ์–ดํŠธ๋ฆฌ๋ทฐํŠธ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ์ผ์ • ์‹œ๊ฐ„ ๋™์•ˆ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฒ„ํ”„๋‚˜ ๋””๋ฒ„ํ”„๋กœ ๋ถ€๋ฅธ๋‹ค.
  • ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ํ
    • ์‚ฌ์šด๋“œ, ์‹œ๊ฐ์ ์ธ ์ดํŽ™ํŠธ ๋“ฑ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

2. ๋ผ์ด๋ผ

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

 

์–ด๋–ป๊ฒŒ ์–ด๋นŒ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ•˜๋‚˜๋งŒ ์‚ดํŽด๋ณด์ž. ๋ผ์ด๋ผ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๊ธฐ๋ณธ ๋งต์œผ๋กœ ๋กœ๋“œ๋˜๋ฉฐ ์ด ๋ ˆ๋ฒจ์—๋Š” ๊ฒฝํ—˜์„ ๋กœ๋“œํ•˜๋Š” ์—ฌ๋Ÿฌ ํฌํ„ธ์ด ์žˆ์—ˆ๋‹ค.

 

๊ธฐ๋ณธ ๋งต(Default Map)

 

์ด ๊ฒฝํ—˜์—๋Š” ๊ฒŒ์ž„ ํ”ผ์ฒ˜, ํฐ ๋“ฑ์„ ์„ค์ •ํ•˜์—ฌ ์ƒˆ๋กœ์šด ๊ฒŒ์ž„ ํ”Œ๋ ˆ์ด๊ฐ€ ๊ฐ€๋Šฅํ•˜๋„๋ก ์ง€์›ํ•˜์˜€๋Š”๋ฐ, ์—ฌ๊ธฐ์— ์–ด๋นŒ๋ฆฌํ‹ฐ๋„ ์„ค์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

B_ShooterGame_Elimination ๊ฒฝํ—˜ ์ •์˜ ๋ฐ์ดํ„ฐ ์• ์…‹

 

์•„๋ž˜์™€ ๊ฐ™์ด ์–ด๋นŒ๋ฆฌํ‹ฐ ์„ธํŠธ๋ฅผ ์„ค์ •ํ•˜๋ฉด ๊ฒฝํ—˜ ๋กœ๋“œ ์‹œ ์–ด๋นŒ๋ฆฌํ‹ฐ๋„ ํ•จ๊ป˜ ๋กœ๋“œ๋˜์–ด ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

AbilitySet_Elimination ์–ด๋นŒ๋ฆฌํ‹ฐ ์„ธํŠธ

  • ์ธ๋ฑ์Šค 0: ํŠน์ • ShowLeaderboard Tag๊ฐ€ ๋ฐœ์ƒ๋์„ ๋•Œ, GA_ShowLeaderboard_TDM ์–ด๋นŒ๋ฆฌํ‹ฐ ํ™œ์„ฑํ™”
  • ์ธ๋ฑ์Šค 1: GA_AutoRespawn ์–ด๋นŒ๋ฆฌํ‹ฐ ํ™œ์„ฑํ™”

 

์–ด๋นŒ๋ฆฌํ‹ฐ๋Š” ํ™œ์„ฑํ™”, ๋น„ํ™œ์„ฑํ™” ๋“ฑ ๋‹ค์–‘ํ•œ ์ด๋ฒคํŠธ๋ฅผ ํ†ตํ•ด ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ค‘๊ฐ„์— ์ทจ์†Œ๋˜๊ฑฐ๋‚˜ ๋๋‚œ ๊ฒฝ์šฐ๋ฅผ ์•Œ๋ ค์ค„ ์ˆ˜๋„ ์žˆ๋‹ค.

 

GA_AutoRespawn ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ํด๋ž˜์Šค

 

์ด ์•ˆ์—์„œ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๋“ค์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์–ด๋นŒ๋ฆฌํ‹ฐ๋ฅผ ๋™์ž‘์‹œํ‚ค๋ฉด ๋œ๋‹ค.

 

์ฐธ๊ณ 

https://docs.unrealengine.com/5.0/ko/gameplay-ability-system-for-unreal-engine/

 

๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ์–ด๋นŒ๋ฆฌํ‹ฐ ์‹œ์Šคํ…œ

๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ์–ด๋นŒ๋ฆฌํ‹ฐ ์‹œ์Šคํ…œ ๊ฐœ์š”

docs.unrealengine.com

https://docs.unrealengine.com/5.0/ko/abilities-in-lyra-in-unreal-engine/

 

๋ผ์ด๋ผ์˜ ์–ด๋นŒ๋ฆฌํ‹ฐ

๋ผ์ด๋ผ์—์„œ ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด๋ฅผ ์œ„ํ•ด ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ์–ด๋นŒ๋ฆฌํ‹ฐ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•œ ๋ฐฉ์‹์„ ๊ฐ„๋žตํ•˜๊ฒŒ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค.

docs.unrealengine.com

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)
'๐Ÿ“ Game/โœ Unreal' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Unreal][C++] 1์ธ์นญ ์ŠˆํŒ… ํŠœํ† ๋ฆฌ์–ผ
  • [Unreal][Lyra] ํ–ฅ์ƒ๋œ ์ž…๋ ฅ
  • [Unreal][Lyra] ๋ชจ๋“ˆํ˜• ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด, ๊ฒŒ์ž„ ํ”ผ์ฒ˜ ํ”Œ๋Ÿฌ๊ทธ์ธ, ๊ฒฝํ—˜
  • [Unreal] ๊ฒŒ์ž„ ๋ชจ๋“œ, ๊ฒŒ์ž„ ์Šคํ…Œ์ดํŠธ
Blxxming
Blxxming
CS ์ง€์‹๊ณผ ๊ณต๋ถ€ํ•˜๋‹ค ๋ฐฐ์šด ๊ฒƒ, ๊ฒฝํ—˜ํ•œ ๊ฒƒ ๋“ฑ์„ ๊ธฐ๋กํ•˜๋Š” ๋ธ”๋กœ๊ทธ์ž…๋‹ˆ๋‹ค.
  • Blxxming
    ๐Ÿ’ก๋ฒˆ๋œฉ๐Ÿ’ก
    Blxxming
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
  • ๊ณต์ง€์‚ฌํ•ญ

    • Tech Interview
    • ๐Ÿ“š Tech (246)
      • ๐Ÿ“ Computer Science (96)
        • โœ OS (12)
        • โœ Network & Web (10)
        • โœ Database (11)
        • โœ Data Structure (6)
        • โœ Algorithm (40)
        • โœ Design Pattern (9)
        • โœ Cloud Computing (3)
        • โœ (5)
      • ๐Ÿ“ Language (73)
        • โœ Language (6)
        • โœ C & C++ (11)
        • โœ C# (19)
        • โœ JAVA (37)
      • ๐Ÿ“ Game (43)
        • โœ Computer Graphics (2)
        • โœ Unity (14)
        • โœ Unreal (26)
        • โœ (1)
      • ๐Ÿ“ Book (34)
        • โœ Effective (3)
        • โœ Game Server (16)
        • โœ Clean Code (14)
        • โœ (1)
  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.0
Blxxming
[Unreal][Lyra] ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ์–ด๋นŒ๋ฆฌํ‹ฐ ์‹œ์Šคํ…œ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”