기본

  1. Look At Constrait을 사용

간단 확인

  1. Head Bone에 Look At Constrait을 설치
  2. 마우스 타깃으로 할 목표 오브젝트를 제작 후에 해당 Constrait에 타깃으로 적용
    • 움직임을 보면서 회전 등 미세 조정
  3. 목표 오브젝트가 마우스를 따라 다니도록 처리

블로그 이미지

RIsN

,

목표: TextMeshPro에서 숫자가 바뀔 때마다 카운팅 하여 숫자를 집어 넣도록 처리

using System.Collections;

public static class ToolText
{
    public static void CountingTo(this TMPro.TMP_Text _targetText, int _goal)
    {
        // :: 코루틴을 실행할 녀석 확인
        // :: 지금 구조에서는 App이 모든 코루틴을 실행하고 관리할 예정
        App.oInstance.StartCoroutine(_targetText.IENCountingTo(_goal));
    }
    public static IEnumerator IENCountingTo(this TMPro.TMP_Text _targetText, int _goal)
    {
        // :: 현재 값
        int current = int.Parse(_targetText.text);

        // :: Up일 경우
        while (current < _goal)
        {
            if (current + 100 < _goal) current += 100;
            else if (current + 10 < _goal) current += 10;
            else current++;

            _targetText.text = string.Format("{0}", current);
            yield return null;
        }
        // :: Down일 경우
        while (current > _goal)
        {
            if (current - 100 > _goal) current -= 100;
            else if (current - 10 > _goal) current -= 10;
            else current--;

            _targetText.text = string.Format("{0}", current);
            yield return null;
        }

        // :: 마지막 재확인
        _targetText.text = string.Format("{0}", _goal);
    }
}
블로그 이미지

RIsN

,

1. 애니메이터 컨트롤러 켜기

2. 2개의 레이어(행동, 표정)를 만들기
>> 마스크 등으로 행동 + 행동 등도 가능하지만, 우선 지금 필요한 건 행동 + 표정

3. 2개의 레이어(행동, 표정) 전부 weight 수치를 1로 설정

4. 실행시키면 동시에 애니메이션 2개(앉아서 움직임 + 눈 깜빡임)가 같이 실행되는 것을 확인 가능합니다.

 

블로그 이미지

RIsN

,
  1. Image 오브젝트 생성
  2. 거기에 Animator와 Animation을 추가
  3. Animation에 Sprite 파츠를 전부 추가
블로그 이미지

RIsN

,

[발생 이유]

  • 캐릭터의 Spine 2D 애니메이터와 이펙트의 Spine 2D 애니메이터가 다른 상황
  • 추가로 캐릭터는 동일 동작, 이펙트는 다른 이펙트를 보여주는 상황
  • 유니티로 하는 경우 이격 발생 및, 여러모로 프로그램이 귀찮아지는 상황
    • 프로그램은 짧고 단순하고, 이해하기 쉬울 수록 좋다

[전제 조건]

  • 두 파일 다 원폰 스파인 프로젝트가 있고, 동일한 버전을 사용하는 상황
  • 파츠 이름이 겹치지도 않음

[합치는 법]

  1. [이펙트 프로젝트]에서 [이펙트 JSON] 데이터로 뺌
  2. [캐릭터 프로젝트]에서 [이펙트 JSON][데이터 가져오기]로 스켈레톤 합치기
    • 여기서 문제 발생하면 안됨
  3. [캐릭터 프로젝트]에서 [프로젝트 가져오기][이펙트 애니메이션(예 A-1)]을 추가
  4. [캐릭터 프로젝트의 이미지 폴더][이펙트 프로젝트의 이미지]를 추가
  5. [캐릭터 애니메이션(예 : Attack)][이펙트 애니메이션(A-1)의 키]를 추가
  6. 합친 두 애니메이션의 위치 맞추기
  7. [이펙트 애니메이션(A-1)] 제거
  8. 다시 해당 프로젝트를 Export
블로그 이미지

RIsN

,

[유니티] 캐릭터 3D 모델 에셋에 애니메이션 입히기 with Synty Studio Asset

 

[사용 에셋]

 

=====

 

1. 유니티 에셋을 구매하셨으면, 해당 에셋을 프로젝트에 추가(Import) 합니다

2. 그러면 이제 해당 에셋들이 프로젝트에 추가되어 있을 겁니다.

>> 그 속에서 캐릭터(Character) 모델을 찾습니다.

>> Synty Studio 에셋들이라면 폴더의 Models에 Character에 있습니다. 

3. 그것을 우선 탐색창(윈도우 폴더)에서 확인하세요

4. 자 확인했으면, 이제는 인터넷을 열어서 Adobe의 Mixamo 사이트로 향합니다.

>> [Mixamo로 가기]

>> Mixamo에 도착했으면 Adobe 로그인을 하고 Animations를 열어주세요.

5. 그럼 아래와 같이 보일 겁니다.

