라벨이 4. 상태 그래프인 게시물 표시

상태 그래프를 이용한 상태 전환 작업

이미지
상태(States)는 오브젝트가 특정 상태에 있을 때 어떻게 행동해야 하는지를 규정하는 것이다.   상태(State)는 주로 인공지능(AI) 행동, 씬이나 레벨 구조 또는 상태 전환을 위해 요구되는 씬의 어떤 측면에 사용된다.   예를 들어, 적이면서 비 비플레이어 캐릭터의 상태 머신(state machine)은 "순찰(Patrolling)", "추적(Chasing)", "공격(Attacking)", "도피(Fleeing)" 네 개의 상태를 가질 수 있고, 문의 상태 기계은 "잠김(Locked)", "잠금 해제(Unlocked)", "열림(Open)" 세 개의 상태를 가질 수 있다.   그래프에 추가할 수 있는 상태 타입은 스크립트 상태(Script State)와 수퍼 상태(Super State) 두 가지가 있다. 스크립트 상태(Script State)는 중첩된(nested) 스크립트 그래프(script graph)로 구성되며, 수퍼 상태(Super State)에는 중첩된(nested) 상태 그래프(state graph)로 구성된다.   (역자주-이후 부터는 상태라는 말 대신 State(스테이트)라고 사용하겠다. 텍스트가 번역된 것이 아니기 때문에 스테이트를 머릿속에서 상태라고 번역해 가며 읽지 않기 때문에 스테이트라고 바로 읽는 것이 더 자연스럽다.)   참고: State는 트랜지션(Transitions)을 통해 다른 State로 연결(전환)된다.   Script State와 Super State 두 가지 모두 "nesters" 형태인데 이는 머신(Machine)과 똑같은 원리로 동작한다는 것을 의미한다. 즉, 해당 하위 그래프(Sub-graph)는 내장시키는 임배드(embed)로 작업하거나 참조형으로 연결시키는 그래프(graph)로 작업할 수 있다.  Super State의 인스펙터(Inspector)도  같은 방식...

트랜지션을 이용한 상태 전환

이미지
트랜지션(Transitions)은 비주얼 스크립팅이 활성 상태를 다른 상태로 전환하는 조건을 갖고 있는 상태간 연결점을 말한다. 트랜지션 편집하기 Script State와 마찬가지로 트랜지션은 Script Graph로 이루어져 있다. Transition Node 위의 예에서는 새로운 상태로 전환할 수 없는 문제점을 가지고 있다.  Event 가 언제 발동해야 하는지를 지정하지 않았기  때문에 결고 상태가 전환할 수 없는 것이다.  따라서  목적 상태와 트랜지션 둘 다 흐리게 표시되고 있다.  트랜지션 유닛을  더블 클릭하거나 Edit Graph 버튼을 클릭하면 트랜지션 그래프가 나타난다.   기본적으로 다음과 같이 구성된다. Transition Event 트리거 상태 전환 유닛(Trigger State Transition Unit)은 부모의 상태가 이 트랜지션 조건에 따라 상태가 변경되어야 한다는 것을 지시하는 특별한 유닛이다.  이벤트(events)나 조건(if)과 같은 유닛을 상태 전환 그래프에서 사용하면 된다.   예를 들어, "Player" tag가 붙은 게임 오브젝트가 적(Enemy)에게 감지(trigger)된다면 그 적은 추척 상태(chase state)로 전환된다고 할 때, 그 그래프는 다음과 같이 그려 질 수 있다. Transition Event 예시 끝으로 상위 상태 그래프에서 트랜지션의 라벨을 변경하고자 한다면, 해당 트랜지션을 선택하고 그래프 인스펙터에서 타이틀을 작성하면 된다.   상위 상태로 돌아가면 트랜지션은 다음과 같이 나타난다.(역자주-트랜지션 내부에 조건 스크립트를 작성하고 나오면 아이콘이 변경 된다.) Transition Node 트랜지션에 직접 제목을 작성하지 않을 경우, 이벤트의 이름과 설명이 자동으로 지정된다.   트랜지션 라벨은 항상 보이는 것이 디폴트이다.   이것이 그래프에서 너무 많이 차지하여 변경하고 싶다면,...

트랜지션 만들기

이미지
상태(State)는 트랜지션(Transition)으로 연결되어 있으며, 연결된 상태들이 실행되는 순서가 그 트랜지션들에 의해 결정된다.   트랜지션을 만드는 방법 상태 노드위에서 마우스 오른쪽 클릭 후  Make Transition 을 선택한다. 다음 중 하나를 수행한다. 목적 상태를 클릭한다. Make Transition 새로운 상태를 자동으로 생성하고자 한다면 빈 공간에 트랜지션 끝을 놓으면 된다. Make Transition state 노드 위에서   Ctrl-Click (Mac:   Cmd-Click )을 하고 끌어서 트랜지션을 생성한다. Make Transition Make Transition   <원문> https://docs.unity3d.com/Packages/com.unity.visualscripting@1.7/manual/vs-creating-transition.html

스테이트 유닛

이미지
State Unit(스테이트 유닛) 은   Super Unit(수펴 유닛) 과   유사하지만, 스크립트 그래프가 아닌 상태 그래프에서 이용되며 부모 스크립트 그래프 단계에서 하나의 유닛(상태 유닛)으로 전체 상태 그래프를 감쌀 수 있도록 해준다. State Unit은 시작(Start)과 중지(Stop)를 나타내는 제어 입력 포트(Control Input Port) 2개와 이에 매칭되는 제어 출력 포트(Control Output Port) 2개가 있다. State Unit State Unit이 시작되면 그 내부에 있는 상태 그래프의 모든 Start State가 발동된다. 또한 State Unit이 멈추게 되면 그 내부에 있는 모든 상태와 트랜지션이 비활성 상태가 된다.   <원문> https://docs.unity3d.com/Packages/com.unity.visualscripting@1.7/manual/vs-state-units.html

스테이트 유닛 만들기

State Unit(스테이트 유닛) 은   Super Unit(수펴 유닛) 과   유사하지만, 스크립트 그래프가 아닌 상태 그래프에서 이용되며 부모 스크립트 그래프 단계에서 하나의 유닛(상태 유닛)으로 전체 상태 그래프를 감쌀 수 있도록 해준다.   State Unit을 생성하려면: 다음 중 하나를 수행한다. 퍼지 파인더에서   Nesting   > State Unit 를 선택한다.  State Unit 내부의 그래프를 편집하려면  노드를 두 번   Double-click 하거나 인스펙터에 있는 Edit Graph 버튼을 클릭한다.  그래프에서: 그래프 현집창 위로 그래프 에셋을 끌어다 놓거나 퍼지 파인더의 그래프 카테고리에서 원하는 항목을 선택한다. <원문> https://docs.unity3d.com/Packages/com.unity.visualscripting@1.7/manual/vs-creating-state-unit.html