[Unreal][Lyra] ν–₯μƒλœ μž…λ ₯

2023. 12. 3. 18:20Β·πŸ“ Game/✏ Unreal

1. ν–₯μƒλœ μž…λ ₯

ν–₯μƒλœ μž…λ ₯은 λ³΅μž‘ν•œ μž…λ ₯ μ²˜λ¦¬μ™€ μ‹€μ‹œκ°„ μž…λ ₯ 리맀핑을 μœ„ν•œ μž…λ ₯ 처리 μ‹œμŠ€ν…œμ΄λ‹€.

  • λΉ λ₯Έ 반볡 μž‘μ—…κ³Ό λͺ¨λ“ˆμ„±
  • μ• μ…‹ 기반 ν™˜κ²½μ—μ„œ μ›μ‹œ μž…λ ₯ λ°μ΄ν„°μ˜ 필터링 및 처리λ₯Ό ν™•μž₯ν•  수 μžˆλŠ” λŠ₯λ ₯ 제곡

 

ν–₯μƒλœ μž…λ ₯을 μ‚¬μš©ν•˜λ €λ©΄, ν”ŒλŸ¬κ·ΈμΈ ν™œμ„±ν™” 및 μž…λ ₯ μ„ΈνŒ…μ„ λ³€κ²½ν•΄μ•Ό ν•œλ‹€.

 

ν”„λ‘œμ νŠΈ μ„ΈνŒ… > μž…λ ₯ > κΈ°λ³Έ 클래슀 > ν–₯μƒλœ μž…λ ₯ μ„ΈνŒ…

 

1) μž…λ ₯ μ•‘μ…˜(Input Actions)

μž…λ ₯ μ•‘μ…˜μ€ ν–₯μƒλœ μž…λ ₯ μ‹œμŠ€ν…œκ³Ό ν”„λ‘œμ νŠΈ μ½”λ“œ μ‚¬μ΄μ˜ 톡신 링크이닀.

  • μƒν˜Έμž‘μš© μΊλ¦­ν„°μ˜ μ–΄λ–€ 행동이든 μž…λ ₯ μ•‘μ…˜μ΄ 될 수 μžˆλ‹€.
  • 쀍기(on/off), κ±·κΈ°(μΆ•) λ“± μ•‘μ…˜ νŠΉμ§•μ— 따라 μž…λ ₯ κ°’ νƒ€μž…μ΄ λ‹¬λΌμ§ˆ 수 μžˆλ‹€.

 

μž…λ ₯ μ•‘μ…˜ λ””ν…ŒμΌ μ°½

 

폰 ν΄λž˜μŠ€κ°€ 트리거 된 μž…λ ₯ μ•‘μ…˜μ— λ°˜μ‘ν•˜κ²Œ ν•˜λ €λ©΄ λΈ”λ£¨ν”„λ¦°νŠΈ κ·Έλž˜ν”„μ— 이벀트λ₯Ό μΆ”κ°€ν•΄μ•Ό ν•œλ‹€. 각 μž…λ ₯ μ•‘μ…˜μ€ ν•΄λ‹Ήν•˜λŠ” μ• μ…‹ 이름을 κ°€μ§„ 이벀트λ₯Ό μƒμ„±ν•œλ‹€.

 

μž…λ ₯ μ•‘μ…˜ 이벀트

 

이후 μž…λ ₯ μ•‘μ…˜μ˜ μƒνƒœμ— 따라 ν‹±λ§ˆλ‹€ μ μ ˆν•œ 핀을 μ‹€ν–‰ν•˜κ²Œ λœλ‹€.

 

2) μž…λ ₯ λ§€ν•‘ μ»¨ν…μŠ€νŠΈ(Input Mapping Contexts)

