728x90

game 33

[Unity] Timeline 을 구성하는 PlayableGraph의 Playable 구성 샘플

위 이미지를 보면, playableCount 가 9로 찍힘. Timeline 트랙은 3개 뿐인데 왜 9개나 들어있을까. 궁금해서 각 Playable 의 Type 들을 출력해봄. Timeline 트랙은 아래로 구성돼있음.(상단 Timeline 에 Signal Emitter 배치)Activation Track 1Activation Track 2Animation Track 위 로그를 기반으로 9개의 Playable 그래프를 정리해보면 대략 아래와 같은 구조. (Root) TimelinePlayableㄴ TimeNotificationBehaviourㄴ ActivationMixer Playableㅡㄴ Playableㄴ ActivationMixer Playableㅡㄴ Playableㄴ AnimationLayerMi..

[Unity] 후처리 효과 : 앰비언트 오클루젼 - Post Processing Effects: Ambient Occlusion

URP 에서 PostProcessing 추가하기Create > Volume > Global Volume 메뉴로 전역 볼륨 오브젝트 생성.Volume 컴포넌트에서 [New] 버튼으로 Profile 생성.Profile 하단에 Add Override 버튼 클릭하고 후처리 효과 선택.에 있어야하는데, 튜토리얼이 오래됨. Unity 2019 LTS and Post Processing v2.3.0 기준으로는 Volume Profile 에 있지만, 최신 버전 기준 (Unity 2019.4 이후 버전.)AO 는 SSAO (Screen Space Ambient Occlusion) 으로, Render Feature 로 이동됨. 퍼포먼스 고려데스크탑, 콘솔 등 퍼포먼스에 크게 우려가 없다면 적합하나, 모바일 기기 등의 퍼포..

Normal Map 관련 자료 스크랩 + Normal 을 RGB로 변환, 역변환 계산

버텍스의 노멀 벡터 값을 노멀맵의 RGB로 변환하는 계산식버텍스의 노멀 벡터 값을 노멀맵의 RGB로 변환하는 계산식은 다음과 같다.버텍스의 노멀 벡터는 일반적으로 정규화되어 있다. 이를 (x, y, z)로 나타낸다.RGB 값은 일반적으로 0에서 1 사이의 범위를 가진다.따라서 각각의 컬러 채널(R, G, B)은 다음과 같이 계산된다:R = (x + 1) / 2G = (y + 1) / 2B = (z + 1) / 2이 계산식은 각각의 노멀 벡터 요소를 0에서 1 사이의 값으로 매핑하여 RGB 값으로 변환한다.이렇게 계산하는 이유는 다음과 같다:1. 노멀맵의 RGB 값의 범위는 0에서 1 사이여야 한다. 버텍스의 노멀 벡터는 보통 정규화되어 있으며, 이를 RGB 값으로 변환할 때 0에서 1 사이의 값으로 스케..

[Unity] 프리팹과 프리팹의 변형, 프리팹 배리언트 (Prefab Variant)

Unity의 프리팹 바리언트(Prefab Variant) 는 원본 Prefab을 기반으로 하되, 다른 속성이나 구성을 가질 수 있는 변형된 Prefab이다. 이를 통해 원본 Prefab을 수정하지 않고도 다양한 스타일이나 특성을 갖는 게임 오브젝트를 간편하게 생성할 수 있다. Prefab Variant 는 파란 정육면체 아이콘에서 우측 면에 빗금이 쳐진 모양으로 보여짐.프리팹 바리언트는 원본 프리팹을 일부 수정한 형태로 저장하고 관리하면서, 원본 프리팹을 변경 없이 유지할 수 있다. 프리팹 바리언트를 수정한 내용을 원본 프리팹에도 반영할 수 있음. Prefab Variant 활용 예시적 캐릭터 생성: 적 캐릭터의 Prefab을 만들고, 이를 기반으로 Prefab Variant를 생성한다. 이를 활용하여 ..

GDC2024, 꼭 들어봐야 할 강연 9개

지난 3월, Game Developers Conference 2024 가 진행되었다. 700개 이상의 강연이 있었다고 하는데, 이정도면 목록을 보는 것만으로도 꽤 많은 시간이 필요할 것. 인벤에서 GDC2024 이 강연 꼭 들어보라는 기사를 작성해주셨는데, 그 중에서도 관심이 생기는 강연 몇 개를 더 추려봤다. 1. 젤다의 전설, 재밌는 일이 일어나는 시스템을 만들어라 https://www.inven.co.kr/webzine/news/?news=294179 2. 얼리액세스부터 계획됐던 발더스 게이트3 https://www.inven.co.kr/webzine/news/?news=294272 3. 데이브 더 다이브에 몰입하게 만든 힘, 유머 https://www.inven.co.kr/webzine/news/..

