Unreal Engine, Input Config μ΄ν΄
Lyra κ³΅μ© ν΄λμ InputData_SimplePawnμ μ΄λ»κ² ꡬμ±λμ΄μλμ§ νμΈνκ³ μ΄ν΄ν΄λ³΄λλ‘ νλ€.
ν΄λΉ νμΌμ Lyraμ All > Content > Input ν΄λμ νμΈν μ μλ€.
- Native Input Actions: μ‘°μ΄μ€ν±, ν€λ³΄λ μ λ ₯μ λ°μΌλ©΄ μ΄λκ³Ό κ΄λ ¨λ μΆλ ₯μ 맀νμ λ΄λΉνκ³ μλ€.
- Ability Input Actions: νΉμ ν€ μ λ ₯μ λ°μΌλ©΄ μ ν, μ€ν¬ μΆλ ₯μ 맀νμ λ΄λΉνκ³ μλ€.
Native, Ability Input Actions λ°°μ΄ κ°μ²΄
- Index[0] λ°°μ΄μ ννλ‘ λμ΄λμ΄μκ³ μ°Έμ‘°λ κ³³μΌλ‘ νμΈνλ©΄ Input Action, Input Tag κ° μμμ νμΈν μ μλ€.
Input Tag ?
Index μ°Έμ‘°λ κ³³μμ λ νΉνκ² Input Tag λ₯Ό μΆκ°νμ¬ Enumerate μν μ λ΄λΉνκ³ Input Actionκ³Ό 맀ννλ κ΄κ³λ‘ 보μ¬μ§κ³ μλ€.
- Input Tag: ν€λ³΄λ λλ μ‘°μ΄μ€ν± μ λ ₯μ λν 맀νλ€μ 미리 ν λΉνκ³ Tag λ‘ λΆλ € μ¬ μ μλλ‘ νκ³ μλ°. InpuTag κ°μ²΄ μ κ·ΌμΌλ‘ Move λ‘ λμ΄μλ κ²μ λ³Ό μ μλλ°(InputTag.Move). μ¬μ μ μ΄λκ³Ό κ΄λ ¨λ ν€λ³΄λλ₯Ό 미리 ν λΉνκ³ μ μ κ° Tagμ κ΄λ ¨λ μ λ ₯μ λ°μΌλ©΄ Input Action μ μ€νλλλ‘ νκ³ μμμ λ³Ό μ μλ€.
- Input Action: μ μ κ° Input Tag κ΄λ ¨λ ν€λ₯Ό λλ μ λ 미리 μ μν Actionμ μ€νν μ μλλ‘ ν΄μ£Όκ³ μλ€. Actionμ λνμ μΌλ‘ μΊλ¦ν° μ΄λ, νλ©΄ μ΄λ, μ ν, μλ μ΄λ, νλ μ¨ν°νμ΄μ΄ λ±μ΄ μλ€.
- μΊ‘μ²λ³Έκ³Ό Lyraμμ λ€μν Actions λ§λ€μ΄μ Έ μλ κ²μ λ³Ό μ μλ€.
Unreal Engine 4 Input μ€μ νκΈ°
- UE4 μμλ Project Settings μμ Engine - Input νλͺ©μμ μ€μ ν μ μμλ€.
- μΊ‘μ²λ³Έκ³Ό κ°μ΄ Action Mappings μ‘μ μ Forward λΌλ μ μ§νλ λμμ ν€λ³΄λ w λλ λ§μ°μ€ μ’ν΄λ¦μΌλ‘ μ΄λν μ μκ² λ§€νν μ μλ€.
- UE5 μμλ Input μ Deprecated λμμΌ Enhanced Input μ€μ νλ κ²μκΆμ₯νκ³ μλ€.
Enhanced Input μ€μ νκΈ°
Unreal Engine μ Input κΈ°λ₯μ ν₯μλ Input κΈ°λ₯μ΄λ€.
λ§λλ λ°©λ²μ Content Drawer νμκΈ°μμ λ¨Όμ All > Content > Input > Actions μΌλ‘ μ΄λνλ€.
- +ADD ν΄λ¦νμ¬ Input > Input Action μμ μ μΆκ°νλλ‘ νλ€.
- μ΄λ¦μ "IA_Heal" μΌλ‘ μ§μ΄μ£Όλλ‘ νμλ€.
- ν΄λΉ μμ μ λλΈν΄λ¦
- ν΄λΉ Input μμ μ νΉμ νλμ μ§νν λ λ°νλμ΄μΌ νλ κ²μ μ ν μ μλ€.
- λ°νν μ μλ νλͺ© μ¬λ¬κ° μ΅μ μ μ€μ ν μ μλ€. λ§μ΄ μ¬μ©νλ Value Type λΆν° μ€μ μ μ§ννλλ‘ νλ€.
- Triggers, Modifiers, Advanced λ μμ μλ Value Type 쑰건μ κ±Έ μ μλ€.
μλ₯Ό λ€λ©΄ λ²νΌμ μ΄μ§λλ€ > 무μνλ€ λΌλ κΈ°λ₯μ΄ νμν λ, Modefiers λ°°μ΄ μμ± ν DeadZone, 0.2, 1.0 μ€μ νλ©΄ 0.2~1.0 float νμ λ§ λ°μ μ μλ€.
Enhanced Input, Value Type
ν΄λΉ κ°μ²΄ μ΅μ μ 4κ° μ ν κ°λ₯νλ€.
- Digital(bool) : true, false λ§ μ€μ κ°λ₯, μλ‘)λ²νΌμ λλ₯΄κ³ μλ μν(Hold)λ True λ°ν, λ²νΌμ λ μνμ΄λ©΄ Falseλ₯Ό λ°ννλ€.
- Axis1D(float) : μ‘°μ΄μ€ν±μμ μ€ν±μ μ λ€λ‘ νλμ float νμ μ΄ λ°ννκ² νλ€. μ£Όλ‘ κ°μλ μ©λλ‘ μ¬μ©νλ€.
- Axis2D(Vector2D): μ‘°μ΄μ€ν±μμ μ€ν±μ μ, λ€, μ νλ μ vector2D νμ λ°ννλ€. X, Y μΆμ λ°νλ°κ³ μΆμ λ μ¬μ©νλ€.
- Axis3D(Vector): μ‘°μ΄μ€ν±μμ μ€ν±μ μ, λ€, μ νλ μ vector νμ μΌλ‘ λ°ννλ€. X, Y, Z μΆμ λ°νλ°κ³ μΆμ λ μ¬μ©νλ€.
Enhanced Input, Context μ€μ νκΈ°
- Content Drawer νμκΈ°μ All > Content > Input > Mappings ν΄λλ‘ μ΄λνλ€.
- +ADD λ‘ μ΄ν΄λ³΄λ©΄ Input > Input Mapping Context μΆκ°ν μ μλ€.
- μ¬κΈ°μμλ μλ‘ μΆκ°λ³΄λ€λ νμνλ μ©λλ‘ λ―Έλ¦¬ λ§λ€μ΄μ§ IMC_Default λ₯Ό μ΄ν΄λ³΄λλ‘ νλ€.
Enhanced Input, IMC_Default νμνκΈ°
ν΄λΉ IMC_Default λ₯Ό λλΈ ν΄λ¦νλ©΄ λ€μκ³Ό κ°μ΄ μ μλ λͺ¨μ΅μ λ³Ό μ μλ€.
μ€μ IMC λ₯Ό λ§λ€λ μ’
λ₯λ³λ‘ λ§λ€κ² λλλ°, λ³ΈμΈμ IMC_Main Menu, IMC_Store, IMC_ESC κ°κ° λλ μ 맀ννκ³ νμν λλ§ λΆλ €μ¨λ€.
- Input Mapping Context κ°μ₯ ν° νΉμ§μΌλ‘ Input μμ μ μ€μ νκ³ μ€μ ν€λ₯Ό ν λΉνλ λͺ¨μ΅μ λ³Ό μ μλ€.
Enhanced Input, μ΄λνλ IA_Move μ΄ν΄λ³΄κΈ°
IMC_Default μ μ΄ν΄λ³΄λ©΄ IA_Move ꡬνλ λͺ¨μ΅μ λ³Ό μ μλ€.
ν΄λΉ μΊλ¦ν° μ΄λμ λν λμμμ νμΈν μ μλλ°. Modifiers λ°ν κ°μ λ³κ²½ν΄μ ꡬννκ³ μλ€.
Modifiers μ΄λ»κ² ꡬνλμ΄μλμ§ μ΄ν΄λ³΄κΈ° μ , μΊλ¦ν° μ΄λνλλ° X, YμΆμ΄ μ΄λ»κ² μ΄λ£¨μ΄μ ΈμΌ νλμ§ μμ보λλ‘ νλ€.
y
β
β
ββββ x
0
μΊλ¦ν° μ΄λ μ λ°νλμ΄μΌ νλ X, Y μΆμ?
- μΊλ¦ν° μ λ©΄ μ΄λμ W λ₯Ό λλ₯Ό κ²½μ° 0, 1 λ°νμ ν΄μ£Όμ΄μΌ μ΄λνλ€.
- μΊλ¦ν° μ λ©΄ μ΄λμ A λ₯Ό λλ₯Ό κ²½μ° -1, 0 λ°νμ ν΄μ£Όμ΄μΌ μ΄λνλ€.
- μΊλ¦ν° μ λ©΄ μ΄λμ S λ₯Ό λλ₯Ό κ²½μ° 0, -1 λ°νμ ν΄μ£Όμ΄μΌ μ΄λνλ€.
- μΊλ¦ν° μ λ©΄ μ΄λμ D λ₯Ό λλ₯Ό κ²½μ° 1, 0 λ°νμ ν΄μ£Όμ΄μΌ μ΄λνλ€.
μ΄μ μΈλ¦¬μΌ μμ§μμ μ΄λ»κ² Modifiers λ₯Ό μ€μ νμλμ§ μ΄ν΄λ³΄λλ‘ νλ€.
W ν€ μ λ©΄ μ΄λ
- IA_Move λ κΈ°λ³Έμ μΌλ‘ 1, 0 μΆμ λ°ννλ€. (ZμΆ λ¬΄μ)
- Swizzle Input Axis Values: Order > YXZ μΆμΌλ‘ λ³κ²½ν κ²μ λ³Ό μ μλ€. μ΄κ²μ X,YμΆμ λ°μ νμ¬ 0, 1 μΆμΌλ‘ λ°ννλ€.
A ν€ μ’μΈ‘ μ΄λ
- IA_Move λ κΈ°λ³Έμ μΌλ‘ 1, 0 μΆμ λ°ννλ€. (ZμΆ λ¬΄μ)
- Negate: X, Y, Z μΆμ μμλ‘ λ°ννμ¬ -1, 0 μΆμΌλ‘ λ°ννλ€.
S ν€ λ€λ‘ μ΄λ
- IA_Move λ κΈ°λ³Έμ μΌλ‘ 1, 0 μΆμ λ°ννλ€. (ZμΆ λ¬΄μ)
- Negate: X, Y, Z μΆμ μμλ‘ λ°ννμ¬ -1, 0 μΆμΌλ‘ λ°ννλ€.
- Swizzle Input Axis Values: Order > YXZ μΆμΌλ‘ λ³κ²½ν κ²μ λ³Ό μ μλ€. μ΄κ²μ X, YμΆμ λ°μ νμ¬ 0, -1 μΆμΌλ‘ λ°ννλ€.
D ν€ μ°μΈ‘ μ΄λ
- IA_Move λ κΈ°λ³Έμ μΌλ‘ 1, 0 μΆμ λ°ννλ€. (ZμΆ λ¬΄μ)
μ΄μ IA_Move μ¬μ©ν κ²½μ° μ΄λ»κ² κ°μ λ°ννλμ§ νμΈν μ μλ€. κ·Έλ¦¬κ³ μΊλ¦ν° μ΄λ μ²λ¦¬νλ μ½λλ νμνλ μλ‘ μμ±ν΄μΌ νλ μν©μ΄ μκΈΈ μ μλ€.
Lyraμμλ C++ λ‘ μ΄λ―Έ μμ±λμ΄ μκΈ° λλ¬Έμ λ§μ½ κ°λ°μκ° μ§μ λ§λ€μ΄μΌνλ μν©μ΄λΌλ©΄ Blueprint λ‘ κ΅¬μ±μ ν΄λ³΄λλ‘ νλ€.
- ν΄λΉ Level μμ Blueprint μμ±νλ λΆλΆμ μ΄μ΄λ³Έλ€.
- Enhanced Action Events νλͺ©μμ IA_Move Context λ₯Ό μΆκ°λλ‘ νλ€.
- IA_Move μ λν μ΄λ²€νΈ PIN λ€μ λͺ¨λ νΌμ³λ³΄λλ‘ νλ€.
- IA_Move μ΄λ²€νΈκ° λ°μνμ¬ Action Value X, Action Value Y κ°μ λ°νν λ μΊλ¦ν° μ΄λ, Pawn Classμ λν μ²λ¦¬ λ° λ°μΈλ©μ ν΄μ£Όμ΄μΌ νλ€.
- PIN μ λν μ²λ¦¬λ νλμ½λ©λ‘ μ΄λ£¨μ΄μ§ μ μμ΄μ, μμ λ μ¬κΈ°μ λ§λ¬΄λ¦¬ νλλ‘ νλ€.
μμμ μκΈ°ν μΊλ¦ν° μ΄λ μ²λ¦¬λ Lyra μμ Gameplay Tags νλ‘μ νΈ μΈν μ νμ§ μκ³ InputTag νκ·Έ C++λ‘ λ§λ€μ΄ μΊλ¦ν° μ΄λμ λν μ²λ¦¬ ꡬνλ κ²μ νμΈν μ μλλ°, λ€νμ±μΌλ‘ λμ΄ μμ΄μ κΆμ₯νλ ννμ μ½λμ΄λ€.