>> 거기서 우선 오른쪽의 UPLOAD CHARACTER를 눌러주세요

6. 누르면 아래와 같이 파일을 업로드 할 수 있는 창이 나옵니다.

>> 거기에 아까 확인한 캐릭터 모델 파일(Characters.fbx)을 업로드합니다.

7. 그럼 오른쪽 창에 업로드한 캐릭터가 보일 겁니다.

>> 왼쪽에는 이제부터 이 캐릭터에 붙일 애니메이션들이 있습니다.

8. 그 중 이번에 캐릭터에 붙일 애니메이션을 찾아서 눌러주세요.

>> 그럼 오른쪽에 올린 캐릭터가 그 애니메이션을 보여줄 겁니다.

>> 그 애니메이션이 마음에 들면 오른쪽의 DOWNLOAD 버튼을 눌러주세요.

9. 그럼 이렇게 DOWNLOAD SETTINGS가 나옵니다.

>> 여기서 중요한 것은 Skin입니다.

>> 첫번째로 받을 애니메이션은

>> 캐릭터의 베이스(애니메이션을 입힐 수 있는 상태의 캐릭터)가 될 예정이므로 with Skin으로 받습니다.

>> 같은 캐릭터의 2번째 애니메이션부터는 with Skin이 없어도 됩니다.

>> 설정을 확인했으면 DOWNLOAD를 누릅니다.

10. 그럼 다운로드한 파일이 있을 건데, 그것을 이번에 다시 프로젝트에 넣어주세요.

>> 이름은 원하시는 대로, 폴더도 원하시는 대로 바꾸셔도 됩니다.

11. 그렇게 넣은 파일을 이번에는 Hierarchy 창에 넣습니다.

12. Synty Studio의 캐릭터의 경우 모든 캐릭터가 겹쳐 있습니다.

>> 이 중에서 필요없는 캐릭터들은 전부 꺼주시고, 필요한 캐릭터만 남깁니다.

13. 그러면 캐릭터가 Scene에 보입니다.

>> Synty Studio의 경우 Material이 lambert라는 이상한 게 박혀 있어서 하얗게 나옵니다.

14. 그러니 해당 캐릭터의 Inspector에서 Material을 변경해줍니다.

>> Synty Studio의 경우 에셋명에 Material_01 ~ 04 등으로 머티리얼이 되어 있습니다.

15. 자, 그럼 캐릭터가 제대로 색이 입혀져서 보입니다.

16. 이제는 애니메이션을 넣을 차례입니다.

>> 캐릭터의 가장 위의 폴더의 Inspector에서

>> Add Component로 애니메이션을 움직일 애니메이터(Animator)를 추가해줍니다.

 

17. 다음은 애니메이터 컴포넌트에 넣을 Animator Controller를 추가할 차례입니다.

>> Project 창에서 Create → Animator Conroller를 만들어줍니다.

18. 만든 Animator Controller를 우선

>> 캐릭터의 Inspector에 추가한 Animator 컴포넌트의 Controller에 넣어줍니다. 

19. 그리고 만든 Animator Controller를 열어보면?

20. 아직 아무것도 없습니다.

21. 이제는 애니메이션을 추가할 차례입니다.

>> Project 창에서 Create → Animation으로 새 애니메이션(Animation)을 만들어 줍니다.

22. 하지만 이것도 비어 있습니다.

>> 그러니 아까 받은 파일에서 애니메이션을 가져와야 합니다.

>> 프로젝트에 추가한 파일을 열어서 보면 mixamo.com이라는 애니메이션이 있습니다.

>> 이대로 이것을 애니메이터 컨트롤러(Animator Controller)에 추가해도 되지만,

>> 수정 불가(Read Only)에 반복(Loop)도 안되는 상황이라 그대로 쓸 수가 없습니다.

 

>> 우선 mixamo.com이라는 애니메이션을 열어주세요

23. 그럼 아래와 같이 잔뜩 무언가가 있습니다.

24. 이것을 Ctrl+A로 전부 잡아서 복사(Ctrl+C)해줍니다.

25. 이제 새로 만든 애니메이션을 열고

26. 아무것도 없는 이곳에다

27. 복사해줍니다.

>> 이걸로 이제 이 애니메이션은 수정도 가능하고, 반복도 편하게 할 수 있습니다.

28. 이제 다시 아까 만든 Animator Controller를 열어서

29. 아무것도 없는 이곳에 지금 많은 것을 추가해 넣은 애니메이션(New Animation)을 끌어다 놔줍니다.

30. 그럼 기본적으로 알아서 기본 애니메이션(Default)로 잡힐 겁니다.

31. 참고로 지금 이 애니메이션(New Animation)의 Inspector에서 Loop Time을 체크하면 반복적으로 움직입니다.

32. 자 이제 프로젝트를 실행해 봅시다.

33. 캐릭터가 움직이는 게 보인다면 성공입니다!

 

 

==========

 

블로그 이미지

RIsN

,