μž…λ ₯ λ§€ν•‘ μ»¨ν…μŠ€νŠΈλŠ” μ‚¬μš©μžμ˜ μž…λ ₯을 μž…λ ₯ μ•‘μ…˜μœΌλ‘œ λ§€ν•‘ν•˜λŠ” κ²ƒμœΌλ‘œ ν•˜λ‚˜ μ΄μƒμ˜ μž…λ ₯ μ•‘μ…˜μ„ νŠΈλ¦¬κ±°ν•˜λŠ” κ·œμΉ™μ„ μ„€λͺ…ν•œλ‹€.

  • μ‚¬μš©μžλ³„λ‘œ λ‹€μ΄λ‚΄λ―Ήν•˜κ²Œ μΆ”κ°€ 및 μ‚­μ œν•  수 있고 μš°μ„ μˆœμœ„λ₯Ό μ •ν•  수 μžˆλ‹€.
  • ν–₯μƒλœ μž…λ ₯ 둜컬 ν”Œλ ˆμ΄μ–΄ μ„œλΈŒμ‹œμŠ€ν…œ(Enhanced Input Local Player Subsystem)을 톡해 ν•˜λ‚˜ μ΄μƒμ˜ μ»¨ν…μŠ€νŠΈλ₯Ό 둜컬 ν”Œλ ˆμ΄μ–΄μ—κ²Œ μ μš©ν•˜κ³  μš°μ„ μˆœμœ„λ₯Ό μ§€μ •ν•΄ λ™μΌν•œ μž…λ ₯을 μ‚¬μš©ν•˜κ³ μž ν•˜λŠ” μ—¬λŸ¬ μ•‘μ…˜ μ‚¬μ΄μ˜ μΆ©λŒμ„ μ²˜λ¦¬ν•  수 μžˆλ‹€.
  • λ‹¨μˆœν•œ ν”„λ‘œμ νŠΈμ˜ 경우 ν•˜λ‚˜μ˜ μž…λ ₯ λ§€ν•‘ μ»¨ν…μŠ€νŠΈμ— λͺ¨λ“  μž…λ ₯ μ•‘μ…˜μ„ 넣을 수 μžˆλ‹€. ν•˜μ§€λ§Œ λ³΅μž‘ν•œ ν”„λ‘œμ νŠΈμ˜ 경우 μ—¬λŸ¬ 개의 μž…λ ₯ λ§€ν•‘ μ»¨ν…μŠ€νŠΈλ₯Ό μ‚¬μš©ν•˜λŠ” 것이 μ’‹λ‹€.

 

예λ₯Ό λ“€μ–΄, 캐릭터가 μ›”λ“œλ₯Ό κ±Έμ–΄ 닀닐 λ•Œ λˆŒλŸ¬μ„œ 문을 μ—΄κ±°λ‚˜ 캐릭터가 배낭을 λ“€μ—¬λ‹€λ³Ό λ•Œ λˆŒλŸ¬μ„œ μ•„μ΄ν…œμ„ 선택할 수 μžˆλŠ” λ²„νŠΌμ΄ μžˆλ‹€κ³  κ°€μ •ν•΄ 보자. 캐릭터가 λ¬Έ κ·Όμ²˜μ— 있으면 ‘λ¬Έ μ—΄κΈ°' μ»¨ν…μŠ€νŠΈλ₯Ό μΆ”κ°€ν•œλ‹€. 캐릭터가 배낭을 μ—΄λ©΄ ‘λ¬Έ μ—΄κΈ°'보닀 μš°μ„ μˆœμœ„κ°€ 높은 ‘μ•„μ΄ν…œ μ„ νƒν•˜κΈ°' μž…λ ₯ λ§€ν•‘ μ»¨ν…μŠ€νŠΈλ₯Ό μΆ”κ°€ν•œλ‹€. 그러면 캐릭터가 λ¬Έ κ·Όμ²˜μ—μ„œ 배낭을 λ“€μ—¬λ‹€λ³Ό λ•Œμ—λ„ λ°°λ‚­ 속 μ•„μ΄ν…œμ„ 선택할 수 μžˆλ‹€. 캐릭터가 배낭을 λ‹«μœΌλ©΄ ‘λ¬Έ μ—΄κΈ°' μ»¨ν…μŠ€νŠΈμ˜ νš¨κ³Όκ°€ λ‚˜νƒ€λ‚  수 μžˆλ„λ‘ ‘μ•„μ΄ν…œ μ„ νƒν•˜κΈ°' μ»¨ν…μŠ€νŠΈλ₯Ό μ‚­μ œν•œλ‹€.

 

κΈ°λ³Έ κ΅¬μ‘°λŠ” μ΅œμƒμœ„ λ ˆλ²¨μ— μž…λ ₯ μ•‘μ…˜ λͺ©λ‘μ΄ μžˆλŠ” 계측 ꡬ쑰이닀. μž…λ ₯ μ•‘μ…˜ μˆ˜μ€€ μ•„λž˜μ—λŠ” ν‚€, λ²„νŠΌ, 이동 μΆ•κ³Ό 같이 각 μž…λ ₯ μ•‘μ…˜μ„ νŠΈλ¦¬κ±°ν•  수 μžˆλŠ” μ‚¬μš©μž μž…λ ₯ λͺ©λ‘μ΄ μžˆλ‹€.

 

μž…λ ₯ λ§€ν•‘ μ»¨ν…μŠ€νŠΈ λ””ν…ŒμΌ μ°½

 

