유니티
-
오랜만에 사이드 프로젝트 유니티 버전을 2019->2020으로 올려봤더니... 기존에 작성해둔 커스텀 라이팅이 깨져부렀다.. 이에 URP의 라이팅 hlsl 파일을 뜯어보니 다음과 같은 변경사항을 적용해야 했다. 1. 구 URP 에서 Shader Graph Preview에 대한 전처리 선언은 #if SHADERGRAPH_PREVIEW 였지만, #if defined(SHADERGRAPH_PREVIEW)로 바뀌어 모두 바꿔줘야 한다. 2. 구 URP 에서 AdditionalLight에 대한 정보를 얻기 위해서는 별다른 전처리 확인이 필요 없었지만, #ifdef _ADDITIONAL_LIGHTS에 대한 확인이 필요해졌다. 추가적으로 확인이 필요한 부분은, com.unity.render-pipelines.univ..
[Unity] URP 7.x -> 10.x 로 올릴때 커스텀 라이팅 주의사항오랜만에 사이드 프로젝트 유니티 버전을 2019->2020으로 올려봤더니... 기존에 작성해둔 커스텀 라이팅이 깨져부렀다.. 이에 URP의 라이팅 hlsl 파일을 뜯어보니 다음과 같은 변경사항을 적용해야 했다. 1. 구 URP 에서 Shader Graph Preview에 대한 전처리 선언은 #if SHADERGRAPH_PREVIEW 였지만, #if defined(SHADERGRAPH_PREVIEW)로 바뀌어 모두 바꿔줘야 한다. 2. 구 URP 에서 AdditionalLight에 대한 정보를 얻기 위해서는 별다른 전처리 확인이 필요 없었지만, #ifdef _ADDITIONAL_LIGHTS에 대한 확인이 필요해졌다. 추가적으로 확인이 필요한 부분은, com.unity.render-pipelines.univ..
2021.10.30 -
따로 에셋을 쓰지 않고, 자체제작을 했을 때 가장 문제시 되는 것은 사용자가 입력장치를 통해 입력한 값을 찾아내는 것이다. 이 부분에 있어 인터넷에선 두 가지 종류의 방식을 찾아볼 수 있었다. 1. KeyCode 열거형의 value를 모두 탐색해 Input.GetKeyDown과 같은 처리기를 통해 확인한다. foreach(KeyCode value in System.Enum.GetValues(typeof(KeyCode))) { if (Input.GetKeyDown(value)) //키맵핑 처리 } 2. OnGUI에서 사용가능한, Event.current를 참조해 현재 입력한 keycode를 얻는다. private OnGUI() { if(enable) { var keyCode = Event.current.k..
[UI] Key Mapping 방법 (구 버전 입력체계)따로 에셋을 쓰지 않고, 자체제작을 했을 때 가장 문제시 되는 것은 사용자가 입력장치를 통해 입력한 값을 찾아내는 것이다. 이 부분에 있어 인터넷에선 두 가지 종류의 방식을 찾아볼 수 있었다. 1. KeyCode 열거형의 value를 모두 탐색해 Input.GetKeyDown과 같은 처리기를 통해 확인한다. foreach(KeyCode value in System.Enum.GetValues(typeof(KeyCode))) { if (Input.GetKeyDown(value)) //키맵핑 처리 } 2. OnGUI에서 사용가능한, Event.current를 참조해 현재 입력한 keycode를 얻는다. private OnGUI() { if(enable) { var keyCode = Event.current.k..
2021.02.03 -
이번 시리즈는 아래와 같은 결과물을 만들기 위해 세 편으로 나뉩니다. 와! 공이 지나가는 궤적에 블러가 생깁니다! (2편 : [Image Effect] 블러(Blur) 이미지 효과- 02 Trail Renderer 모션벡터 획득 (tistory.com)) (3편 : [Image Effect] 블러(Blur) 이미지 효과- 03 Image Effect 적용 (tistory.com)) 첫 편인 기본 셰이더에선, 블러 텍스쳐를 활용해 원본의 특정 영역에 원하는 방향으로 모션블러를 주는 방법을 설명하며 두 번째 편에서는, 이 셰이더를 Trail Renderer에 응용하기 위한 Trail Renderer의 모션 벡터값을 버텍스에 추가하는 방법 세 번재 편에서는, 이 두 가지를 종합해 Trail Renderer가 ..
[Image Effect] 유니티 블러(Blur) 이미지 효과- 01 기본 셰이더이번 시리즈는 아래와 같은 결과물을 만들기 위해 세 편으로 나뉩니다. 와! 공이 지나가는 궤적에 블러가 생깁니다! (2편 : [Image Effect] 블러(Blur) 이미지 효과- 02 Trail Renderer 모션벡터 획득 (tistory.com)) (3편 : [Image Effect] 블러(Blur) 이미지 효과- 03 Image Effect 적용 (tistory.com)) 첫 편인 기본 셰이더에선, 블러 텍스쳐를 활용해 원본의 특정 영역에 원하는 방향으로 모션블러를 주는 방법을 설명하며 두 번째 편에서는, 이 셰이더를 Trail Renderer에 응용하기 위한 Trail Renderer의 모션 벡터값을 버텍스에 추가하는 방법 세 번재 편에서는, 이 두 가지를 종합해 Trail Renderer가 ..
2021.01.03 -
가끔 아트와 협의 없이 작업하다보면 (여기서부터 잘못이다.) 생각지도 못 한 결과가 나오곤 한다. 예를 들어, 파티클 시스템의 Texture Sheet Animation 모듈에 89개의 분리되어있는 스프라이트 이미지를 박아야 하거나, 캐릭터의 노말맵을 생각하지 않고 있다가, 디자인 기획이 바뀌어 분리 되어 제작되어 있는 캐릭터 이미지를 하나의 스프라이트 시트로 묶어야 하는 경우가 이렇다... 이런 문제를 아트에게 다시 부탁하기도 뭐하고, 내가 해결하기도 귀찮아 그냥 유틸성을 위해 에디터 확장 스크립트를 작성하기로 했다. 확장 기능의 목표 루틴은 다음과 같다. 1. 한 폴더 내에 있는 이미지를 하나로 묶어야 한다. 2. 왼쪽 상단을 0,0으로 시작해 이미지들이 나열되어야 한다. 3. 원하는 만큼의 열에서 ..
[Unity] 귀차니즘이 이끄는 유니티 Sprite Packing Editor가끔 아트와 협의 없이 작업하다보면 (여기서부터 잘못이다.) 생각지도 못 한 결과가 나오곤 한다. 예를 들어, 파티클 시스템의 Texture Sheet Animation 모듈에 89개의 분리되어있는 스프라이트 이미지를 박아야 하거나, 캐릭터의 노말맵을 생각하지 않고 있다가, 디자인 기획이 바뀌어 분리 되어 제작되어 있는 캐릭터 이미지를 하나의 스프라이트 시트로 묶어야 하는 경우가 이렇다... 이런 문제를 아트에게 다시 부탁하기도 뭐하고, 내가 해결하기도 귀찮아 그냥 유틸성을 위해 에디터 확장 스크립트를 작성하기로 했다. 확장 기능의 목표 루틴은 다음과 같다. 1. 한 폴더 내에 있는 이미지를 하나로 묶어야 한다. 2. 왼쪽 상단을 0,0으로 시작해 이미지들이 나열되어야 한다. 3. 원하는 만큼의 열에서 ..
2020.12.24 -
유니티의 타임라인은 PlayableGraph로 이뤄져있다. 이 PlayableGraph는 Update될 때, Evaluate 해줘야하는데, 타임라인의 Pause를 사용하면 Evaluate를 하지 않아 Sprite Animation이 유지되지 않고 Animator의 State가 실행된다. 이 이슈는 Current animation frame is not "hold" when Timeline is paused - Unity Forum 링크 토론에서 활발하게 이뤄져, 결국 playableGraph의 스피드 조절을 하는 Controller 스크립트를 임의로 생성해야 하는 것으로 종결 됐으나, 처음 이 문제를 접하는 사람들은 아마 적잖이 당황하지 않을까 싶다. 이에 유니티 측에서 공식적으로 애니메이션 프레임도 유..
[Unity] 유니티 타임라인(Timeline) Pause 예외 상황유니티의 타임라인은 PlayableGraph로 이뤄져있다. 이 PlayableGraph는 Update될 때, Evaluate 해줘야하는데, 타임라인의 Pause를 사용하면 Evaluate를 하지 않아 Sprite Animation이 유지되지 않고 Animator의 State가 실행된다. 이 이슈는 Current animation frame is not "hold" when Timeline is paused - Unity Forum 링크 토론에서 활발하게 이뤄져, 결국 playableGraph의 스피드 조절을 하는 Controller 스크립트를 임의로 생성해야 하는 것으로 종결 됐으나, 처음 이 문제를 접하는 사람들은 아마 적잖이 당황하지 않을까 싶다. 이에 유니티 측에서 공식적으로 애니메이션 프레임도 유..
2020.12.24