오늘은 일단 강의 4편인 <지형과 레이어의 이해>랑 5편 <자주 쓰는 컴포넌트>를 봤다. 4편 플탐……. 짧다 !!! 타일 종류 진짜 다양한 것 같음 싱기방기 … 레이어는 그림 그리느라 익숙한 개념이라 쉬웠던 것 같다. 10개의 레이어면 충분하겠지 ?? 보통 개발할 때 레이어 몇 개 정도 쓰려나 궁금해졌다.
다양한 컴포넌트들을 배우면서 든 생각인데 확실히 꾸미기 모드가 아니더라도 쉽게 간편하게 사용하고 설정할 수 있는 메이커인 것 같다… 그리고 익숙한 맵 나오니까 반갑구만 ㅎㅎㅎ
지형 / 레이어 시스템 → 메이플을 충실히 표현할 수 있는 규칙을 따라감 !
메이플스토리의 타일 구조
를 표현하기 위한 시스템
Box fill
버튼을 눌러 드래그로 사각형 그릴 수 있음Scene Maker의 TileMap을 클릭하면 컴포넌트 및 프로퍼티 확인 가능
Color
→ 마찬가지로 색상 필터를 씌우는 역할TileSetRUID
→ 다른 스프라이트와 마찬가지로 RUID로 설정, 혹은 눌러서 선택 가능캐릭터, 몬스터들이 밟고 다니는 발판 정보 …
→ setting - 만들기 - 발판 정보를 키거나 Scene 우측 상단의 버튼으로 정보 확인 가능
Edit Foothold
메뉴를 통해 발판 정보 edit도 가능 !CustomFootholdComponent
컴포넌트의 속성을 수정해서 발판 정보를 편집할 수도 있음FootholdDrag
: 마찰력 ( 크면 빠르게 감소 )FootholdForce
: 캐릭터에 가해지는 힘 ( 양수면 오른쪽으로, 음수면 왼쪽으로 )FootholdWalkSpeedFactor
: 캐릭터의 속력 가속도MapLayer
패널에서 레이어 관리 가능 ( 보이지 않을 경우 Panel에서 활성화 )
SortingLayer
프로퍼티를 변경목적지를 설정하여 엔티티를 이동할 수 있게 함, 디테일하지 않은 애니메이션에 많이 사용됨
종료 방식
: Oneway / OneRoundTrip( 왕복 ) / RepeatRoundTrip 존재선형운동방식
: 다양한 옵션 존재 … 속도 변화에 따라 연출이 달라짐동기화 방식
: Server는 다른 시간대에 시작 시에도 서버 단위로 움직임을 동기화시킴원점 기준으로 반지름 반경의 원운동
부유 운동 ( 진폭만큼 위아래로 움직임 )
유체와 반대되는 강체( 고체 ) … 들의 일반적 물리적 속성 컨트롤 ( 물리 엔진은 개발 중 )
→ 공중에 떠있지 않고 바닥에 떨어짐 ( gravity 적용 ) … 엔티티마다 기준점이 달라 바닥에 닿는 위치가 달라짐
isBlockVerticalLine
: 막혀있는 세로 지형 무조건 통과 불가능 ( 메이플 로직 무시 )isQuaterViewMode
: 쿼터뷰로 변경하여 자유롭게 움직일 수 있음 ( 무중력 느낌 … )캐릭터의 이동 속도와 점프 높이를 조정할 수 있음 ( 배율로 조정 )
몬스터의 경우에도 자체적인 속도가 존재하므로 설정 가능 !
플레이어에 씌워지는 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
}
}
Max HP와 PvP 모드 등을 설정할 수 있음
→ 스크립트에서는 더 다양한 내용 확인 가능 ( 닉네임, 현재 hp 등 … )
→ 관련 ui 추가 시 자동으로 UIMyInfoSimple에 PlayerComponent 내의 정보 스크립트로 작성 및 표시됨
플레이어의 보는 방향 등을 조정할 수 있는 컴포넌트
이외에 SpriteGUIRendererComponent
, UITransformComponent
등 존재 …
API Reference나 WorkSpace에서 Look up 해볼 수 있음 ~~