Unity 21

Generic Animation Type의 3D Model에 Avatar Mask 적용시키는 방법

3D 모델에 애니메이션을 적용시킬때 애니메이션 클립의 모든 동작을 다 적용시키고 싶지 않을때가 있다다리의 움직임 혹은 손의 움직임만 적용시키고 싶을때도 있는데 그럴때 사용하는 방법이 Avatar Mask 이다 3D 모델의 Animation이 Humanoid 타입인 경우에는 Avatar Mask에서 Humanoid 탭을 이용해 손쉽게 적용시키고자 하는 부위와 적용시키지 않고자 하는 부위를 선택할 수 있다  적용시키고 싶지 않은 부위는 클릭 하여 빨간색으로 만들면 적용되지 않게 된다 반면 초록색은 적용시킬 부위이다 이 글에선 Humanoid Type의 Animation Type이 아닌 Generic Type의 Animation Type을 가졌을 경우 아바타 마스크를 어떻게 적용하는지 알아보자 우선 Avata..

Unity 2024.11.07

Custom Unity Package를 UPM으로 배포하는 방법

UPM (Unity Package Manager) 란? UPM은 프로젝트에 필요한 기능등을 모듈단위로 분리해 기능을 제작하고 Package Manager를 통해 편리하게 다운로드해 사용할 수 있는 Unity 기능. UPM을 사용하지 않는다면 '.unityproject'를 받아 import하여 내 로컬 프로젝트의 Assets 폴더 아래에 들어가게 되어 외부 패키지를 삭제해야 하거나 할때면 일일이 찾아서 삭제해야 하는 불편함이 존재했음 그러나 UPM을 사용하면 패키지들이 패키지 단위로 묶여있고 독립적으로 관리되어 필요할 때 패키지를 업데이트하고 삭제할 수 있어 프로젝트를 깔끔하게 유지할 수 있다.Custom Package를 UPM으로 만드는 방법 처음엔 Unity Project에서 내가 만들고자 하는 Uni..

Unity 2024.07.16

[Unity] PostProcessing

PostProcessing이란?포스트 프로세싱은 기존에 렌더링된 Scene에 렌더링 효과를 더하는 작업으로 PostProcessing의 효과는 일반적으로 Scene 뷰에 따라 달라지거나, 최종 렌더링 결과물을 생성하기 전에 렌더링 되는 Scene위에 겹쳐서 표시됨 기존 컨텐츠를 수정할 필요없이 시각적인 효과를 즉시 구현하고 Scene의 품질을 개선할 수 있다는 장점이 있음 이 포스팅은 Unity의 Universal Render Pipeline(URP)를 사용하는 경우를 기준으로 설명하도록 하겠습니다. URP를 사용할 경우 따로 패키지를 설치할 필요없이 PostProcessing을 사용할 수 있음 URP를 사용해 포스트 프로세싱을 하는 방법1. GameObject를 하나 만들고 Volume 컴포넌트를 추가..

Unity 2024.07.11

[Unity] Animator Component의 Root Motion 이란?

Root Motion이란?유니티에서 Animator를 사용할때 'Apply Root Motion' 이라는 값이 있다.이 Root Motion이란 게임오브젝트의 위치와 회전을 Animation이 제어할 수 있도록 허용하는 것이다.예를 들어 Root Motion이 적용된 걷는 애니메이션은 캐릭터가 걷는 것에 따라 위치 값도 변하게 된다.(Animation이 게임오브젝트의 위치와 회전을 제어하기 때문) 반대로 Root Motion이 적용되지 않은 걷는 애니메이션은 캐릭터가 제자리 걸음을 하게 될것이다. Root Motion이 적용된 Animation의 경우 Script 코드를 작성하여 움직임을 구현하는거 보다 더 자연스럽게 움직임을 구현할 것이다(전문 모델러 혹은 디자이너 분이 만들어 주실테니...) 시네마틱..

Unity 2024.07.10

Unity 3D Object Drag & Drop

