유니티에서 GLB파일 사용하는 방법
서론
Metaverse 3D Avatar Creator | Ready Player Me
Create a full-body 3D avatar with a selfie and use it in the metaverse. Developer? Integrate our avatar platform into your app or game.
readyplayer.me
현재 졸업작품에 캐릭터 모델이 아직 나오지 않았기에 Ready Player Me 라는 사이트에서 만들었던 내 아바타를 임시로 유니티에서 사용하고 있었다.
Ready Player Me에서는 모델을 .glb 형식으로만 다운받을 수 있기에 유니티에서 사용하기 위해 방법을 찾아야 했다.
이전까지는 GLB to FBX, GLB to 자산 추출기 등으로 FBX 파일로 변환 후에 유니티에 임포트했었다.
하지만, 이렇게 변환하니 텍스쳐 파일이 누락되는 등의 손실이 발생했었기에 다른 방법을 찾아야만 했다.
방법을 찾다 보니 Blender에서 glb파일을 임포트 할 수 있다는 것을 알게되었다.!!!
방법
1. 파일 ▶ 가져오기 ▶ glTF 2.0 ▶ 원하는 glb파일 선택

2. 파일 ▶ 내보내기 ▶ FBX

3. 만약 텍스쳐가 같이 나오지 않았다면, Texture Paint ▶ 텍스쳐 선택 ▶ 이미지 ▶ 다른 이름으로 저장하기를 누르면 텍스쳐를 저장할 수 있다.


4. 유니티에서 텍스쳐를 머티리얼로 만든 후, 모델의 On Demand Remap에 배치

캐릭터에 스폰 효과 적용하기
기존에는 캐릭터가 스폰되면 아무것도 없던 공간에 쌩뚱맞게 생겼었다. 조금 더 이쁘게 표현하기 위해 방법을 갈구하던 중, 셰이더 그래프를 통해 Phase 효과를 주어 이쁘게 스폰할 수 있는 영상을 발견하였다.
위 영상을 보고 캐릭터의 스폰 효과를 낼 수 있는 셰이더 그래프를 만들어 보았다.
영상과 다른점이 있다면 Position노드의 Space를 월드의 높이가 아닌 오브젝트의 높이를 기준으로 맞춰준 것 밖에 없다.
캐릭터의 머티리얼을 복사한 후에 복사된 머티리얼에 셰이더 그래프를 적용시켜주고, 캐릭터에 넣어주면 Split Value값에 의해 보이는 양이 바뀌는 것을 볼 수 있다.
using System.Collections;
using UnityEngine;
public class PlayerSpawn : MonoBehaviour
{
[SerializeField] private Material mtrlOrg;
private Renderer _renderer;
private float _first = -1.1f;
private float _last = 1.1f;
// Start is called before the first frame update
void Start()
{
_renderer = GetComponent<SkinnedMeshRenderer>();
StartCoroutine(Spawn());
}
IEnumerator Spawn()
{
while(_first < _last)
{
yield return null;
_first += 0.005f;
_renderer.material.SetFloat("_Split_Value", first);
}
_renderer.material = mtrlOrg;
enabled = false;
yield break;
}
}
캐릭터가 처음 생성되었을 때, 이 효과를 구현하기 위해 간단한 스크립트를 하나 작성하였다.
작성한 스크립트를 머티리얼이 있는곳에 각각 배치한 후, 본래의 머티리얼을 변수에 집어넣어 주면..
완성~~~!!
'포트폴리오 > 졸업작품' 카테고리의 다른 글
[MetaEdu] 유니티 전광판처럼 표현하기! (초간단) (0) | 2023.02.22 |
---|---|
[MetaEdu] 토큰번호 만들기!! (0) | 2023.02.22 |
[MetaEdu] 포톤을 사용한 로딩 창 만들기! (0) | 2023.02.01 |
[MetaEdu] New Input System의 키(바인딩)를 변경하는 방법! (0) | 2023.02.01 |
[MetaEdu] 캐릭터 얼굴에 그림자가 지던 현상 해결! (0) | 2023.02.01 |