[2023 메타버스 달서 공모전] 출품을 위해, 제페토를 공부하는 일지
ZepetoPlayers
오브젝트 생성하이어라키 뷰에서 우클릭 [ZEPETO] → [ZepetoPlayers]
캐릭터 컨트롤러 모듈을 관리하는 컴포넌트이다. 인스펙터 창에서 캐릭터 컨트롤과 관련된 설정값을 지정할 수 있다고 한다.
우리가 직접 움직일 캐릭터를 제페토에서 불러와야 한다.
Player
라는 빈 오브젝트를 하나 만들어 준다.
Asset 폴더에 Scripts > Controller 폴더를 하나 생성한 후, 그 안에 타입스크립트를 생성한다.
이름은 CharacterController.ts
로 설정해 주었다.
CharacterController.ts
import { ZepetoScriptBehaviour } from 'ZEPETO.Script'
import { SpawnInfo, ZepetoPlayers, LocalPlayer } from 'ZEPETO.Character.Controller';
export default class CharacterController extends ZepetoScriptBehaviour {
Start() {
ZepetoPlayers.instance.CreatePlayerWithZepetoId("", "[ZEPETO_ID]", new SpawnInfo(), true);
ZepetoPlayers.instance.OnAddedLocalPlayer.AddListener(() => {
let _player : LocalPlayer = ZepetoPlayers.instance.LocalPlayer;
});
}
}
Player
오브젝트에, Zepeto Script
컴포넌트를 추가한 후, 방금 작성한 CharacterController.ts
스크립트를 드래그해서 넣어준다.
실행 결과
참고로, CharacterController.ts
에 [ZEPETO_ID] 부분에 내 닉네임을 넣으면, 내 아바타가 불러와진다.
내 아바타 | 유니티 |
---|---|
ZepetoPlayers
오브젝트의 속성들을 조정해 주기로 했다.
카메라 높이가 너무 높은 것 같아서 Y 값을 0.5 정도로 낮추었다.
점프의 높이가 너무 낮아서 Jump Power의 값을 10으로 높였다.
Use DoubleJump 옵션을 체크했다.
실행 결과
제페토는 빌드잇이라는 월드 제작 툴도 제공한다.
기본적으로 제공하는 템플릿을 가져와 보았다.
인터페이스와 조작이 굉장히 직관적이어서 좋았다. 다만 배치 시에 바로 오브젝트를 회전할 수 있다면 좋았을 것 같다.
만든 맵을 직접 캐릭터를 조작해보며 테스트해 볼 수도 있다.
저장하면 내가 만든 월드에 저렇게 뜬다.
유니티에서 제페토 로그인
유니티 최상단 메뉴 [Window] → [Package Manager]
My Registries를 선택한 후, ZEPETO.Buildit.Loader를 설치한다
유니티 최상단 메뉴 [ZEPETO] → [Buildit] → [Map Loader]
그러면 방금 만든 월드가 나오는데, 원하는 월드를 더블 클릭해서 로드할 수 있다.
그래서 받아봤더니... 그래픽 오류가 난다.
심지어 실행해보니 스폰 위치도 이상하다..
어떤 오류가 생길지 모르기 때문에, 빌드잇에서 만들어서 유니티로 불러오는 방법은 포기하기로 했다.
빌드잇에서 제공하는 오브젝트들을 유니티에서도 사용할 수 있다.
유니티 최상단 메뉴 [Window] → [Package Manager]
Packages의 하위 폴더에서, 원하는 오브젝트의 프리팹을 선택해서 사용하면 된다.
그냥 프리팹을 신 뷰에 드래그 하면 된다.
실행 결과