Unity-spatial 기초

my9univ
My9univ (토론 | 기여)님의 2023년 6월 8일 (목) 04:36 판
이동: 둘러보기, 검색
  • 왜인지 active가 안될때 : setting (톱니바퀴) - issues - check for issues 의 refresh 클릭하면 이유 알려줌!

유니티 시작하고 맛보기

  • 다운로드부터 업로드까지

  • test active scene 시 무슨 파일이 없다고 하는데, 해당 경로 들어가서 <spatial-island_defaut_0>이 적힌 파일을 해당 파일명으로 변경해주면 됨!
    • test 한 scene은 남에게는 공유할 수 없는 비공개 샌드박스에 저장됨!

공간 vs 공간 템플릿

  • 공간: 공간 패키지 자산(배지)에 연결됨! creator tool kit 공간은 무조건 공간.
  • 공간 템플릿: 재사용 가능한 환경 장면. creator tool kit에서 템플릿을 선택하면 새로운 공간으로 만들어짐~


텔레포트

  • 공식 문서: https://docs.spatial.io/avatar-teleporter
    • 별거 없음
  • Collider가 활성화된 GameObject에 배치해야 함. -> Is Trigger 체크
  • parent가 될 수 있으며, 애니메이션화도 가능
    • Hierachy 창에서 Avatar teleporter - 위치 및 크기 조정 - target 위치 조정
      • target을 기존 object위치로 할 것이라면, Teleporter object 에서 target location 을 변경해주면 됨!

point of Interest

트리거

  • object 만들기 먼저 : hierachy 우클릭 - 3d object - cube 선택
    • 만일 큐브가 안보이고 싶으면, inspector에서 Mesh를 none 선택!
    • 초록색 실선의 구모양이 트리거 존이므로 크거나 작게 조절
  • inspector 창의 enter event : 해당 영역에 들어갈때 이벤트
    • exit event는 해당 영역에서 나갈 때 이벤트
  • unity event is synced: 해당 사람만 보고 듣는지(체크 안하면) / 아니면 해당 공간의 모든 사람이 듣는 지(체크 하면)
  • animator event : 장면의 연결된 애니메니터가 있는 경우 공간으로 이동하거나 애니메이션된 개체에 연결된 애니메이션이 재생
  • quest event : 공간 퀘스트로 공간을 통해 사용자와 탐험가를 안내하고 특정 작업을 수행하거나 공간에서 특정 작업을 통해 진행상황을 얻을 수 있음
    • 해당 목차 참조

트리거 만들기

  • 큐브의 inspector에서 is Trigger 선택 - add component 클릭 - trigger 검색하여 spatial trigger event 선택
  • 혹은 Hierachy 창에서 우클릭 - spatial - trigger event
  • unity Event : + 눌러서 목차 만든 후에, 관련된 object를 inspector에 드래그앤드랍 - 기능선택 - 관련 작업
    • 색상변경: mesh randerer - material material : 색상 변경(재료의 메시를 변경)시 선택 - 변경할 색상을 none에 드래그앤드랍
    • 오디오 재생: Hierachy 에서 해당 오디오 파일을 우클릭 - audio - audio source 선택 - 오디오파일을 trigger 칸에 드래그앤드랍 - audio play 선택
      • 해당 존을 벗어나면 오디오도 중지되어야 하므로 exit event도 설정해야 함 : 오디오파일 드래그앤드랍 - audio source - stop


퀘스트

  • Hierachy 에서 우클릭하여 spatial - quest 선택
    • inspector 에서 quest name 설정과 description 설정(메타버스 화면에서 왼쪽 하단에 설명 뜨는 것!)
    • start automatically: 자동으로 퀘스트 시작 (trigger를 통해서도 시작할 수 있음!)
    • save user progress: 사용자별 진행상황 저장
    • tasks are ordered: task가 순서를 갖도록 하는 것
    • celebrate on on complete: 완료 축하(색종이 조각 애니메이션 진행)

