ν•΄μœ„~


기쑴에 λΈ”λ£¨ν”„λ¦°νŠΈλ‘œ λ§Œλ“€μ–΄λ’€λ˜ μ•„μ΄ν…œ μ‹œμŠ€ν…œ(μž₯μ°© μ•„μ΄ν…œ, ν¬μ…˜ λ“±μ˜ λ™μž‘μ„ κ²°μ •ν•˜λŠ”)이 μ²«μ§€μ—μ„œ λ³΄λŠ” κ²ƒμ²˜λŸΌ μ™„μ „ 초보적인 μˆ˜μ€€μΈ 개판 μ½”λ“œλΌμ„œ


μ΄λ²ˆμ— BP듀을 C++둜 κ°ˆμ•„μ—ŽλŠ” 김에 μ•„μ΄ν…œλ„ μ‹Ή κ°ˆμ•„μ—ŽμœΌλ € ν•˜λŠ”λ°


λšλ°°κΈ°λΆ€ν„° 듀이밀기 전에 일단 μ—¬κΈ°μ €κΈ° μžλ£Œλ“€μ„ μ°Ύμ•„λ³΄λ©΄μ„œ μ•„μ΄ν…œ 클래슀λ₯Ό 섀계해 봀음




μš°μ„  μ§€κΈˆ μƒνƒœλ₯Ό μ„€λͺ…ν•˜μžλ©΄ β†‘μš”λŸ° ν…Œμ΄λΈ”μ„ ν•˜λ‚˜ κ°€μ§€κ³  있음


μ•„μ΄ν…œ κΈ°λ³Έ 정보, νƒ€μž…(μž₯λΉ„/μ†Œλͺ¨/...), λ‚˜μ€‘μ— μ‹€μ œ κ°’κ³Ό μ—°κ²°ν•˜λ €κ³  λ§Œλ“€μ–΄λ‘” μ•„μ΄ν…œ νƒœκ·Έ


이런 기본적인 μ•„μ΄ν…œ 정보듀을 λ‹΄κ³  μžˆλŠ” 언리얼 λ°μ΄ν„°ν…Œμ΄λΈ”μž„


그리고 μΈκ²Œμž„μ—μ„œλŠ” 이것과 λ³„κ°œλ‘œ λ³΄μœ μ€‘μΈ μ•„μ΄ν…œμ— κ΄€ν•œ κ°„λž΅ν•œ 정보λ₯Ό λ‹΄κ³  μžˆλŠ” ItemInfo 클래슀λ₯Ό λ§Œλ“€μ–΄ 두고 μ“°λŠ” λ°©μ‹μž„.


λ‹Ήμ—°νžˆ λ¬Έμ œλŠ” κ±°κΈ°μ„œ 더 μƒμ†λ°›κ±°λ‚˜ λœ―μ–΄κ³ μΉ˜κ±°λ‚˜ ν•  μƒκ°λ”°μœˆ ν•˜μ§€ μ•Šμ•˜κ³ ,


바보같은 과거의 λ‚˜λŠ” λͺ¨λ“  μ•„μ΄ν…œ κΈ°λŠ₯을 λΈ”λ£¨ν”„λ¦°νŠΈ μ»¨νŠΈλ‘€λŸ¬μ—μ„œ κ΅¬ν˜„μ€‘μ΄μ—ˆλ˜ κ±°μž„!! γ„·γ„·γ„·γ„· μ œμ •μ‹  μ•„λ‹Œλ“―




κ·Έλž˜μ„œ 였늘 μžλ£Œλ“€μ„ μ’€ μ°Ύμ•„λ³΄λ‹ˆ 보톡 μ•„μ΄ν…œμ„ κ΅¬ν˜„ν•  λ•ŒλŠ” 효과 ν•˜λ‚˜ν•˜λ‚˜λ₯Ό μ •μ˜ν•˜λŠ” μ»΄ν¬λ„ŒνŠΈλ₯Ό λ‹€μ–‘ν•˜κ²Œ λ§Œλ“€μ–΄ 놓고


μš”κ±Έ μ‘°ν•©ν•΄μ„œ λšλ”± λ§Œλ“€μ–΄λ‚΄λŠ” 게 μΌλ°˜μ μ΄λ”λΌκ΅¬μš₯


κ·Έλž˜μ„œ 저어도 κ·Έλ ‡κ²Œ λ³„λ„μ˜ 클래슀λ₯Ό λ§Œλ“€μ–΄ 보렀고 함



μ•„μ΄ν…œ ν΄λž˜μŠ€λŠ” λŒ€μΆ© 이런 μ‹μ˜ ꡬ쑰둜 상속해 놓고,


μ—¬κΈ°μ„œ 말단 ν΄λž˜μŠ€μ—λ‹€κ°€ μ•„λž˜μ™€ 같은 μ»΄ν¬λ„ŒνŠΈλ“€μ„ μ‘°ν•©ν•΄μ„œ κΈ°λŠ₯을 κ΅¬ν˜„ν•˜λŠ” 방식을 생각함


λ°‘ 지은 μƒμƒμœΌλ‘œ λŒ€μΆ© λ§Œλ“€μ–΄λ³Έ μ˜ˆμ‹œμž„


