λ¬Έμκ·Έλλ‘ ννμ μΌμΈ λ°€μ λ€λ€ μ μ§λ΄κ³ μμ§??
λλ bic μμνμ§λ λλμ§λ λͺ¨λ₯΄κ³ μ΄μ¬ν κ°λ°νκ³ μμμ...Β κ°λ΄€μΌλ©΄ μ’μμκ±Έ... λ΄λ μ κΌ μ μλ μ°Έκ΄μ΄λ κΌ κ°λ³΄λ €κ³ .
μλ¬΄νΌ μ΄μ μ¬μ¬ μ AIμΒ NPCλ₯Ό κ°λ° μμν΄λ³΄λ €κ³ νλλ° λ무 λ§νλκ² λ§μ
νλ μ΄μ΄ 컨νΈλ‘€λ¬λ₯Ό λ§λ€ λ μ€ν μ΄νΈλ¨Έμ μ λλ¦ μ μ§λ¨λ€κ³ μκ°ν΄μ
μ΄κ±Έ μ‘°κΈλ§ λ°κΏμ navmesh λΆμ¬μ£Όλ©΄ λμ΄κ² μ§!
λΌκ³ μμΌνκ² μκ°νλ λμκ² μΉν¨ νλ§λ¦¬ λ¨Ήμ΄κ³ λ€μ 머리λ₯Ό μ°κΈ° μμ!
λ°μ κΈμ΄ μ’ μ₯ν©ν΄μ§λ κ² κ°μμΒ
νκ³ μΆμ μ§λ¬Έ νμ€μμ½μ λ¨Όμ λ§ν κ².
μνκΈ°κ³μμΒ νλνΈλ¦¬μ updateλ₯Ό νΈμΆν νλ νΈλ¦¬ λ Έλκ° μνκΈ°κ³Β μνλ₯ΌΒ λ°κΏλ λλκ°?
λ€μμ νμ¬ μ ai μ€ν μ΄νΈλ¨Έμ μ κ°μμΌ. λ§€μ° κ°λ¨νκ² λμ΄μμ΄.
[μΆμ μν], [νμΒ μν] 2κ°μ§ μνκ° μμ
[νμ μν]
OnEnter: ν΄μ(λκΈ°)μκ° λλ€μ€μ (1~3μ΄)
OnUpdate:Β
ν΄μμκ°μ΄ μ§λ¬λκ°?
μ >Β ν΄μ
μλμ€ >Β νκ²(νλ μ΄μ΄) μμΉ κ²μ
νλ μ΄μ΄κ° λ°κ²¬λμλκ°?
μ > νκ² μμΉ μ€μ , [μΆμ μν]λ‘ μ΄λ
μλμ€ > μ²μμΌλ‘
[μΆμ μν]
OnUpdate:
νκ²κ³Όμ κ±°λ¦¬κ° 0.1 μ΄νμΈκ°?
μ > [νμ μν]λ‘ μ΄λ
μλμ€ > μ²μμΌλ‘
κ°λ¨ν λ‘μ§μΈλ§νΌ μ€μ μν©μ μ μ©νκΈ° λ§€μ° μ΄λ ΅κ² μ§
λͺκ°μ§ μλ리μ€λ§ μκ°ν΄λ΄λ μ΄κ±Έ μνκΈ°κ³λ‘ λͺ¨λΈλ§νκΈ° μ΄λ ΅λ€ νλ¨νμ΄.
1. μΊλ¦ν°μ»¨νΈλ‘€λ¬κ° μμ§μ΄λ€κ° μ μ ν μν©(μμ 1m μ΄νμ λ¨μ°¨λ₯Ό κ°μ§ μ§νμ΄ μ‘΄μ¬ν λ λ±...)μμ νλ₯Ό νλ κ²½μ°
2. νλ μ΄μ΄λ₯Ό λ°λΌκ°λ€κ° νμ§κ° μλ κ²½μ°
3. μ²μμμΉμμ λ무 λ§μ΄ λ²μ΄λ κ²½μ°
μμ² λ§μ κ²½μ°κ° μκ² μ§??
κ·Έλμ νλνΈλ¦¬λΌλ κ²μ΄ μλ€λ κ²μ μμλ΄κ³ μ΄κ²μ κ² μλ£ μ°Ύμ보면μ 곡λΆν΄λ΄€μ΄.
μ΄ λΈλ‘κ·Έμ κΈμ΄ μ’ μ μμ½νκΈ΄ νλλ° μμ λ³΄κ³ λ¨λ°μ μ΄ν΄
https://engineering.linecorp.com/ko/blog/behavior-tree/
무λ£λ‘ 곡κ°λ νλνΈλ¦¬κ΄λ ¨ ν¨ν€μ§κ° μκΈΈλ λ€μ΄λ°μμ νν 리μΌλ λ³΄κ³ κ³΅λΆν¨.
TheKiwiCoder νλνΈλ¦¬ μκ° -Β
https://www.youtube.com/watch?v=SgrG6uAZDHEꡬν νν λ¦¬μΌ ννΈ1 -Β
https://www.youtube.com/watch?v=nKpM98I7PeMννΈ2λ μλλ°, λλΆλΆ ui ꡬν μμ£ΌλΌμ ννΈ1λ§ λ΄λ μΆ©λΆν νλνΈλ¦¬ κ³΅λΆ λκ² λ€ μΆμ΄μ ννΈ2λ λμΆ© λ΄€μ΄.
μμ μ€ν μ΄μ 90λ¬λ¬μ§λ¦¬ μμ μ΄λ, μνκΈ°κ³/λνλ Έλ/νλνΈλ¦¬ κ΄λ ¨ uiν΄μ΄ μλκ±° κ°λλ°
μ¬ν λͺλ°±λΆ μμ μ λ μ¨λ³Έ κ²°κ³Ό. μ λλ‘ μ°λκ² κ±°μ μλ€λ μ μμ μ λ» κ²°μ λ²νΌμ μμ΄ μκ°λλΌκ³ .
90λ¬λ¬μ§λ¦¬ μμ
-Β https://assetstore.unity.com/packages/tools/visual-scripting/behavior-designer-behavior-trees-for-everyone-15277
(λκ°μ νλκ°???)
μνκΈ°κ³μμΒ νλνΈλ¦¬μ updateλ₯Ό νΈμΆν νλ νΈλ¦¬ λ Έλκ° μνκΈ°κ³Β μνλ₯ΌΒ λ°κΏλ λλκ°?
νλ¨λ
Έ μ‘°μ¬νκ³ μμ ν κ°λ°λ€ νμ! νμ΄ν
!
ν΄λΉ λκΈμ μμ λμμ΅λλ€.
ν κ°μ΄λ ΅λ€ μ΄κ±° γ· γ·
λλ λμμ μμ°κ³ μμνκ² BTλ§ μΌλμ μ΄ μμ. κ·Όλ° μ§κΈμ FSMμ μ λ§ λ‘μ°λ 벨 μν (λκΈ°,μ§λ©΄μ΄λ,λμμΆμ μ΄λ,μ£½μ,κ·Έλ‘κΈ°)μλ§ μ°κ³ , BTλ μ’λ μμμμ¬κ²°μ μ©λλ‘ μ. BTμμ λ°°κ³ νλ©΄λ°₯λ¨ΉκΈ°Treeκ° μλ€κ³ νλ©΄, κ·Όμ² μμμ μ°Ύμλ€ νμ FSMμκ² ν΄λΉμμΉλ‘ μ΄λμ λͺ λ Ήνλμ
λ΅λ³ κ³ λ§μ γ γ νμ FSMμ BTμ μ‘μ λ Έλ(Leaf Node?)μ κ³ μ νκ² μ‘΄μ¬νκ² κ΅¬ννλκ±°μΌ??
μ μ λν°μμλ νλ μ΄λ©μ΄μ»€(FSM)μ΄λ NodeCanavs(BT) μλ‘ μ°λν΄μ, νλνΈλ¦¬μ μ‘μ λ Έλλ‘ FSMμ λΆμΌμλ μκΈ΄νλλΌ. λ°λΌμ λ€ λ§λλ‘ κ·Έλ°κ²λ κ°λ₯νκΈ΄ ν κ±°κ°μ΄. κ·Όλ° λ κ·Έλ°κ±΄ μλκ³ νμ FSMμ μκΉλ§νκ²μ²λΌ μ½μ΄ν μνλ€(λκΈ°,μ΄λ,μ£½μ)μ΄λ°κ±°λ₯Ό κ΄μ₯νλκΉ νλ μ΄μ΄λ λͺ¬μ€ν° λλ€ μκ³ . λͺ¬μ€ν°μλ§ BTλ₯Ό λΆμ΄κ³ μμ΄. νΉν 보μ€κ°μ΄ νμ΄μ¦κ° μλ λͺ¬μ€ν°μ λλμ± BTκ° μ μ°μ. λ€λ§λλ‘λ©΄ BTκ° FSMμ μμ νκ³ μλ κ΄κ³κ² μ§λ§, λ΄ κ²½μ°λ FSMμ΄λ BTκ° κ°λ³μ μΌλ‘ μ‘΄μ¬νκ³ BTκ° FSMμ λ©μμ§λ₯Ό 보λ΄λ μ λλΌκ³ λ΄μΌκ² μ§
μ κ°μ§λ¬μ λ λΆλΆλ€ ν΄κ²°λκ³ νμ€νκ² μ΄ν΄νμ΄ γ γ λ΄μΌ ꡬ쑰 νλ² μ§μ μ§νν΄λ΄μΌκ² λ€. λͺ μΎν μ€λͺ κ³ λ§μ!!
ν΄λΉ λκΈμ μμ λμμ΅λλ€.
γ γ γ ννμ λ€μΉλλ° μμ΄ λͺΈμ‘°μ¬ν γ γ γ γ γ γ γ γ
λλ€ μ¬μ©ν΄λ μκ΄μμ μνμ²λ¦¬λ λ§κ·Έλλ‘ μνμ λ°λ₯Έ μ²λ¦¬κ³ νλνΈλ¦¬λ AIλͺ¨λμ΄κΈ° λλ¬Έμ κ°μ΄ μ¬μ©ν΄λ λ¨. μνμ²λ¦¬κΈ°λ μν κ΄λ¦¬λ§ νκ³ νλνΈλ¦¬μμλ μνμ λ°λΌ νλμ μ μ΄ νλλ‘ νλ©΄ λ¨. 곡격μ μλ₯Ό λ€λ©΄ 곡격μ΄λΌλ μνλ 곡격 λκΈ° -> 곡격 μ€ -> 곡격 μλ£ -> λκΈ°λ‘ λλ€λ©΄ νλνΈλ¦¬μμλ 곡격 μ€μΈκ°? κ·ΈλΌ μ΄λ»κ² νλ? , 곡격 μλ£ μ€? κ·ΈλΌ μ΄λ»κ² νλ? μ΄λ°μμΌλ‘ κ΄λ¦¬νλ©΄ λ¨. κ·Έλ¦¬κ³ νλνΈλ¦¬μ μνλ₯Ό λΆλ¦¬νκ³ μ¬μ©νλ©΄ λ€μν νλνΈλ¦¬(AI ν¨ν΄)μ λ§λ€μ΄μ μ¬μ©ν μ μμ. μλ₯Ό λ€μ΄ 곡격μ μΈ λ μμ λ§λ€μ΄μ λλλ νΈλμ΄ κ°μλ° μ¬μ©νκ³ μν λ μ νλ λ§λ€μ΄μ ν λΌλ‘λ μμ μ¬μ©ν μ μμ§ κ·Έλ¦¬κ³ μνμ²λ¦¬κΈ°λ λΉμ°ν ν λΌ,νΈλμ΄,λλ,μμ λ€ μ¬μ©νλκ±°κ³
ννΈκ° λ§μ΄ λμμ! κ³ λ§μ!! μνλ νλμ μΆμνν΄μ μ΄λμ λΆλ₯ν΄μΌν μ§ μ λ§ μ΄λ €μ λλ° μμκ° μ°°λ‘κ°λ€