quest rewards

  • 배지 혹은 아이템 선택
  • badge: spatial 스튜디오에서 만들면 됨
    • 배지 공식문서(영상은 배지 문서 만들어지기 전): https://docs.spatial.io/quests/badges
    • 배지 사이즈: 1024 x 1024 png인 원 모양, 1mb 최대.
    • 배지는 Spatial Portal 에서 만들면 된다고 하는데.. 없다.
    • project 에서 import new asset - 배지 파일 선택 - inspector에서 alpha source가 input texture alpha로 되어있는지 확인 - alpha is transparency 선택 - apply 클릭 - 다시 톱니바퀴(setting)에서 badge 클릭하여 select icon - create new badge
  • item :


tasks

  • 퀘스트를 완료하기 위한 작업들
  • list를 먼저 만듦 - name 붙임
  • type 선택
    • check : 행동을 하면 체크가 됨
      • 아래의 complete task와 매치되는 것
    • progress bar: 코인 수집 같은 진행율을 나타낼때
      • 아래의 add task progress와 매치되는 것
  • task markers : 퀘스트 수행을 위해 화면에 마커를 남기는 기능
  • 퀘스트에 해당하는 아이템을 묶어주기
    • trigger event 만들기 - quest 에서 해야하는 것들 앞에 놓기 - on enter event에서 quest event 설정 - quest 이름 설정 - complete task - 세부 task 이름 설정
    • trigger event가 이미 있는 것은 quest event만 설정하면 됨!
      • prefab(파란색으로 표시되는)인 경우에는 >키를 누르면 해당하면 모든 prefab에 적용됨!!!!

샘플


그 외

운전 가능한 차량

하버보드


용어

  • 공간(space): 여러 사용자가 참여하는 가상공간(메타버스)
  • 세계: 동일한 경제를 공유하는 생태계 또는 공간 모음. 하나의 세계에 속할 경우 공간1의 항목을 공간2에서 사용할 수 있음.
  • 패키지: unity를 사용하여 만든 시각적 자산
    • 공간: unity를 통해 게시한 spatial 공간
    • space template: unity에서 생성된 장면. 공간 템플릿으로 게시되면 공간이 바로 생성되지는 않고, 템플릿으로 공간을 만들 수 있음
    • avatar: 맞춤형 아바타 자산
    • avatar animation: 아바타가 재생할 수 있는 사용자 지정 애니메이션(댄스 감정 표현 등)
    • 조립식 개체: 무엇이든 가능. 운전 가능한 차량 또는 대화형 개체와 같은 다른 유형의 개체도 포함

경제

  • 경제: 사용자가 공간 내에서 얻고, 벌고, 구매할 수 있는 통화.
    • 항목: 플랫폼에서 사용자에게 배포할 수 있는 항목
    • 항목 유형: 대부분 패키지 유형에 매핑되지만, 통화 같은 일부 항목은 패키지에 연결되지 않음
      • 화신
      • emote: 사용자 반응패널에 표시되는 아바타 애니메이션
      • 조립식 개체
      • 아바타 첨부
      • 통화: 나의 세계에 해당하는 토큰. 스크립팅을 통해 사용자에게 부여 가능
      • 기본: 물리적 표현이 없는 항목. 공간에서 일부 콘텐츠를 트리거하거나 잠금 해제하는데 간단히 사용
    • 품목 범위: 품목을 사용하거나 소비할 수 있는 곳
      • 범용범위: spatial의 모든 공간에서 사용.
      • 월드범위: 동일한 월드 내 이용
  • 배낭: 사용자의 인벤토리
  • 상점: 출시예쩡으로 공간 내 사용자가 구매할 수 있는 아이템 상점.


유니티 사용

glb 이용

  • unity는 원래 glb를 지원하지 않음: https://zenn.dev/eightbeat/articles/8530fc7c833ba1 참고하여 플러그인 설치
    • 이거 해도 색 안먹히고 모양도 뭉개짐 ㅠ 블렌더로 fbx로 변경해서 넣는게 모양이라도 보여서 좋을듯~

fbx 이용

  • 색이 빠지므로 material 값을 설정해주어야 함
  • 3D를 누른 후, inspector 창에서 materials 선택 = extract materials 선택 - material 폴더 따로 만들어줌
  • 다시 3D 선택하여 material 칸의 ▽ 클릭 - surface inputs 에 base map 연결()