전체 글 114

[TIL] 내일배움캠프_Unity Blend Tree, 믹사모 애니메이션 InPlace 오류 및 해결

Blend Tree : 여러 가지 애니메이션 동작을 조합하여 부드럽게 전환이 가능하고 다양한 동작을 제어할 수 있으며 매개변수를 이용하여 동적으로 애니메이션을 제어할 수 있는 도구이다 예를 들어, 캐릭터가 걷는 동작과 달리기 동작을 조합하여 서서히 가속하거나 감속하는 효과를 만들 수 있다 이번 개인과제에서 캐릭터의 이동이 4방향(forward, back, right, left) 으로 자연스럽게 움직이게 하기 위해서 블렌드 트리를 사용하였다 언리얼에서도 애니메이션을 섞고 조합하는 Blend 기능이 있어서 당연히 유니티도 있겠지 라고 생각한 결과 역시나 있었고 크게 다르지 않아 어렵지 않게 구현할 수 있었다 믹사모 애니메이션 InPlace 오류 및 해결 유니티 3D에서도 어김없이 믹사모가 등장하였다 하지만 ..

TIL 2023.10.10

[TIL] 내일배움캠프_Unity URP, 시네머신, 기초적인 네트워크 지식

URP : 유니티에서 3D 템플릿을 생성하면 유니티의 기본 랜더 파이프랑인 ' 빌트인 랜더 파이프라인' 이 사용되고 3DURP 템플릿을 생성하면 '유니버셜 랜더 파이프라인' 이 사용된다 URP의 장점은 다양한 조명과 그림자 효과, 후처리 효과를 지원하여 기존 보다 더 효율적으로 고퀄리티의 이미지를 구현할 수 있다 그래서 높은 성능을 요구하거나, 고퀄리티의 이미지를 사용할 경우 URP가 게임 제작에 적합할 수 있다 \ 시네머신 혼자 인트로 애니메이션 만들 때 사용해봤던 시네머신을 이번 강의에서는 플레이어의 카메라로 사용을 해 보았고 더 자세히 배울수 있었다 가상카메라 : 실제 카메라가 없는 상태에서도 여러 가상 카메라의 시점과 속성을 조작할 수 있고 각 가상 카메라는 독립적인 카메라 속성을 가지며, 원하는..

TIL 2023.10.06

[TIL] 내일배움캠프 _Unity 게임개발 심화 강의1 (Feat. FSM)

- FSM : 상태와 상태 간의 전환을 기반으로 동작하는 시스템으로 핵심은 단 하나의 상태만을 가진다는 점이다 구성요소 상태: 시스템이 취할 수 있는 다양한 상태 ex) 정지 상태, 이동 상태, 점프 상태 등 전환 조건: 상태 간 전환을 결정하는 조건 ex) 이동 입력, 점프 입력, 충돌 등의 조건 동작 : 상태에 따라 수행되는 동작 또는 로직 ex) 이동 애니메이션 재생, 점프 처리, 이동 속도 조정 등 동작 원리 상태 전환은 전환 조건을 충족할 때 발생하며, 전환 조건은 입력, 시간, 조건 등으로 결정되고 상태 전환 시 이전 상태의 종료 동작 새로운 상태의 진입 동작이 수행된다 장점 다양한 동작을 유기적으로 조합하여 원하는 동작을 구현할 수 있고 복잡한 동작을 상태와 전환조건으로 나누어 구현하므로 코..

TIL 2023.10.06

[TIL] 내일배움캠프_Unity 게임 데이터 저장, LoadingScene

중간에 휴일이 있어서 제작 기간이 길었던 팀과제 완성!!!!! 내가 구현했던 내용 중 새롭게 구현해 보았던 내용에 대해서 다시 한번 정리해 보자 ! 게임 데이터 저장 데이터를 저장하고 관리하는 DataManager 클래스를 작성하였다 싱글톤 패턴을 이용하여 단일 인스턴스만을 유지하여 데이터 관리를 해주고 데이터 저장 및 불러오기는 제네릭으로 메서드를 사용하여 지정된 형식의 데이터를 Json파일로 저장하고 불러오게 해주었다 로그라이크 게임이라서 데이터를 저장하는 부분이 많이 없어서 데이터를 각 파일로 나눠서 저장하게 만들었는데 많은 양의 데이터를 읽거나 써야한다면 좋은 방법이 아니다 파일 입출력은 성능이 좋지 않다 그래서 생각해 본 더 좋은 방법은 저장할 정보를 구조체나 클래스에 저장하여 하나의 파일로 관..

TIL 2023.10.04

[TIL] 내일배움캠프_Unity 옵저버 패턴

