06. 2D와 3D 게임 플랫폼의 이해
·
📝Game Design
2D 와 3D 게임 플랫폼의 이해 & 그래픽스 프로그래밍 기초 정리게임을 만들 때 그래픽은 단순히 “예쁘게 보이게 하는 요소”가 아니다.유저가 실제로 보게 되는 화면을 어떻게 구성하고, 어떤 방식으로 표현하며 , 어떤 자원과 계산을 통해 출력할지까지 포함하는 중요한 영역이다. 특히 2D와 3D는 화면을 구성하는 방식부터 사용하는 리소스 , 최적화 포인트 , 표현 기법까지 차이가 크다.그래서 게임 기획자나 개발자를 준비한다면 그래픽이 어떤 구조로 동작하는지 기본 개념 정도는 이해해두는 것이 좋다.이번 글에서는 2D와 3D 플랫폼의 차이와 함께 그래픽스 프로그래밍에서 자주 등장하는 핵심 개념들을 정리해보려고 한다.랜더링 파이프라인먼저 그래픽을 이해하려면 렌더링이라는 개념부터 알아둘 필요가 있다.렌더링은 데이..
구글 플레이스토어 게임 출시 가이드
·
🚀Game Release
플레이스토어 출시 가이드[1단계] 출시 전 최종 점검 : 기술 요구사항과 정책 확인게임 개발이 끝났다고 해서 바로 스토어에 등록할 수 있는 것은 아니다.구글 플레이에 앱을 출시하려면 빌드 형식 , API 레벨 , 보안 , 개인정보 처리 등 여러 기준을 충족해야 한다.특히 기술 요구사항을 놓치면 심사 단계에서 거절될 수 있으므로 , 빌드 전에 아래 항목들을 먼저 확인하자. ⓐ 필수 기술 요건 ( 이것이 없으면 리젝률 100% )항목정리목표 API 레벨 : Android 15 ( API 35 )25년 8월 31일부로 신규 앱이나 업데이트는 구글 플레이에서 요구하는 목표 API 레벨( API 레벨 35 이상 )을 만족해야한다. 현재 기준에 맞지 않으면 등록이나 업데이트가 제한될 수 있으므로 build.gr..
Decal 을 이용한 페이크 그림자
·
📖TIL/🔮Unity Graphics
Decal 을 이용한 페이크 그림자URP의 데칼 프로젝트와 Shader Graph를 이용한 캐릭터의 페이크 그림자 만들기캐릭터의 현재 높낮이에 따라 그림자가 작아지거나 사라지고 계단을 오르고 내려올 때 그림자가 계단에 맞게 붙어다니는 페이크 그림자를 만들어보자. 1. URP 세팅Add renderer feature 클릭Decal 추가이렇게 해두면 이 프로젝트 안에서는 데칼 프로젝트를 사용할 수 있게 된다. 2. EmptyObject 생성페이크 그림자를 생성하려는 캐릭터 오브젝트에 우클릭 - Create - EmptyObject이름은 ShadowShadow 오브젝트에서 Add Component 클릭URP Decal Projector 를 검색하여 추가 3. Shader Graph 세팅프로젝트 창에서 우클..
C# / Unity 통상 질문
·
📖TIL/🎤Interview
23년 ~ 24년 C# / Unity 통상 질문 객체지향에 대하여 설명 ( 필수 )객체지향의 정의는 물론, 객체라는 단어의 뜻 자체를 먼저 본인만의 단어로 설명할 수 있어야 한다.SOLID원칙, 4대 특징에 대하여 설명하면 된다.추상, 상속, 다형성, 캡슐화 등, 특성을 설명하실 때, 꼬리물기를 대비하여 캡슐화를 위한 프로퍼티 사용이나, 다형성을 활용하기 위한 오버라이딩 재정의, 인터페이스 등 활용 사례를 꼭 생각해두는 것이 좋다. 깊은 복사와 얕은 복사에 대하여 설명본인만의 단어로 설명을 준비하되, 본인이 구현하였던 사례가 있다면 첨부하는 것이 좋다.ICloneable 을 활용했다면, 클론 및 얕은, 깊은 복사 구현 내역을 설명하시면 좋다.활용한 기능은 없었지만 알고 있다는 것을 표현해도 좋다.참조형과..
Scriptable Object
·
🧊Unity Basic/데이터 관리
스크립터블 오브젝트 ( ScriptableObject )게임을 만들다 보면 무기 능력치나 적 스탯, 아이템 정보처럼 여러 곳에서 공통으로 사용하는 데이터가 많다.이런 데이터를 MonoBehaviour 내부에 직접 넣어두면 수정이 번거롭고 같은 값을 여러 오브젝트에 중복해서 넣게 될 가능성이 크다. 클래스에 변수로 선언해서 사용하거나, JSON 파일로 관리하거나, CSV 로 만들어서 파싱하는 방법도 있지만, 유니티 엔진에는 데이터 관리를 위한 강력한 도구가 있다. 바로 ScriptableObject 이다.ScriptableObject 를 사용하면 데이터를 하나의 에셋으로 분리해두고, 필요한 곳에서 공통으로 참조할 수 있어 관리가 쉬워진다.ScriptableObject 는 데이터를 저장하고 관리하기 위한 에..
Fresnel Setting
·
📖TIL/🔮Unity Graphics
Fresnel Setting스타워즈의 드로이데카처럼 유니티 내장 기능으로 투명한 구체를 구현해보자. 1. Project 창에서 우클릭 > Create > Shader Graph > URP > Lit Shader Graph 2. Shader Graph 세팅Shader Graph Panel 에서 + 버튼 클릭 └ Float └ Color얘네가 곧 변수이다. └ Inspector 창에서 수치를 조정할 수 있게 해준다. 3. Float 변수 클릭 후 Mode 를 Slider 로 변경Inspector 창에서 Slider 형태로 조절할 수 있게 된다. 4. Color 변수 역시 Mode 를 HDR 로 변경 5. Node 연결Float → 첫번째 Fresnel Effect : PowerFloat..
Electric short
·
📖TIL/🔮Unity Graphics
직접 쓰려고 세팅한 파티클 values 세팅 ▼ Base & Emission ▼ Shape ▼ Noise ▼ Trails ▼ Renderer ▼ MaterialShader > URP > Unlit
Electric spark
·
📖TIL/🔮Unity Graphics
Start Lifetime > Random Between Two Contains > 2 / 5 세팅 Start Speed > Random Between Two Contains > 20 / 30 세팅 Start Size > Random Between Two Contains > 0.01 / 0.1 세팅Emission > Rate over Time > 0 Emission > Bursts > Count > 30Shape > Shape > SphereNoise 체크 Noise > Strength > 9 Noise > Frequency > 4.0 Noise > Quality > Low ( 1D )Trails 체크 Trails > Lifetime > 0.5 Trails > ..
TMP 폰트 생성 및 적용
·
🧊Unity Basic/UGUI
0. 사전 준비유니티 프로젝트를 생성 후 TMP 에센셜을 Import 한다.이후 프로젝트에 사용하길 원하는 폰트도 찾아서 다운받는다.필자는 구글에서 개인 / 상업적 용도로 무료 사용 가능한 Noto Sans KR 폰트를 적용시켜 보려고 한다. 1. 다운받은 폰트를 Assets / TextMesh Pro / Fonts 폴더에 넣어준다. 2. 유니티 에디터의 Window / TextMeshPro / Font Asset Creator 를 클릭 3. Source Font 에 변경하고자 하는 TTF 폰트를 넣어준다. Source Font : 변경하고자 하는 TTFSampling Point Size : Auto SizingAtlas Resolution : 4096 / 4096Render Mode : S..