HelperType (헬퍼타입) 에 대해 알아봅시다.
페이지 정보
본문
HelperType (헬퍼타입) 에 대해 알아봅시다.
*** 서론 ***
보통 Helper (헬퍼) 를 사용할 땐
[state ]
type = Helper
(생략)
HelperType = Normal
이렇게 사용합니다.
여기서 HelperType (헬퍼타입) 에는 Normal (노멀) 과 Player (플레이어) 가 들어갈 수 있는데요,
대부분의 경우, 헬퍼타입은 위와 같이 노멀로 설정해 둡니다.
오늘은 헬퍼타입을 플레이어로 설정했을 때, 무슨 일이 일어나는지 알려드리도록 하겠습니다.
*** 목차 ***
1. [statedef -?]
2. PlayerPush
3. 플레이어 인식
*** 1. [statedef -?] ***
여러분도 아시다시피 [statedef -2]와 [statedef -3]은 항상 실행되는 스테이트입니다.
그런데, 헬퍼타입이 플레이어인 헬퍼는 [statedef -2]와 [statedef -3]의 영향을 받게 됩니다.
따라서, 캐릭터를 무적으로 만들어 놓기 위해서
[statedef -2]
[state ]
type = NorHitBy
trigger1 = 1
value = SCA
이렇게 해 놓으면 헬퍼타입이 플레이어인 헬퍼까지 무적이 되어 버리게 됩니다.
따라서, 헬퍼타입이 플레이어인 헬퍼를 다루실 땐, [statedef -2]와 [statedef -3]에 신경을
써주셔야 합니다.
예를 들어 드리자면,
[statedef -2]
[state ]
type = NotHitBy
trigger1 = IsHelper = 0
value = SCA
이런 식으로 IsHelper 트리거를 이용하시면 됩니다. (소문자로 쓰면 ishelper 이겠지요.)
IsHelper 트리거는 헬퍼인지 아닌지를 판별해 주는 트리거로서, 사용하는 주체가 헬퍼라면
1 값을 나타내고, 헬퍼가 아니라면 0 을 나타냅니다.
따라서, 헬퍼가 [statedef -2]를 읽을 때는 IsHelper 값이 1 을 나타내므로
위의 NotHitBy 는 동작하지 않게 됩니다.
그렇기 때문에 헬퍼가 무적 명령어의 영향을 받지 않을 수가 있게 됩니다.
반대로
trigger1 = IsHelper = 1
이렇게 사용할 수도 있겠지요.
특정한 ID 를 가진 헬퍼를 찾고 싶을 땐,
IsHelper (1000) 이런 식으로 사용해 주시면 됩니다.
이전에 말씀해 드린 적이 있지만, 무겐에서는 띄어쓰기나 대소문자를 따로 감지하지 않기 때문에
ishelper(1000) 이렇게 써주셔도 같은 결과를 냅니다.
헬퍼타입이 플레이어인 헬퍼라도 [statedef -1]의 영향은 받지 않습니다.
헬퍼를 만들 때
keyctrl 값을 1 로 주면 [statedef -1]의 영향을 받게 됩니다.
헬퍼의 구조는 캐릭터만큼 복잡하지 않습니다.
따라서 헬퍼로 여러 가지 복잡한 효과를 시도할 경우, 자잘한 버그가 발생하는 경우가 많습니다.
예를 들자면, 헬퍼가 상대 스테이트로 갔을 때 발생하는 버그 등이 있겠네요.
하지만 헬퍼타입이 플레이어인 헬퍼를 사용하면 이러한 버그가 하나도 없는 헬퍼를
만들 수가 있습니다.
물론 훨씬 더 많은 작업이 필요하기에 많은 공을 들여야만 합니다.
*** 2. PlayerPush ***
헬퍼타입이 노멀인 헬퍼는 상대와 부딪히더라도 상대를 밀쳐내지 않습니다.
하지만 헬퍼타입이 플레이어인 헬퍼는 마치 하나의 캐릭터인 것처럼 상대를 밀쳐냅니다.
따라서 PlayerPush 명령어를 적절히 사용해서 예상치 못했던 오류가 일어나지
않도록 만들어 줍시다.
*** 3. 플레이어 인식 ***
헬퍼타입이 플레이어인 헬퍼는 상대에게 하나의 "플레이어"로 인식됩니다.
따라서 상대방이 그 헬퍼와 가까워졌을 경우, 상대방은 그 헬퍼를 바라보게 됩니다.
그렇기에 상대방이 멋대로 뒤돌아 버리는 경우가 발생할 수 있습니다.
마찬가지의 이유로 헬퍼타입이 플레이어인 헬퍼가 게임 화면의 움직임에 영향을
줄 수도 있습니다.
이는 헬퍼를 만들 때,
[state ]
type = Helper
(생략)
HelperType = Player
StateNo = 5150
이렇게 5150번 스테이트로 지정해 주면 예방할 수 있습니다.
[statedef 5150]은 무겐의 Data 폴더 안에 있는 common1.cns 파일에 있는 스테이트입니다.
캐릭터가 죽고 나서 누워 있는 상태일 때, 이 스테이트로 이동하게 됩니다.
2 : 2 대전을 할 때, 상대가 뒤로 넘어가면 캐릭터는 자연스럽게 뒤로 돕니다.
하지만 죽어서 누워 있는 상대에게는 반응하지 않습니다.
마찬가지로 5150 스테이트에 있는 헬퍼는 헬퍼타입이 플레이어일지라도
하나의 캐릭터로 인식되지 않게 됩니다.
이를 이용하면 좀더 완성도 높은 헬퍼를 만들 수 있습니다.
- 이전글지정 연산자 (assignment operator, :=) 에 대한 간략한 설명 24.02.06
- 다음글반사데미지 24.02.05
댓글목록
등록된 댓글이 없습니다.