μ΅œν•˜μœ„ λ ˆλ²¨μ—λŠ” 각 μ‚¬μš©μž μž…λ ₯에 λŒ€ν•œ μž…λ ₯ νŠΈλ¦¬κ±°μ™€ μž…λ ₯ λͺ¨λ””νŒŒμ΄μ–΄μ˜ λͺ©λ‘μ΄ μžˆλ‹€. νŠΈλ¦¬κ±°μ™€ λͺ¨λ””νŒŒμ΄μ–΄λ₯Ό μ‚¬μš©ν•˜λ©΄ μž…λ ₯의 μ›μ‹œ 값을 ν•„ν„°λ§ν•˜κ³  μ²˜λ¦¬ν•˜λŠ” 방식과 계측ꡬ쑰 μ΅œμƒμœ„μ— μžˆλŠ” μž…λ ₯ μ•‘μ…˜μ„ μœ λ„ν•˜λ €λ©΄ μΆ©μ‘±μ‹œμΌœμ•Ό ν•  쑰건을 κ²°μ •ν•  수 μžˆλ‹€.

 

μž…λ ₯ λ§€ν•‘ μ»¨ν…μŠ€νŠΈ λ””ν…ŒμΌ μ°½

 

μ΄λ ‡κ²Œ μ„€μ •ν•œ μž…λ ₯ μ•‘μ…˜μ„ νŠΈλ¦¬κ±°ν•˜λ €λ©΄, μž…λ ₯ λ§€ν•‘ μ»¨ν…μŠ€νŠΈλ₯Ό 둜컬 ν”Œλ ˆμ΄μ–΄μ˜ ν–₯μƒλœ μž…λ ₯ 둜컬 ν”Œλ ˆμ΄μ–΄ μ„œλΈŒμ‹œμŠ€ν…œμ— μΆ”κ°€ν•΄μ•Ό ν•œλ‹€. 폰의 컨트둀러λ₯Ό ν”Œλ ˆμ΄μ–΄ 컨트둀러둜 ν˜•λ³€ν™˜ν•˜κ³ , ν–₯μƒλœ μž…λ ₯ 둜컬 ν”Œλ ˆμ΄μ–΄ μ„œλΈŒμ‹œμŠ€ν…œμ„ 가져와, 인티저 μš°μ„ μˆœμœ„ 값을 μ‚¬μš©ν•΄ 이 μ„œλΈŒμ‹œμŠ€ν…œμ— μž…λ ₯ λ§€ν•‘ μ»¨ν…μŠ€νŠΈλ₯Ό μΆ”κ°€ν•˜λ©΄ λœλ‹€.

 

ν–₯μƒλœ μž…λ ₯ 둜컬 ν”Œλ ˆμ΄μ–΄ μ„œλΈŒμ‹œμŠ€ν…œμ— μž…λ ₯ λ§€ν•‘ μ»¨ν…μŠ€νŠΈ μΆ”κ°€

 

3) λͺ¨λ””νŒŒμ΄μ–΄(Modifiers)

λͺ¨λ””νŒŒμ΄μ–΄λŠ” μ‚¬μš©μžμ˜ λ””λ°”μ΄μŠ€μ—μ„œ λ‚˜μ˜€λŠ” μ›μ‹œ μž…λ ₯의 값을 μ‘°μ ˆν•œλ‹€.

  • λŒ€ν‘œμ μœΌλ‘œ λ°λ“œμ‘΄, μ—¬λŸ¬ ν”„λ ˆμž„μ— 걸친 μž…λ ₯ μŠ€λ¬΄λ”©, λ‘œμ»¬μ—μ„œ μ›”λ“œ 슀페이슀둜의 μž…λ ₯ 벑터 λ³€ν™˜, 기타 ν”ŒλŸ¬κ·ΈμΈμ— ν¬ν•¨λœ μ—¬λŸ¬ λͺ¨λ””νŒŒμ΄μ–΄κ°€ μžˆλ‹€.

 

4) 트리거(Triggers)

νŠΈλ¦¬κ±°λŠ” λͺ¨λ””νŒŒμ΄μ–΄ μ΄ν›„μ˜ μž…λ ₯ κ°’μ΄λ‚˜ λ‹€λ₯Έ μž…λ ₯ μ•‘μ…˜μ˜ 좜λ ₯ 크기λ₯Ό μ‚¬μš©ν•΄ μž…λ ₯ μ•‘μ…˜μ˜ ν™œμ„±ν™” μ—¬λΆ€λ₯Ό κ²°μ •ν•œλ‹€.

  • μž…λ ₯ μ•‘μ…˜μ€ μž…λ ₯λ§ˆλ‹€ ν•˜λ‚˜ μ΄μƒμ˜ 트리거λ₯Ό κ°€μ§ˆ 수 μžˆλ‹€.

 