[Unity] 모바일 최적화 2022LTS 자료 모음

1월 17일 오후 4시 알쓸유잡 : 모바일📱최적화 2022LTS https://www.youtube.com/watch?v=-IrpQzZi_p8 2월 21일 오후 4시 알쓸유잡 : 모바일📱최적화 2022LTS 2편 https://www.youtube.com/watch?v=6dBsTYa3APA 3월 20일 오후 4시 알쓸유잡 : 모바일📱최적화 2022LTS 3편 https://www.youtube.com/watch?v=vGYIgZJHby8 추가 자료 Unity의 UI 시스템(UGUI) 성능 최적화 https://www.youtube.com/watch?v=1e2mSCS7o1A 게임 개발에 필수적인 내용을 담는 명서들을 소개합니다. (유니티 최신 버전) https://link.coupang.com/a/be3P0..

[Unity] 시네머신을 활용해 쉽고 간편하게 카메라 이동 영역 제한

유니티 엔진에서, 카메라가 캐릭터를 따라다니지만, 특정 영역까지만 따라가길 원하는 경우, 시네머신(Cinemachine) 기능으로 간단하게 구현 가능. 0. Cinemachine 은 Package Manager 에서 Package 를 추가 해줘야 사용할 수 있음. 1. CinemachineVirtualCamera 컴포넌트 하단의 Extensions / Add Extension 찾기. 2. Add Extension 에서 CinemachineConfiner/ Confiner2D 를 추가. 3. Confiner 인 경우 Collider, Confiner2D 인 경우 2D polygon 이나 composite collider 로 영역을 지정해서 설정. Confiner 의 뜻 "한정[제한]하는 사람[것]." 특정..

테트리스에 영감을 준 펜토미노(Pentomino)

1985년 테트리스는 구 소련의 개발자인 알렉세이 파지노프로가 개발하고 TTC(The Tetris Company) 에서 저작권을 보유 및 관리. 고대 로마의 전통 포즐인 펜토미노(Pentomino)에서 영감. 다섯 개의 정사각형으로 이루어진 폴리오미노. 5개의 단위 정사각형이 변끼리 붙어 이루어진 도형으로 모양을 만드는 놀이. 12가지의 알파벳 모양. 펜토미노 참고 링크들 https://creativeqedu.com/%ED%8E%9C%ED%86%A0%EB%AF%B8%EB%85%B8pentomino%EC%9D%98-%EB%9C%BB%EA%B3%BC-%EC%95%84%EC%9D%B4%EB%93%A4%EC%97%90%EA%B2%8C-%EC%A2%8B%EC%9D%80-%EC%A0%90-10%EA%B0%80%EC..

[Unity] 최초 실행되는 UnityMain 함수 만들기 (RuntimeInitializeOnLoadMethod 상세 순서 설명)

유니티 엔진에서 초기화를 하고싶어 유니티는 BuildSettings의 Scenes In Build 목록에 셋팅된 0번 인덱스 씬으로 시작하게 됨. 이 때 씬을 로드하면서 초기화도 같이 수행하게 되는데, 씬에 올라간, 씬의 Hierarchy 목록의 GameObject 들의 Awake와 Start의 호출 순서가 보장되지 않음. Awake, Start 호출 순서가 보장되지 않더라도 초기화 처리는 가능하겠지만, 어떤 GameObject 들의 초기화보다도 먼저 초기화 처리를 하고싶은 경우가 있을 수 있음. 이 때, [RuntimeInitializeOnLoadMethod] 어트리뷰트(Attribute)를 활용해서 특정 static 함수의 속성을 설정해서, 게임이나 앱 실행 후 가능한 빠른 시점에 호출되도록 핸들링 ..

[Unity] 간단한 가우시안 블러(GaussianBlur) 셰이더 코드

텍스처에 가우시안 블러 처리를 하면 요런 결과물이 생성됨. 아래는 머티리얼 속성. Blur Radius 를 조절해서 Blur 강도를 조절할 수 있다. 간단한 가우시안 블러 셰이더 코드 Shader "Custom/GaussianBlur" { Properties { _MainTex ("Texture", 2D) = "white" {} _BlurRadius ("Blur Radius", Range(0.0, 10.0)) = 1.0 } SubShader { Tags { "RenderType"="Opaque" } Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" struct appdata { float4 vertex :..

728x90
반응형