[MSW] 메이플스토리 월드 컴포넌트의 활용

2022. 11. 15. 21:41MSW

※ 본 포스팅은 MSW 공식 디스코드 채널에 있는 개발 가이드 영상의 내용을 정리한 글입니다.

 

 

  • 입력 같은 기능이 있는 서비스에 직접 접근을 못하다보니 이벤트를 통해 처리한다.
  • KeyDownEvent의 발생위치가 서비스일 경우에는 자동으로 이벤트 수신 위치가
    service로 설정되어 있다. (이런 경우에는 대부분 따로 설정하지 않는 것이 좋다.)
  • TouchEvent는 자주 사용되는 컴포넌트 중 하나이다.
  • _EffectService:PlayEffect를 통해 스킬 이펙트 연출이 가능하다.
    _EffectService:PlayEffectAttached를 통해 엔티티를 따라다니는 이펙트 연출이 가능하다.
  • 어떤 스킬 동작 중에는 (ex. 불릿타임) 다른 조작을 못하도록 막는 bool 인자가
    필요할 것 같다.
  • self.Entity.PlayerControllerComponent.LookDirectionX 멤버는 캐릭터가 바라보고 있는
    방향을 1, -1로 나타낸다.
  • 소리발생Entity.SoundComponent:SetListenerEntity(리스너Entity)
    소리발생Entity.SoundComponent:Play() 로 거리에 따른 소리의 감쇠가 적용된
    소리를 들을 수 있다.
    (단, 소리발생 엔티티마다 이러한 SetListenerEntity과정을 거쳐야 한다?)
  • 맵 엔티티에 맵 브금을 실은 사운드 컴포넌트를 부착해 브금 연출이 가능하다.
  • 디폴트플레이어의 카메라 컴포넌트에서 ConfineCameraAt 옵션에 따라
    맵 바운더리에 따라 카메라 뷰를 조정할건지 여부를 결정할 수 있다.
    (끄면 무조건 목표 엔티티가 중앙에 나오게 된다.
    맵 바운더리는 맵 타일의 풋홀드 범위에 의해 결정된다.
    따라서 풋홀드보다 밖에 있는 영역(아무것도 없는 영역)은 카메라가 담지 못하게 하는 것이
    ConfineCamera.
    이외에도 디폴트 플레이어의 카메라 컴포넌트에 다양한 옵션이 있다.)
  • 메월드에서 카메라가 특정 오브젝트를 바라보게 하기 위해서는
    특정 오브젝트에 카메라 컴포넌트를 추가하고
    스크립트에서 CameraService:SwitchCameraTo(특정 오브젝트가 가진 카메라 컴포넌트)
    를 하면 특정 오브젝트의 카메라로 시점이 옮겨지게 된다.
    CameraService의 프라퍼티를 수정해서 시점이 옮겨질 때의 속도 등을 조정할 수 있다.
  • 포탈을 만들기 위해선 포탈컴포넌트를 붙이고 포탈의 목적지 포탈 엔티티를 설정하기만 하면 됨.
  • TeleportService:TeleportToEntity(대상엔티티, 목적지엔티티)를 이용하여 텔레포트시킬 수 있다.
  • InteractionComponent는 trigger 기능과 비슷하지만 상호작용에 특화된 컴포넌트로써,
    해당 컴포넌트가 부착된 엔티티에 접근하면 어떤 키를 눌러야 하는 지 표시된다.
    해당 상호작용은 trigger에 의해 동작하는 게 아니라 OnInteraction 메서드에 의해 동작된다.
    단, 이 컴포넌트는 Native이기 때문에 사용하기 위해선 확장해야 한다.