2. 라이라

라이라의 μž…λ ₯ μ„ΈνŒ… μ‹œμŠ€ν…œμ€ ν–₯μƒλœ μž…λ ₯을 기반으둜 κ²Œμž„μ—μ„œ λ°œμƒν•˜λŠ” μž…λ ₯ ν™˜κ²°μ„€μ •κ³Ό κ΄€λ ¨λœ λ‹€μ–‘ν•œ 문제λ₯Ό ν•΄κ²°ν•˜λ„λ‘ μ„€κ³„λ˜μ—ˆλ‹€.

 

라이라의 μž…λ ₯ κ΅¬μ‘°λ„λŠ” λ‹€μŒκ³Ό κ°™λ‹€.

라이라 μž…λ ₯ ꡬ쑰도

  • Input Actions: μž…λ ₯ μ•‘μ…˜μ΄λ‹€.
  • Mapping Context: μ–΄λ–€ 킀에 μ–΄λ–€ μž…λ ₯ μ•‘μ…˜μ΄ 바인딩될지 κ²°μ •ν•˜λŠ” μž…λ ₯ λ§€ν•‘ μ»¨ν…μŠ€νŠΈμ΄λ‹€.
  • Input Config > Input Tag > Ability Set: μž…λ ₯ μ•‘μ…˜μ΄ λ°œλ™λ˜μ—ˆμ„ λ•Œ μ–΄λ–€ μ–΄λΉŒλ¦¬ν‹°λ‘œ 연결될지 κ²°μ •ν•œλ‹€.
  • PlayerMappableInputConfig

 

μž…λ ₯ μ•‘μ…˜μ΄ μ‹€ν–‰ν•  λ•Œ, λΌμ΄λΌλŠ” 이벀트λ₯Ό 톡해 μ²˜λ¦¬ν•˜λŠ” 방식에 μΆ”κ°€λ‘œ Input Configλ₯Ό ν†΅ν•΄μ„œλ„ μ²˜λ¦¬ν•˜κ³  μžˆλ‹€. μž…λ ₯ μ•‘μ…˜μ΄ ν™œμ„±ν™”κ°€ 되면 Input Config에 λ°”μΈλ”©λ˜μ–΄ μžˆλŠ” Tag에 영ν–₯을 주게 되고, κ·Έ Tagκ°€ μ–΄λΉŒλ¦¬ν‹°λ₯Ό ν™œμ„±ν™”μ‹œν‚¨λ‹€. κ·Έ ν›„ μ–΄λΉŒλ¦¬ν‹°μ—μ„œμ˜ μ²˜λ¦¬λŠ” GASμ—μ„œ 확인 κ°€λŠ₯ν•˜λ‹€.

 

Input Config

 

μ°Έκ³ 

https://docs.unrealengine.com/5.0/ko/enhanced-input-in-unreal-engine/

 

ν–₯μƒλœ μž…λ ₯

ν–₯μƒλœ μž…λ ₯ ν”ŒλŸ¬κ·ΈμΈ κ°œμš”

docs.unrealengine.com

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

 

라이라 μž…λ ₯ μ„ΈνŒ…

라이라(Lyra)μ—μ„œ μž…λ ₯ μ„ΈνŒ… μ‹œμŠ€ν…œμ„ μ‚¬μš©ν•˜μ—¬ λ‹€μ–‘ν•œ 일반 μž…λ ₯ ν™˜κ²½μ„€μ • 섀정을 ν•΄κ²°ν•˜λŠ” 방법을 κ°„λž΅ν•˜κ²Œ μ„€λͺ…ν•©λ‹ˆλ‹€.

docs.unrealengine.com

μ €μž‘μžν‘œμ‹œ (μƒˆμ°½μ—΄λ¦Ό)
'πŸ“ Game/✏ Unreal' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • [Unreal][C++] ν”Œλ ˆμ΄μ–΄ 캐릭터
  • [Unreal][C++] 1인칭 μŠˆνŒ… νŠœν† λ¦¬μ–Ό
  • [Unreal][Lyra] κ²Œμž„ν”Œλ ˆμ΄ μ–΄λΉŒλ¦¬ν‹° μ‹œμŠ€ν…œ
  • [Unreal][Lyra] λͺ¨λ“ˆν˜• κ²Œμž„ν”Œλ ˆμ΄, κ²Œμž„ ν”Όμ²˜ ν”ŒλŸ¬κ·ΈμΈ, κ²½ν—˜
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] ν–₯μƒλœ μž…λ ₯
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”