(μ˜ˆμ‹œλ‘œ λ§Œλ“ κ±°λΌ 말도 μ•ˆλ˜λŠ” 게 μžˆμ„ 수 있음)


μ™Όμͺ½μ΄ μ•„μ΄ν…œμ˜ λ™μž‘μ„ κ²°μ •ν•˜λŠ” μ»΄ν¬λ„ŒνŠΈλ“€μ„ λ‚˜μ—΄ν•΄ 본건데, 크게 4μ’…λ₯˜λ‘œ λ‚˜λ‰  수 μžˆλ‹€κ³  μƒκ°ν–ˆμŒ.

  1. ItemEvent : ν”Œλ ˆμ΄μ–΄μ—κ²Œμ„œ μΌμ–΄λ‚˜λŠ” 각쒅 "이벀트"λ₯Ό κ°μ§€ν•΄μ„œ μ•„μ΄ν…œμ˜ 효과 λ°œλ™μ„ κ²°μ •ν•˜λŠ” 클래슀

  • 예) ν”Œλ ˆμ΄μ–΄κ°€ 이 μ•„μ΄ν…œμ„ "μ‚¬μš©" ν–ˆμ„ λ•Œ : OnUsed

ItemBehaviour : μ•„μ΄ν…œμ˜ λ™μž‘μ΄λ‚˜ 효과λ₯Ό μ •μ˜ν•˜λŠ” 클래슀

  • 예) 독 ν¬μ…˜μ„ λ¨Ήμ–΄ ν”Œλ ˆμ΄μ–΄κ°€ "10의 데미지"와 "5μ΄ˆκ°„μ˜ 슬둜우 디버프"λ₯Ό λ°›λŠ”λ‹€ : DoDamage(Player, 10) / AddBuffTo(Player, "Slow", 5.0s)

ExecuteCondition : "이벀트"에 μ˜ν•΄ "λ™μž‘"이 μΌμ–΄λ‚˜κΈ° 전에 μΆ©μ‘±ν•΄μ•Ό ν•˜λŠ” 쑰건
  • 예) 재μž₯전을 ν•˜λ €λ©΄ 인벀토리에 "12발"의 "μ΄μ•Œ"이 μžˆμ–΄μ•Ό ν•œλ‹€ : PawnHasItem(Player, "Bullet", 12)

ItemAbility : μœ„ 3μ’…λ₯˜ μ»΄ν¬λ„ŒνŠΈλ“€μ—μ„œ μ‚¬μš©λ˜λŠ” μ•„μ΄ν…œ μŠ€νƒ―.
μ•„μ΄ν…œ ν…Œμ΄λΈ”(DB)μ—λŠ” μ΄κ²ƒλ§Œ λ…ΈμΆœλ˜κ³ , μš”κ±Έ μ΄μš©ν•΄μ„œ 같은 λ‘œμ§μ„ κ°€μ§„ μ•„μ΄ν…œμ„ λ‹€μ–‘ν•˜κ²Œ λ§Œλ“€ 수 있음
  • 예) 2번의 μ˜ˆμ‹œμ—μ„œ λ…ν¬μ…˜μ˜ λ°λ―Έμ§€λŠ” {"Damage":10}, 슬둜우 버프λ₯Ό 5μ΄ˆκ°„ μ£ΌκΈ° μœ„ν•œ {"Slow":5.0s}



이 4κ°€μ§€ μ»΄ν¬λ„ŒνŠΈ νƒ€μž…μ„ μ΄μš©ν•΄μ„œ "ꢌ총" ν΄λž˜μŠ€λ‚˜ "μΉΌ" 클래슀 정도 μˆ˜μ€€κΉŒμ§€λ§Œ κ΅¬ν˜„ν•΄ 놓고,


기쑴의 ν…Œμ΄λΈ”μ— 있던 ItemType 속성 λŒ€μ‹  μ•„μ΄ν…œ 클래슀λ₯Ό μ§€μ •ν•˜λ„λ‘ ν•˜κ³ , Ability만 μˆ˜μ •μ΄ κ°€λŠ₯ν•˜κ²Œ ν•΄μ„œ


μ‹€μ œλ‘œ ν΄λž˜μŠ€λŠ” ꢌ총 ν•˜λ‚˜λ§Œ μžˆμ§€λ§Œ ν…Œμ΄λΈ” 상에선 막 초둝ꢌ총 νŒŒλž‘κΆŒμ΄ 쑸라쎈ꢌ총 μš”λ ‡κ²Œ μžˆλ„λ‘ ν•œλ¬΄ λ³΅μ œν•  κ³„νšμž„


μͺΌλ§€ μ–΄λ €μšΈ 것 κ°™κΈ΄ ν•œλ°... 일단 ν•΄λ³΄λ €κ΅¬μš”


μ‹€νŒ¨ν•˜λ©΄ 걍 μ•„μ΄ν…œ μ’…λ₯˜λ₯Ό ν™• 쀄이고 직접 ν•˜λ‚˜μ”© κ΅¬ν˜„ν•˜λŠ” μˆ˜λ°–μ—