분류 전체보기 53

[Blender] 공부 계획

참고사이트- [3DCG 채널](https://arca.live/b/3d3d)- [블렌더 갤러리](https://gall.dcinside.com/mgallery/blender) 공부계획- [1. 블렌더입문가이드 디시부터 정독하자](https://gall.dcinside.com/mgallery/board/view/?id=blender&no=30801&page=1)- [2. 직장인 블린이 입문일지를 따라가자](https://gall.dcinside.com/mgallery/board/lists/?id=blender&page=1&search_pos=-39649&s_type=search_name&s_keyword=%EA%BF%88%EC%83%88%EC%8B%B9) - [2-1. 구루 도넛을 만들자](https://..

Art/Blender 2025.01.12

[Retro유니티] PostProcessing과 최종빌드

Post Processing은, 게임화면이 최종출력되기 전에 Camera의 Image Buffer 에 삽입하는 추가 처리이다.적은 노력으로 뛰어난 영상미를 구현할 수 있다.유니티는 Post-processing Stack 패키지를 제공한다. v1과 v2 중 v2가 최신이니 v2를 사용한다. 렌더링경로추가Main Camera의 Rendering Path를 Deffered로 변경한다.-> 렌더링 처리순서와 방법을 결정하는 옵션인데, 기본값인 Forward Rendering 옵션은 가볍지만 라이팅표현이 간략하고 왜곡된다. 따라서 Deffered Shading 을 사용하여 빛을 온전하게 표현하기로 한다.Forward Rendering각 오브젝트를 그릴 때마다 해당 오브젝트에 영향을 주는 모든 lighting도 함..

[Retro유니티] 아이템 생성기 및 Item 구현

주기적으로 아이템 생성플레이어 근처 내비메시 위에서 랜덤한 한 점에 아이템 생성 EnemySpawner와 유사한 구조로 구현한다.다만, NavMesh 위의 랜덤한 점을 선택하는 기능은 구현난이도가 높으니 ItemSpawner 스크립트에 미리 완성된 것을 사용하기로 한다. 생성할 Item Prefab을 GameObject 배열에 저장한다. public GameObject[] items; // 생성할 아이템들 public Transform playerTransform; // 플레이어의 트랜스폼(위치) private void Start() { // 생성 간격과 마지막 생성 시점 초기화 timeBetSpawn = Random.Range(timeBetSpawnMin, timeB..

[Retro유니티] 적 생성기

요구명세는 아래와 같다.새로운 웨이브마다 적을 한꺼번에 생성현재 웨이브의 적이 모두 사망시 다음 웨이브로 넘어감웨이브가 증가할 때마다, 생성되는 적의 수 증가적을 생성할 때, 전체 능력치 0%에서 100%까지 랜덤설정게임 오버시, 적 생성 중단Prefab으로 제공된 Spawn Point를 드래그하자.(그림에 실수가 있는데, HUD Canvas가 아니라, SpawnPoint를 드래그해야한다)네 입구를 지정하고 있는것을 확인할수있다. 새 Empty 오브젝트로 EnemySpawner를 만들고, EnemySpawner.cs Script를 추가한다.EnemySpawner.cs Script를 보자.EnemySpawner.cs스폰된 좀비는 Array가 아니라 List로 관리할 것이다. List는, 배열과 다르게 le..

[Retro유니티] HUD Canvas 및 GameManager.cs

이제 최종완성할 차례다. 추가구현할 내용은 아래와 같다.UI버튼게임오버상태, 점수를 관리하는 GameManager적 생성기아이템 생성기포스트프로세싱을 통한 비주얼개선  HUD Canvas주어진 Prefab을 그대로 사용한다. UIManager.csusing UnityEngine;using UnityEngine.SceneManagement; // 씬 관리자 관련 코드using UnityEngine.UI; // UI 관련 코드// 필요한 UI에 즉시 접근하고 변경할 수 있도록 허용하는 UI 매니저public class UIManager : MonoBehaviour { // 싱글톤 접근용 프로퍼티 public static UIManager instance { get {..

[Retro유니티] NavMesh를 통한 길찾기 구현 및 Enemy.cs 완성

Navigation System경로계산 및 실시간 장애물회피 알고리즘을 Navigation 이 제공한다.Navigation 에 사용되는 Object는 4가지이다.NevMesh - Agent가 걸어다닐 표면NavMesh Agent - NevMesh상에서 경로를 계산하고 이동하는 컴포넌트NavMesh Obstacle - Agent를 가로막는 장애물Off Mesh Link - 끊어진 NavMesh 사이를 잇는 연결지점(ex. 뛰어넘을 수 있는 울타리/기어오를 수 있는 담벼락)우리는 볼드체 2가지만 사용할 것이다. NavMesh 빌드NavMesh는 정적 게임오브젝트를 대상으로 생성된다(Bake라고 한다).현재 프로젝트의 Level Game Object에는 static 체크가 되어있으므로, NavMesh가 사용가..

[MINGW] Windows VSCode에서, 각각 Repository가 서로 다른 public key 를 가지고 git commit, git push 되게끔 설정하기

https://saiba-midori.tistory.com/9 에서 이어진다.위의 것은, WSL2의 터미널상에서 push하기 위함이었지만WSL2의 VSCode가 아닌, Windows의 VSCode에서, gitkraken으로 무지성 push를 하기 위해서는 MINGW64를 건드려야 한다.왜냐하면 Windows의 VSCode의 git은 MINGW64의 git 발사대에 불과하니까.(필요성: C# Linter를 WSL2의 VSCode에 또다시 따로 설정하자니 귀찮다.작업장소로는 그냥 Windows에 이미 setup된 C# Linter를 사용하면서도 push할때도 고민없이 VSCode상에서 딸깍해서 git push하고싶었다.) 먼저 global을 설정한다. 이게 있어야 일단 커밋이 된다.MINGW상에서,git c..

[Retro유니티] PlayerHealth.cs 완성

PlayerHealth.cs앞서 정의한 feature 는 아래와 같다.LivingEntity를 확장할 것.LivingEntity의 생명체 기본기능을 구현할 것.체력이 변경되면 Slider에 반영피격시 효과음 재생사망시 다른 컴포넌트 비활성화사망시 효과음과 애니메이션 재생아이템 감지 및 사용 자주 반복하여 알겠듯이, Awake 함수는 스크립트가 처음 로드될 때 수행된다.  Awake호출 시점: 스크립트가 처음 로드될 때 호출됩니다.주요 용도: 초기화 작업을 수행합니다. 다른 스크립트나 컴포넌트에 접근하기 전에 필요한 설정을 할 수 있습니다.특징: 게임 오브젝트가 비활성화된 상태에서도 호출됩니다.OnEnable호출 시점: 게임 오브젝트가 활성화될 때마다 호출됩니다.주요 용도: 게임 오브젝트가 활성화될 때마다..