목표: 3D 카메라로 바라보는 3D 오브젝트의 위치에 UI 카메라 상의 캔버스에 이미지를 표시
>> 사용 이유: 내가 선호하는 구조가 3D 카메라와 UI카메라의 복합적인 구조

using System;
using UnityEngine;

public static class ToolCamera
{
    public static Vector3 ConvertPosition3DTo2DLocal(this Camera _camera3D,
    Camera _camera2D, Canvas _canvas, Vector3 _position3D)
    {
        // :: 3D 카메라에서의 3D 위치를 3D 카메라에서의 2D 위치로 변경
        Vector3 position2Din3D = _camera3D.WorldToScreenPoint(_position3D);

        // :: 3D 카메라에서의 2D 위치를 UI(2D) 카메라에서의 2D 로컬 위치로 변경
        Vector2 result;
        RectTransformUtility.ScreenPointToLocalPointInRectangle(
            _canvas.transform as RectTransform, position2Din3D, _camera2D, out result);

        // :: Z축은 0으로 고정
        return new Vector3(result.x, result.y, 0);
    }
}

 

블로그 이미지

RIsN

,

[Unity Tutorial] 3Dキャラクターにアニメーションを追加する

:Unityの3Dアセットは色々と良いものがありますがアニメーションがいない時があります、

:その時AdobeのMixamoを使ってAnimationを簡単に入れるのが可能です。

:これはその方法の記録です。

 

[使用したアセット]

 

=====

 

1. Unityのアセットを買ったら、プロジェクトに追加(Import)しましょう。

2. そうしたらプロジェクトに該当アセットが見れるはず、

>> その中でキャラクター(Character)モデルを探しましょう。

>> Synty StudioのアセットならModelsにCharacter.fbxがあります。 

3. まずそれをフォルダーウィンドウで確認してください。

4. さ、確認(.fbx)したなら、今回はAdobeのMixamoサイトに行きましょう。

>> [Mixamo]

>> Mixamoに到着したら、まずAdobeログインしてAnimationsを開けてください。

5. そうすると下記の通り見えます。

>> そこで右のUPLOAD CHARACTERを押して、

>> さっき確認したキャラクターをアップロードしてください。

6. それじゃ右にキャラが見えます。

>> その状況で左のアニメーションを選択するとキャラが動きます。

>> アニメーションが気に入ったなら右のDOWNLOADを押してください。

7. それじゃ下記の通りDOWNLOAD SETTINGS出ます。

>> ここで重要なものはSkinです。

>> 最初にダウンロードするアニメーションはキャラクターSkinと一緒にDOWNLOADしましょう。

>> 2回目のアニメーションからはwith Skinではなくても良いんです。

>> さ、DOWNLOADしましょう。

8. そしてそのダウンロードしたファイルをプロジェクトに入れてください。

9. 入れたファイルを今回はHierarchyに入れます。

10. Synty Studioの場合すべてのキャラが重なっています。

>> 必要ないキャラはOffしましょう。

11. そうするとキャラが見えますが、白く見えます。

>> Materialが別のものなのでこう見えます。

>> キャラに合ったMaterialを入れましょう。

>> Synty Studioの場合アセット名にMaterial01~04などになっています。

12. さ、アニメーションを入れましょう。

>> キャラにアニメーションを動くアニメーター(Animator)を追加してください。

 

13. 次はアニメーターに入れるAnimator Controllerを生成します。

14. 作ったAnimator ControllerはキャラのAnimatorに入れます。

15. まだAnimator Controllerには何もありません。

16. 今回はAnimator Controllerに入れるAnimationを作ります。

17. だがこれも開けても何もありません。

>> さっきMixamoからダウンロードしてプロジェクトに追加したファイルを開けるとmixamo.comと言うアニメーションがあります。

>> これを開けてください。

18. そのアニメーションを全部コピーします。

19. コピーしたら、さっき新しく作ったアニメーションを開けて貼り付けてください。

20. さ、アニメーションは完了です。

>> さっき作ったAnimator Controllerを開けてそのAnimationをドラグして入れます。

21. 参考ですが、このアニメーション(New Animation)のInspectorでLoop Timeをチェックするとループで動きます。

22. さ、実行してみましょう。

23. キャラが動いたら成功です!

 

 

==========

 

블로그 이미지

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

,

프로젝트명 : First Step

프로젝트 목적 : 성공적인 취업

[최신 프레젠테이션]

 

=====

 

[사용 에셋]

 

 

=====

 

youtu.be/B78Qaqb0GZE

 

[개발 일지]

  • 포톤 수정
    • 쓸데없는 Log 발생 및 확인처리 제거
  • 승리 판정
    • 보드에 생존해 있는 것이 있으면 승리, 둘 다 생존해 있으면 NONE
  • [R&D 종료]

[수정 필요]

 

[차후 이해가 필요한 것]

  • 동기화 데이터에 대한 지속적인 실증적 이해

==========

 

블로그 이미지

RIsN

,

프로젝트명 : First Step

프로젝트 목적 : 성공적인 취업

[최신 프레젠테이션]

 

=====

 

[사용 에셋]

 

 

=====

 

 

[개발 일지]

  • 포톤 수정
    • Instantiate 방식에서 Object Pooling 방식으로 변경
      • Photon의 PhotonNetwork.Instantiate가 너무나도 불안정함
    • MasterClient를 기본으로 해서 RPC를 통해 뿌려주도록 변경
      • 아니면 중복적으로 될 때가 많음
  • 자동 일반 공격
    • Sphere를 사용한 범위내 확인 후 1명을 공격

 

[수정 필요]

 

[차후 이해가 필요한 것]

  • 동기화 데이터에 대한 지속적인 실증적 이해

==========

 

블로그 이미지

RIsN

,

프로젝트명 : First Step

프로젝트 목적 : 성공적인 취업

[최신 프레젠테이션]

 

=====

 

[사용 에셋]

 

 

=====

 

youtu.be/gC4Dg_prdEE

 

[개발 일지]

> 지속적인 포톤 서버 R&D

> Drag & Drop 배치

 

[수정 필요]

> 캐릭터가 Photon View를 가지고 있으면 새로 생성이 아닌 위치 이동 처리

 

[차후 이해가 필요한 것]

> 동기화 데이터에 대한 실증적 이해

블로그 이미지

RIsN

,