Unity third person


Material Shader 변경

  • Project창 > StartAssets > ThirdPersonController > Character > Material 폴더안 모든 Material 전체선택
  • Inspector창 > Shader > Standard로 변경

삼인칭 캐릭터 올리기

  • Project창 > StartAssets > ThirdPersonController > Prefabs > NestedParentArmature_Unpack 드래그 하여 Scene창에 드랍
  • MainCamera 삭제
  • UI_Canvas_StarterAssetsInputs_Joysticks 삭제
  • UI_EventSystem 삭제

캐릭터 바꾸기

Jammo Character | Mix and Jam


rigging setting

  • Jammo-character / models / Jammo_LowPoly 선택
  • Inspector > Rig > Animation Type : Humanoid 선택
  • Avatar Defination : Create From This Model 선택
  • Apply 적용

third person controller에 캐릭터 적용

  • Jammo-character / models / Jammo_LowPoly 드래그하여 NestedParentArmature_Unpack > PlayerAmature에 드랍
  • Geomatry 삭제
  • Skeleton 삭제

Avatar 적용

  • Hierarchy창에서 PlayerAmature 선택
  • Inspector창에서 Animator > Avatar 확인
  • Jammo-character / models / Jammo_LowPoly 우측 화살표를 클릭하여 패키지 펼치기
  • 패키지 내부에 있는 jammo-LowPoly 아바타를 드래그하여 inspector창 > Animator > Avatar에 집어 넣기

Ready Player Me

  • https://readyplayer.me/hub
  • My Avatars > +버튼 > 카메라 버튼 > 사진등록 또는 노트북의 웹캠을 이용하여 사진 캡쳐
  • 자동으로 아바타가 생성되고 고유번호가 나옴

Ready Player Me Asset

  • 최초등장하는 팝업은 x를 눌러서 닫기

  • https://readyplayer.me/hub 우측하단 공유버튼 클릭
  • 팝업에서 Copy avatar link 클릭하여 아바타 링크주소 복사

  • Main Manu > Tools > Ready Player Me > Avatar Loader 선택
  • 팝업창의 Avatar URL에 붙여넣기 (Ctrl+V, Command+V)하여 아바타 링크주소 입력
  • Load Avatar into Current Scene 선택

  • 생성된 아바타를 드래그하여 NestedParentArmature_Unpack > PlayerAmature에 드랍

  • Hierarchy창에서 아바타를 선택하고 inspector창 Animator > Avatar 클릭하면 Avatar가 어디있는지 쉽게 찾을 수 있음

  • 패키지 내부에 있는 아바타를 드래그하여 inspector창 > Animator > Avatar에 집어 넣기
  • 기존에 있던 Jammo_LowPoly는 삭제

만들어진 삼인칭 캐릭터 프리팹(prefab)화 하기

  • Hierarchy창 NestedParentArmature_Unpack 마우스 우클릭
  • prefab > Unpack Completely

  • NestedParentArmature_Unpack이름을 MyAvatar로 바꾸기
  • Project창 폴더위치를 Assets로 변경
  • Hierarchy창에서 Project창으로 MyAvatar를 드래그 드롭
  • 이렇게 Prefab등록된 삼인칭 캐릭터는 다시 Scene으로 드래그 하는 방식으로 사용가능

카메라 스위칭하기

  • ActiveCamera.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ActiveCamera : MonoBehaviour
{
    public GameObject mainCameraObject; //메인 카메라
    public GameObject characterObject; //캐릭터
    private void Update(){
        if(Input.GetKeyDown(KeyCode.Z)){
            Debug.Log("Z");
            mainCameraObject.SetActive(true);//메인카메라 켜기
            characterObject.SetActive(false);//캐릭터 끄기
        }
        if(Input.GetKeyDown(KeyCode.X)){
            Debug.Log("X");
            mainCameraObject.SetActive(false);//메인카메라 끄기
            characterObject.SetActive(true);//캐릭터 켜기
        }
    }
}