Unity에서 3D 게임을 만들다 보면 3D GameObject를 컴퓨터의 경우 마우스, 모바일의 경우 손가락으로 자유롭게 Drag & Drop 하여 원하는 위치에 놓는 기능이 필요할때가 있다 위에서 서술한 기능을 나는 아래와 같이 구현하였다 https://www.youtube.com/shorts/H-rxX2ozjUE3D Object Drag & Drop  우선 클릭 또는 터치 했을때 내가 Drag & Drop 하고자 하는 GameObject인지 구분부터 해야한다.private GameObject OnClickObjUsingTag(string tag){ Vector3 touchPos = new Vector3(0, 0, 0);#if UNITY_EDITOR touchPos = Input.mouse..

Unity 2024.06.04

Unity Design Pattern - Object Pool

Object Pool 방식의 디자인 패턴은 비단 Unity에서만 사용하는 패턴은 아니지만 Unity에서도 유용하게 쓸 수 있는 디자인 패턴이다 Object Pooling은 많은 GameObject들을 생성하고 파괴하는데 CPU를 최적화 시키는 방법으로 GameObject를 다 사용하고 난 후 GameObject를 파괴시키지 않고 비활성화 시킨 후 pool로 되돌리는 방식이다. 이는 GC(Garbage Collector)로 인한 버벅거리는 현상을 줄여주는 효과가 있다. 1. 간단한 Object Pooling 예시 [ObjectPool.cs]public class ObjectPool : MonoBehaviour{ [SerializeField] private uint initPoolSize; [Se..

Unity 2024.06.03

유니티 3D Model 파괴 효과 만들기

Unity로 건물이나 3D Model이 부서져 무너지는 효과를 만드는 방법 Probuilder Package를 이용해 건물이 부서졌을때 조각나는 부위의 GameObject들을 만들고 건물이 부서지면 미리 조각해놓은 오브젝트로 대체해버리는 방식 Probuilder Package로 건물을 조각낼때 조각낼 부위를 Cube GameObject를 사용해 범위를 지정해줄수 있음 건물이 무너지며 폭발하는 효과 - Probuilder 설치 Unity Package Manager에 가서 Probuilder를 설치, 필자의 경우 Probuilder 5.0.7 version을 사용 부서질 모델 오브젝트에 Probuilder MeshFilter Component를 추가할 예정 - Probuilder MeshFilter 추가 ..

Unity 2024.02.26

Unity Android Plugin 만들기

Unity에서 기본으로 지원해주지 않는 기능을 지원하기 위해서나 Native에 내가 구현해놓은 기능을 Unity에 사용하기 위해선 Plugin을 만들어야 함. 필자도 Native에 만들어놓은 기능을 Unity에서 사용하기 위해 Plugin 제작을 하는데 매번 만들때마다 어떻게 만들었는지 까먹어 내가 필요할 때 참고 하기 위해 블로그에 정리함. 개발 환경 PC: Mac Android Studio: Hedgehog | 2023.1.1 Unity: 2021.3.11f1 - Android Project 생성 먼저 Android Project를 생성해 준다. 본인이 만들고자 하는 Plugin의 성격에 따라 원하는 Template를 설정한다. 필자의 경우 "No Activity"를 많이 사용. - Android M..

Unity 2024.01.28

[Unity] Animator Animation 재시작 방법

Unity에서 Animation을 다시 시작하고 싶은 경우가 있다. 그냥 loop 속성을 주면 다시 시작은 할 수 있지만 문제는 특정한 경우에 다시 시작하고 싶은 경우이다. loop 처럼 계속 다시 시작하는 것이 아닌 특정 버튼을 누른다던가 하는 경우. 제일 쉬운 방법은 Animator Component가 포함된 Object을 비활성화 했다가 활성화 하면 되게 해결되는 경우가 많다. 하지만 문제는 Animator Component가 포함된 Object를 비활성화 하면 안되는 경우!!!, 이런 경우 Animator Component를 비활성화하고 활성화 하면 될 줄 알았지만 되지 않았다. ㅠㅠㅠㅠ 그냥 Animator Component를 비활성화 -> 활성화만 하는 것이 아닌 'Rebind()'라고 하는 ..

Unity 2021.10.29