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

Jiwon Lee·2022년 7월 13일
1

MOD x Supporters

목록 보기
4/23

오늘은 일단 강의 4편인 <지형과 레이어의 이해>랑 5편 <자주 쓰는 컴포넌트>를 봤다. 4편 플탐……. 짧다 !!! 타일 종류 진짜 다양한 것 같음 싱기방기 … 레이어는 그림 그리느라 익숙한 개념이라 쉬웠던 것 같다. 10개의 레이어면 충분하겠지 ?? 보통 개발할 때 레이어 몇 개 정도 쓰려나 궁금해졌다.

다양한 컴포넌트들을 배우면서 든 생각인데 확실히 꾸미기 모드가 아니더라도 쉽게 간편하게 사용하고 설정할 수 있는 메이커인 것 같다… 그리고 익숙한 맵 나오니까 반갑구만 ㅎㅎㅎ


😏 타일 사용 규칙

지형 / 레이어 시스템 → 메이플을 충실히 표현할 수 있는 규칙을 따라감 !

  • 다양한 Tile은 모델 리스트에서 확인 가능 …
  • 하나의 레이어에는 하나의 타일만 사용 가능 !!

그리드 시스템

메이플스토리의 타일 구조를 표현하기 위한 시스템

  • 교점을 클릭 시 작은 블록, 중점을 클릭 시 큰 블록, 혹은 대각선 타일을 그릴 수 있음
  • 우클릭으로 그려진 타일을 지울 수 있음
  • 좌측 상단의 Box fill 버튼을 눌러 드래그로 사각형 그릴 수 있음

😛 Tile Map 컴포넌트

Scene Maker의 TileMap을 클릭하면 컴포넌트 및 프로퍼티 확인 가능

TileMapComponent

  • Color → 마찬가지로 색상 필터를 씌우는 역할
  • TileSetRUID → 다른 스프라이트와 마찬가지로 RUID로 설정, 혹은 눌러서 선택 가능

😮 Foot hold

캐릭터, 몬스터들이 밟고 다니는 발판 정보

→ setting - 만들기 - 발판 정보를 키거나 Scene 우측 상단의 버튼으로 정보 확인 가능

  • model list에서 foothold 카테고리로 다양한 foothold 정보를 지닌 모델 제공 중 → 엔티티 우클릭 - Edit Foothold 메뉴를 통해 발판 정보 edit도 가능 !
  • Scene Maker에서 foothold 엔티티를 선택 후 CustomFootholdComponent 컴포넌트의 속성을 수정해서 발판 정보를 편집할 수도 있음

TileMapComponent의 Foothold 관련 프로퍼티

  • FootholdDrag : 마찰력 ( 크면 빠르게 감소 )
  • FootholdForce : 캐릭터에 가해지는 힘 ( 양수면 오른쪽으로, 음수면 왼쪽으로 )
  • FootholdWalkSpeedFactor : 캐릭터의 속력 가속도

🥰 Map Layer

MapLayer 패널에서 레이어 관리 가능 ( 보이지 않을 경우 Panel에서 활성화 )

  • 하나의 맵에는 최대 10개의 레이어 존재 가능
  • 상단에 있는 레이어가 앞면에 위치됨 ( 드래그 등으로 순서 변경 가능 )
  • 레이어 우클릭 시 Rename, 삭제, 복제, 순서 변경 등 다양한 기능 존재
  • 이미 배치된 엔티티의 레이어를 바꾸고 싶다면 Scene Maker에서 object를 눌러서 SpriteRendererComponent의 SortingLayer 프로퍼티를 변경

😗 TweenComponents

TweenLineComponent

목적지를 설정하여 엔티티를 이동할 수 있게 함, 디테일하지 않은 애니메이션에 많이 사용됨

  • 종료 방식 : Oneway / OneRoundTrip( 왕복 ) / RepeatRoundTrip 존재
  • 선형운동방식 : 다양한 옵션 존재 … 속도 변화에 따라 연출이 달라짐
  • 동기화 방식 : Server는 다른 시간대에 시작 시에도 서버 단위로 움직임을 동기화시킴

TweenCircularComponent

원점 기준으로 반지름 반경의 원운동

TweenFloatingComponent

부유 운동 ( 진폭만큼 위아래로 움직임 )


😤 플레이어 관련 컴포넌트

RigidbodyComponent

유체와 반대되는 강체( 고체 ) … 들의 일반적 물리적 속성 컨트롤 ( 물리 엔진은 개발 중 )

→ 공중에 떠있지 않고 바닥에 떨어짐 ( gravity 적용 ) … 엔티티마다 기준점이 달라 바닥에 닿는 위치가 달라짐

  • isBlockVerticalLine : 막혀있는 세로 지형 무조건 통과 불가능 ( 메이플 로직 무시 )
  • isQuaterViewMode : 쿼터뷰로 변경하여 자유롭게 움직일 수 있음 ( 무중력 느낌 … )
    • QuaterView 상에서의 가속도 등의 옵션도 변경 가능

MovementComponent

캐릭터의 이동 속도와 점프 높이를 조정할 수 있음 ( 배율로 조정 )

몬스터의 경우에도 자체적인 속도가 존재하므로 설정 가능 !

TriggerComponent

플레이어에 씌워지는 BoxColider를 편집하여 객체 간의 충돌 인식 범위를 변경할 수 있음

→ 충돌 발생 시 Event Handler로 이벤트 핸들링 가능 …

MyPlayer {
	Property: 
	Function:
	Entity Event Handler: 
		self
		HandleTriggerEnterEvent ( TriggerEnterEvent event ) {
			-- Parameters
			local TriggerBodyEntity = event.TriggerBodyEntity
			---------------------
			self.Entity.RigidbodyComponent:AddForce(Vector2(5, 0)) -- 충돌 시 오른쪽으로 5
		}
}

PlayerComponent

Max HP와 PvP 모드 등을 설정할 수 있음

→ 스크립트에서는 더 다양한 내용 확인 가능 ( 닉네임, 현재 hp 등 … )

→ 관련 ui 추가 시 자동으로 UIMyInfoSimple에 PlayerComponent 내의 정보 스크립트로 작성 및 표시됨

PlayerControllerComponent

플레이어의 보는 방향 등을 조정할 수 있는 컴포넌트

이외에 SpriteGUIRendererComponent, UITransformComponent 등 존재 …

API Reference나 WorkSpace에서 Look up 해볼 수 있음 ~~

profile
노는 게 제일 좋은데 공부는 하고 싶어요 😗

0개의 댓글