멋쟁이사자처럼 X 넥슨 MOD Suppoters Hackathon 5주차 회고

ssunn·2022년 6월 12일
0

저번주까지는 주로 이론적인 부분에 대해 배웠다.
그래서 이번 시간부터는 좀 더 실용적인 부분에 대해 배웠다.
자주 사용하는 컴포넌트 위주로 MOD API를 소개하는 시간이었다.

캐릭터 움직임에 관여하는 컴포넌트

MovementComponent

DefaultPlayer에 기본적으로 탑재되어 있다.

InputSpeed : 이동 속도 (x축)
JumpForce : 점프력 (y축)

RigidBodyComponent

기본 물리
일반적인 세계에서 영향을 받는 움직임을 따라가는 컴포넌트

DownJumpSpeed : 하단 점프 속도
Gravity : 중력값. 점프를 했을 때 떨어지는 속도
IsBlockVerticalLine : 활성화 시 기둥을 뚫고 지나갈 수 없음
IsolatedMove : 활성화 시 낭떠러지 등 발판이 이어져 있지 않을 때 그 지점에서 더 이상 앞으로 갈 수 없음
Mass : 질량. 질량이 커지면 속도를 내기까지 시간이 오래 걸려 가속이 늦게 붙음. 가속이 붙기까지의 시간

QuaterView

밑의 그림과 같이 중력에 영향을 받지 않고 평면에서 움직이는 것처럼 보인다.
QuaterViewAccelerationX, QuaterViewAccelerationY는 이 뷰로 설정해야만 영향을 준다.

TriggerComponent

충돌 효과를 적용하는 컴포넌트
충돌했을 때 일어나는 효과는 따로 Component를 만들어야한다.

TriggerComponent는 다음과 같은 이벤트를 갖고 있다.

TriggerEnterEvent : 충돌이 시작됐을 때
TriggerLeaveEvent : 충돌이 끝났을 때
TriggerStayEvent : 충돌이 진행중일 때

주로 Enter, Leave를 사용. Stay는 계속 지속되기 때문에 조절 잘해야한다.

TriggerEnterEvent 활용 예시

SetForce 함수로 움직임 설정

위와 같이 self.force를 주고 직접 force를 지정해줄 수도 있다 → 같은 아이템 복제시 사용하기 용이함.

닿았을 때 속도 빨라짐+점프력 올라감+아이템 사라짐 예시

충돌 처리를 할 때 TriggerComponent는 꼭 추가해줘야한다 (추가 안하고 ItemComponent만 추가했다가 왜 안되지… 하고 있었던..)

WebSpriteComponent

웹에 있는 이미지를 가져와서 표시해준다.
url에 이미지 경로를 적으면 된다.
위치 좌표는 월드 좌표계를 따른다.(월드 내에 있기 때문)

상하 반전, 좌우 반전, 레이어 설정, 색깔 변경 등등 가능하다.
또한 AnimationUrl로 애니메이션을 만들 수 있다.
위에서는 사진 두가지의 주소를 넣어 사진 두개를 애니메이션 처리했다.

YoutubePlayerWorldComponent

YoutubePlayerGUIComponent : UI 상에서 표시해줄 때 사용
YoutubePlayerWorldComponent : 월드상에 표시할 때 사용

사용법 자체는 별로 다를 거 없다.

AvatarRendererComponent & CostumeManagerComponent

기본적으로 내 외형에 덮어씌운 형태
완전히 다르게 커스텀 하고 싶으면 UseCustomEquip을 클릭하면 된다.
왼쪽이 기본 캐릭터, 오른쪽이 커스텀한 캐릭터

입력/조작/연출에 관여하는 컴포넌트

입력 관련 컴포넌트

KeyDownEvent : 키를 1번 눌렀을 때 발생
KeyHoldEvent : 키를 누르는 동안 발생
KeyReleaseEvent : 키를 길게 눌렀다 뗐을 때 발생
KeyUpEvent : 키를 1번 눌렀을 때 발생

  • KeyboardKey.P → P키를 눌렀을 때 이벤트 발생

위에 세개는 스크린 터치시 이벤트
밑에 세개는 엔터티 터치시 이벤트
이벤트를 추가하려는 컴포넌트에 TouchReceiveComponent를 추가해줘야한다.

터치 이벤트 예시1

터치 이벤트 예시2

예시) DontTouch 컴포넌트 터치 이벤트

스킬 효과 ui 사용 예시

좌표를 스크립트 상에서 PlayEffect로 지정해줄 경우 위치가 월드 기준으로 지정된다.
PlayEffectAttached를 사용하면 어떤 엔티티에 효과를 붙일 것인지 지정할 수 있음. 그리고 로컬 포지션과 로컬 스케일 전부 지정 가능함.


SoundComponent

별도의 스크립트 작업을 해주지 않으면 사운드 효과가 작동하지 않는다.
스크립트 작업 없이 테스트 해보고 싶을 때 → PlayOnEnable 사용

사운드 컴포넌트를 나와의 거리에 따라 처리한다.
bgm은 map 엔티티의 사운드 컴포넌트에 의해 동작한다.

CameraComponent

카메라 컴포넌트 사용예시

목적지가 어디인지 보여주고 다시 원위치

  • ConfineCameraArea : 카메라가 맵 영역 안만 보여주게 걸림

PortalComponent

  • TriggerMove라는 새로운 컴포넌트를 생성했을 때

  • InteractionComponent의 확장 컴포넌트를 생성했을 때


사다리 Component

사다리 엔티티가 기본적으로 갖고 있는 컴포넌트

사다리or로프가 아님에도 오를 수 있게 하고 싶으면 ClimbableComponent를 추가해주면 된다.


사다리와 로프의 경우 head와 tail이 나눠져 있어 다른 테마로 변경 가능하다.

profile
BackEnd Developer

0개의 댓글