전체 글 48

Unity Vector3.Lerp 선형보간으로 부드럽게 움직이게 하기

유니티에서 캐릭터를 움직이거나 물체를 다른 위치로 이동시키거나 할때 끊김 없이 부드럽게 움직이게 하는 방법중 하나가 Vector3.Lerp 함수 입니다. 이는 선형보간이라는 방법을 사용하는건데두 벡터 간 사이에 위치한 값을 추정하기 위해 직선 거리에 따라 선형적 계산을 하는 방법입니다 Reference : https://docs.unity3d.com/ScriptReference/Vector3.Lerp.html Unity - Scripting API: Vector3.LerpInterpolates between the points a and b by the interpolant t. The parameter t is clamped to the range [0, 1]. This is most commonly ..

Unity 2024.11.12

Unity Animation Rigging - Two Bone IK Constraint 사용방법

Unity로 게임개발을 할 때 여러 애니메이션들을 많이 쓰곤 하는데요회사에서 하는 개발의 경우 Animator가 필요한 애니메이션을 만들어주거나 하면 되지만 1인 개발을 하거나 하게 되면 필요한 애니메이션을 찾기도 힘들고 못찾을수도 있게 됩니다.원하는 애니메이션을 찾지 못하는 경우가 발생하는데 그렇다고 애니메이션을 만들자니 쉽지 않습니다.이럴 경우 Unity의 Animation Rigging 을 사용하면 개발자도 손쉽게 애니메이션을 만들 수 있습니다. 이번 포스팅에서는 Two Bone IK Constraint 컴포넌트를 이용하여 팔을 움직이는 애니메이션을 만들어 보도록 하겠습니다. 우선 Unity Package Manager에 들어가 Animation Rigging 패키지를 다운받아 설치합니다Packag..

Unity 2024.11.11

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

expected unqualified-id NSString

필자의 경우 Unity에서 사용할 Mac용 Bundle을 만들다가 발생한 에러이다. Unity의 C#과 커뮤니케이션할 Cpp와 그 Cpp와 소통할 Objective-C가 있었는데 Cpp에서 Objective-C 코드를 호출해야 하고 Objective-C에서 Swift 코드를 호출해야 하는 상황에서 Objective-C 코드에 NSString을 사용하는 쪽에서 "expected unqualified-id NSString" 이런 에러가 발생하였다. 해결방법:해결방법은 간단했는데 Cpp코드를 그냥 쓰지 않고 Objective-C 코드만 사용하는 것이었다. Cpp파일의 확장자인 .cpp를 .mm으로 변환하여 Objective-C++ 파일로 만들어 사용하는 것인데 Objective-C++은 Objective-C와..

Issue Tracking 2024.07.09

not available in automatic reference counting mode

XCode로 프로젝트를 하다 위와 "not available in automatic reference counting mode" 라는 에러가 발생함  AutoMatic Reference Counting Mode를 사용할수 없다는 이슈로 나 같은 경우 기존에 cpp로 작성된 코드를 xcode에 넣었다가 발생하였다. 해결방법: Automatic Reference Counting을 사용할수 없는거니 사용하지 않게 세팅 하면 된다Project의 BuildSetting에 들어가 Objective-C Automatic Reference Counting을 No로 설정한다

Issue Tracking 2024.07.08

[Swift] OpaquePointer vs UnsafePointer

Swift에서 Object-C, C, CPP 코드를 써야하는 경우 OpaquePointer와 UnsafePointer를 자주 볼 수 있다. 둘다 별 생각없이 쓰거나 읽었는데 이 둘의 차이를 확인해보자 결론부터 말하면 이둘의 차이는 header 파일에서 찾을 수 있다 header 파일안에 struct가 완전히 정의되어 있다면 UnsafePointer를 Swift에서 사용가능하며 포인터를 dereference 할 수 있고 .pointee를 호출해 안에있는 content를 볼 수 있다. // sample.htypedef struct Person person;struct Person{ int age; char* first_name;}void ShowInformation(Person*) void Sho..

iOS/Swift 2024.07.04