옵저버 패턴 : 객체의 상태 변화를 관찰하는 관찰자들, 즉 옵저버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하는 디자인 패턴 주로 특정 객체의 상태가 변경될 때, 이 변경을 다른 객체들에게 통지하고자 할 때 사용된다 게임 개발의 관점에서 옵저버 패턴은 이벤트 시스템을 통한 상호작용이 떠오른다 예를 들어 플레이어의 점수나 상태가 변경되었을 때를 생각할 수 있다 using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerHealth : MonoBehaviour { private int currentHealth; publi..

TIL 2023.10.03

[TIL] 내일배움캠프_Unity C# 자료구조, DotsWeen, Cinemachine

C# 자료구조 - Array : 고정된 배열 크기(선언시 크기를 지정해주고, 삭제 및 추가와 같은 변형이 불가능하다) 같은 타입만 저장 가능하고 다차원 배열 입력이 가능하다 주로 UI나 Data를 저장할 때 사용한다 - List : 배열 크기가 고정되지 않는다 같은 타입끼리만 저장 가능해서 박싱, 언박싱이 발생하지 않는다 일반적으로 가장 많이 쓰인다 - ArrayList : 배열 크기가 고정되지 않는다 서로 다른 타입의 데이터를 배열에 저장 가능하여 데이터를 가져올 때 박싱 언박싱이 일어나서 사용하지 않는다 - Queue : 선입선출 구조로 무조건 순서대로 사용해야할 때 주로 사용한다 ex) 순서를 따라가는 튜토리얼 DotsWeen : Unity 에서 사용되는 라이브러리로 애니메이션을 효율적으로 관리할 ..

TIL 2023.09.27

[TIL] 내일배움캠프 _ Unity 인트로 애니메이션 (feat.타임라인)

내일 작업해야하는 인트로 애니메이션을 만들기 위해 어떤 기능을 이용해서 컷씬을 제작하는지 알아보았다 타임라인이랑 시네머신이라는 기능이 있었는데 시네머신은 카메라 이동이 필요할 때 사용되는것 같아서 3D를 배울 때 사용해보도록 하고 타임라인 기능을 이용하여 간단하게 만들어볼 생각이다 TimeLine : 인게임 컷신을 제작하거나 복합 애니메이션을 제작할 때 사용하기 좋다 세팅 상단 Window 탭 -> Sequencing -> TimeLine 선택 EmptyGameObject 를 만들고 (TimeLineDirector로 사용 하기 위함) 선택한 후 TimeLine 창에서 Create 버튼을 누르면 선택한 오브젝트에 Playable Director가 생긴다 기능 1. Activation Track : Game..

TIL 2023.09.26

[TIL] 내일배움캠프_Unity 전략패턴, 유니티 컴포넌트 패턴

전략패턴 : 알고리즘 군을 정의하고 캡슐화해서 각각의 알고리즘군을 수정해서 쓸 수 있게 해준다 전략패턴을 사용하면 클라이언트로부터 알고리즘을 분리해서 독립적으로 변경할 수 있다 * 캡슐화 : 달라지는 부분을 찾아서 나머지 코드에 영향을 주지 않도록 한다 그러면 코드를 변경하는 과정에서 의도치 않게 발생하는 일을 줄이면서 시스템의 유연성을 향상시킬 수 있다 즉, 어떤 일을 수행하는 알고리즘이 여러가지 일 때, 동작들을 미리 전략으로 정의함으로써 손쉽게 전략을 교체할 수 있는, 알고리즘 변형이 빈번하게 일어나는 경우에 적합한 패턴이다 구조 1. 전략 알고리즘 객체들 : 알고리즘, 행위, 동작을 객체로 정의한 구현체 2. 전략 인터페이스 : 모든 전략 구현에제 대한 공용 인터페이스 3. 컨텍스트 : 알고리즘을..

TIL 2023.09.26

[TIL] 내일배움캠프_Unity 3D 강의 완강 (Camera , TryGetComponent 복습, AI Navigation, Animation Event)

Camera 무기를 장착하여 카메라에 나오게 만들었는데 다른 오브젝트에 의해 무기가 가려지는 문제가 발생할 수 있다 이를 해결하기 위해서는 새로운 카메라를 만들어서 Depth와 Clear Flags의 Depth Only 를 이용하면 문제를 해결할 수 있다 강의에서는 EquipCamera를 만들어서 장착할 무기를 넣어주고 카메라 설정을 Depth를 1로 올리고 DepthOnly를 설정해주었다 이 과정에서 카메라 설정에 대해 알아보았다 - Clear Flags : 여백을 어떻게 처리할건지 (skybox - 하늘 / soild color - 단일색상 / Depth only - 투명 배경 / Dont’clear - 이전 프레임을 지우지 않고 잔상이 남음) - Culling Mask : 특정 레이어만 보여주고 싶..

TIL 2023.09.24

[TIL] 내일배움캠프_Unity ToolTip (feat.null 이 널 좋아해) ,내배캠 인터뷰 후기

ToolTip 어제 개인과제를 진행하면서 인벤토리에 ToolTip을 만들면서 새로 배웠던 내용이 생각나서 다시 복습 해보았다 ToolTip이란 ? 인벤토리에 아이템이 든 슬롯에 마우스 커서를 두면 해당 아이템에 대한 정보를 나타내는 패널이다 우선 ToolTip을 설정하는 클래스를 만들고 이 ToolTip 을 컨트롤 하는 클래스를 따로 만들어 분리를 시켜주었다 그리고 위치를 마우스 커서를 따라다닐 수 있게 설정해주고 패널이 화면을 넘어가서 짤리지 않게 인벤토리 패널의 반을 넘으면 피벗을 변경시켜 패널의 좌우를 변경시켜주었다 그리고 IPointerEnterHandler 라는 인터페이스를 상속 받아서 마우스 커서가 이 스크립트가 붙은 slot 오브젝트에 들어가면 발동시켜주는 OnPointerEnter(Poin..

TIL 2023.09.22