}
진우의 혼잣말하는 블로그
close
프로필 배경
프로필 로고

진우의 혼잣말하는 블로그

  • 분류 전체보기 (610) N
    • Unity (435) N
      • Study (215) N
      • VR (71)
      • AR (6)
      • Assets (39)
      • Fusion2 (8)
      • Shader (22)
      • 디자인패턴 (7)
      • Animations (7)
      • Editor (8)
      • Attribute (7)
      • VContainer (8)
      • Netcode for GameObjects (21)
      • Relay (5)
      • Lobby (11)
    • 진우의 포트폴리오 (20)
    • 나만의 꿀팁 (36)
    • Git 사용방법 (16)
    • AI (23)
    • 게임후기 (16)
    • 블렌더 (9)
    • 홍보 및 리뷰 (7)
    • 웹 개발 (26)
    • 정리 안 됨 (16)
  • 홈
  • 태그
  • 방명록
Unity 애니메이션 특정 구간에 Event 추가하기

Unity 애니메이션 특정 구간에 Event 추가하기

애니메이션 특정 클립에 Event 추가하기 원하는 프레임에 원하는 Events를 추가할 수 있습니다. 이때 주의할 점은 Function이름입니다. 함수 이름을 OnAttackCollsion으로 지었고, OnAttackCollsion을 실행시키고 싶다면 Event Function의 이름도 똑같이 해주어야 합니다. Animator컴포넌트와 실행시키고 싶은 Event Function이 담겨져 있는 스크립트 컴포넌트는 같은 곳에 있어야합니다.

  • format_list_bulleted 나만의 꿀팁
  • · 2022. 9. 12.
  • textsms
Unity Shake Camaera

Unity Shake Camaera

뭔가 특수한 상황에서 카메라를 흔들고 싶은 연출이 필요할 때가 있지 않음? 그럴때를 위한 방법을 가져왔음! 먼저 싱글톤 패턴을 이용하여 다른 코드에서 손쉽게 접근할 수 있도록 해줘! 그리고 OnShakeCamera가 호출될 때마다 카메라가 흔들리게 할거야! 첫 번째 방법은 Camera의 Position자체를 움직이는거고! 두 번째 방법은 Camera의 Rotation을 바꿔주는거임! 나 같은 경우에는 칼같은 무기에 상대 Enemy가 닿으면 카메라가 흔들리게끔 설정했음! CameraShake.Instance아래 코드는 무시하셈~

  • format_list_bulleted Unity/Study
  • · 2022. 9. 12.
  • textsms
Unity 2D Simple Directional

Unity 2D Simple Directional

Create new BlendTree in State를 눌러 블렌드트리를 만들자 플레이어가 왼쪽키를 눌렀을 때 왼쪽으로 향하는 듯한 애니메이션을 실행시키고 싶을 때 Blend Tree를 사용하여 애니메이션을 컨트롤한다 변수 Float로 Horizontal, Vertical 2개를 받는다 그리고 5개의 상태에 맞게 각각 Parameter값을 조정한다 코드를 생성해준다

  • format_list_bulleted Unity/Animations
  • · 2022. 9. 12.
  • textsms
Unity 연속적인 애니메이션

Unity 연속적인 애니메이션

연속적인 애니메이션에는 무엇이 있을까? 연속 공격, 연속 점프 등 있다 Animator창을 열어 Create Sub-State Machine을 선택하자 연속적으로 표현하고 싶은 애니메이션을 추가한다 Parameter는 Attack이라는 이름으로 Trigger를 하나 만들어준다 위에 두 사진이 핵심이다 잘봐야한다 먼저 Attack1 -> Attack2로 갈 때 Exit Time이 0.79로 설정되어 있는걸 볼 수 있다 Attack1 -> Base Layer로 갈 땐 Exit Time이 0.9로 설정되어 있다 Exit Time같은 경우 Has Exit Time이 체크되어야만 활성화되는 녀석이다 이 녀석이 0.9라는 뜻은 애니메이션이 90%로 실행되었다는 뜻이다 즉, 90%로 실행되기 전에는 Attack Tr..

  • format_list_bulleted Unity/Animations
  • · 2022. 9. 12.
  • textsms
Unity OVR Door, 문

Unity OVR Door, 문

먼저 Door 오브젝트와 빈오브젝트인 Pivot오브젝트를 생성해준다.Pivot오브젝트는 문의 Pivot에 놓는다. Pivot설정할 때  V누르고 하면 피봇 설정하기 매우 편하다.Door 오브젝트에 One Grab Rotate Transfomer컴포넌트와 Rigidbody를 만들어준다.각도를 설정해줘야 하는데, Constaints를 열어 설정해주면 된다(Pivot 오브젝트 Rotation을 돌리며 확인)이때 One Grab Rotate Transformer는 Grabbable의 One Grab Transformer에 할당해줘야 한다 + 추가돌리고자 하는 객체에는 One Grab Rotate Transformer와 Rigidbody함께!잡고 싶은 핸들에는 콜라이더만!그리고 자식 오브젝트 하나 만들고 거기에 ..

  • format_list_bulleted Unity/VR
  • · 2022. 9. 12.
  • textsms

# mlagents-learn을 이용해 ML-Agents 사용하기

ML-Agents를 사용하는 방법에는 2가지가 있다 첫 번째, ML-Agents에서 제공하는 mlagents-learn 기능을 이용해 학습을 수행, 이 경우 강화학습 알고리즘을 직접 구현하지 않아도 되고 간단한 명령어만으로 학습을 수행할 수 있다, 단점으로는 학습과 관련된 파라미터만 변경이 가능하고, 알고리즘에 대한 변경은 제한적 두 번째, ML-Agents의 Python-API를 사용하여 직접 구성한 파이썬 코드를 통해 에이전트를 학습하는 것, 알고리즘에 대한 변경이 자유롭지만 직접 구현해야 한다는 점에서 난이도가 높다 # ML-Agents에서 제공하는 강화학습 알고리즘 Proximity Policy Optimization (PPO) Soft Actor Critic (SAC) Curiostiy base..

  • format_list_bulleted 정리 안 됨
  • · 2022. 9. 11.
  • textsms
유니티(Unity) ML-Agents Agent Script & Decision Requester, Model Overrider

유니티(Unity) ML-Agents Agent Script & Decision Requester, Model Overrider

# ML-Agents Agent Script Max Step 한 에피소드의 최대 스텝 수를 정하는 값, 5000 스텝이 지나면 한 에피소드가 자동으로 종료됨 Ball, Use Vec Obs 이 변수들은 Ball 3D Agent에서만 사용되는 변수이다 #Decision Requester, Model Overrider Decision Period 에이전트가 새로운 행동을 결정하는 스텝의 간격, 5스텝 마다 한 번씩 행동을 결정 Take Actions Between Decisions 행동 결정 사이의 간격 동안 이전에 결정된 행동을 반복할지, 아니면 아무 행동도 취하지 않을지 선택하는 설정, 예를 들면 체크를 하면, 에이전트가 처음 행동이 왼쪽으로 가는거였다면 새로운 행동이 시작되기 전까지 계속 왼쪽으로 이동..

  • format_list_bulleted 정리 안 됨
  • · 2022. 9. 10.
  • textsms
# ML-Agents Behavior Parameters

# ML-Agents Behavior Parameters

# Behavior Parameters Behavior Name : Behavior Parameters의 이름을 결정함, 여러개의 파라미터를 사용하는 경우 이들을 구분하기 위한 것 Vector Observation : Space Size : 현재 환경에서 사용할 벡터 관측의 크기를 설정 Stacked Vectors : 벡터 관측의 누적 횟수를 결정, 시간에 따른 누적으로 해당 누적 횟수만큼 시간 스텝에 대해 벡터 관측을 누적 - Why ? : 속도나 방향과 같이 시간에 대한 정보가 필요한 경우에는 상태를 누적해야함 Actions : 에이전트의 행동과 관련된 설정 3DBall 게임 같은경우 X,Z축을 회전시키면서 박스를 제어해야 하므로 2개의 축에대한 제어를 위해 Continuous Actions을 2로 ..

  • format_list_bulleted 정리 안 됨
  • · 2022. 9. 10.
  • textsms
# 유니티 ML-Agents 다운

# 유니티 ML-Agents 다운

https://github.com/Unity-Technologies/ml-agents/releases Releases · Unity-Technologies/ml-agents The Unity Machine Learning Agents Toolkit (ML-Agents) is an open-source project that enables games and simulations to serve as environments for training intelligent agents using deep reinforcement ... github.com 여기 링크에 들어가서 릴리즈 17을 찾고 다운받고 압축해제하셈 유니티에서도 다운받는 방법을 간단하게 소개하면 다운받은 경로로 들어가서 2개의 폴더를 확인 후 j..

  • format_list_bulleted 정리 안 됨
  • · 2022. 9. 9.
  • textsms

# ML - Agents의 역할

ML - Agents는 유니티를 이용한 인공지능 에이전트의 학습을 지원하는 도구로, 기본적으로는 강화학습 에이전트를 학습하기 위한 다양한 기능을 제공한다고함! 강화학습의 특성상 학습 및 검증을 위해 주로 실제 환경이 아닌 시뮬레이션 황경을 이용함! ML - Agents의 역할 최근에는 딥러닝의 발전으로 인해 딥러닝과 강화학습을 결합한 심층강화학습 알고리즘이 주로 사용된다고함 심층강화학습 알고리즘을 구현하려면 우선 인공신경망을 구현해야 하는데, 인공신경망을 이용하는 알고리즘은 주로 파이썬 언어를 이용한다고함 유니티는 주로 C#코드를 사용하기 때문에 ... 강화학습 알고리즘과 환경이 서로 다른 프로그래밍 언어로 구현된 독립적인 프로그램이다... 따.라.서!!!!!! 프로그램들 간에 행동, 상태, 보상 등의 ..

  • format_list_bulleted 정리 안 됨
  • · 2022. 9. 9.
  • textsms
# 강화학습의 기초 용어

# 강화학습의 기초 용어

강화학습은 순차적으로 행동들을 선택하면서 보상을 최대화하는 의사 결정 전략인 순차적 결정 문제이다 이런 순차적 결정 문제를 수학적으로 정의한 것이 마르코프 결정 프로세스 ( MDP ) 이다 MDP는 상태(state), 행동(action), 보상 함수(reward functions), 감가율(discount factor), 상태 변환 확률(state transition probabilty)로 구성돼 있다 State Agent는 상태를 기반으로 의사 결정을 함, 상태는 에이전트가 의사 결정하는 데 사용하기 위해 관측, 행동 등을 가공한 정보!! 일반적으로 현재 스텝의 상태는 s라고 표기함 Action Agent가 의사 결정을 통해 취할 수 있는 행동을 의미, 일반적으로 현재 상태에서 취하는 행동을 a라고 표..

  • format_list_bulleted 정리 안 됨
  • · 2022. 9. 9.
  • textsms
# 강화학습이란?

# 강화학습이란?

파이토치와 유니티 ML-Agents로 배우는 강화학습 이라는 책을 읽고 쓰는 내용임 강화학습을 이해하기 앞서 기계학습이 무엇인지 짚고 가보자 기계학습은 1959년 아서 사무엘이라는 분이 기계가 일일이 코드로 명시하지 않은 동작을 데이터로부터 학습하여 실행할 수 있도록 하는 알고리즘을 개발하는 연구 분야" 라고 정의했다 기계학습 알고리즘에는 결정 트리, 랜덤 포레스트, 서포트 벡터 머신,인공 신경망 등이 있다 기계학습은 크게 지도 학습, 비지도 학습, 강화 학습 3가지 유형으로 나눌 수 있다 3가지 유형에 대해 짤막하게 설명해보자면 지도 학습 : 머신러닝 알고리즘이 데이터 세트의 특징을 통해 예측한 값과 실제 정답의 오차를 줄여나가도록 반복적으로 학습, 주로 회귀나 분류와 같은 문제를 해결하는데 사용 됨,..

  • format_list_bulleted 정리 안 됨
  • · 2022. 9. 9.
  • textsms
Unity Camera Projection

Unity Camera Projection

유니티 카메라를 눌러보면 Projection(투영방식) 탭에 2가지 선택지가 있다 1. Perspective 2. Orthographic persepctive멀리 있는 물체는 작게, 가까이 있는 물체는 크게 즉, 원근감과 공간감이 표현된 화면을 렌더링해서 보여줍니다 투영선(Field Of View)가 존재합니다(빨간색선) Orthographic투영선이 평행을 이루고 있다 따라서,멀리 있든 가까이 있든 실제 게임오브젝트의 사이즈로 보인다 즉, 원근감과 공간감이 따로 표현되지 않는다 투영선을 작게하면 화면이 좁아지지만 오브젝트는 커지고, 투영선을 크게하면 화면은 넓어지지만 오브젝트는 작아집니다. 즉 Zoom In / Zoom Out 개념을 생각하면 됩니다 정리Perspective : 원근법이 적용되는 3D ..

  • format_list_bulleted Unity/Study
  • · 2022. 9. 6.
  • textsms
Unity Mixamo에서 받아온 캐릭터의 재질이 안입혀져있을 때

Unity Mixamo에서 받아온 캐릭터의 재질이 안입혀져있을 때

캐릭터 재질이 안입혀져있을 때 Extract Textures를 누르고 Materials를 클릭하고 폴더선택하면 끝!

  • format_list_bulleted Unity/Study
  • · 2022. 9. 6.
  • textsms
Unity New Input System

Unity New Input System

New Input System은 기존 유니티 Input System의 단점을 보완한 시스템이다 다양한 플랫폼에서 빠르게 컨트롤 설정을 변경할 수 있다! 기존 Inpuy System은 하나하나 코드로 수정해야했다.. 패키지 시스템에서 인풋 시스템을 임포트하자.그럼 이런 무시무시한 워닝 문구가 뜨는데 그냥 Yes누르면 된다. 그다음 프로젝트 세팅에 가보면 [Player] 창에 아래로 내려가다보면 Active Input Handling이라는 칸이 있는데 거기에 Input System Package(New)로 체크되어있을 것이다. 나는 Old버전의 인풋 시스템도 사용중이라 Both를 체크했다.그다음 프로젝트 폴더 아래 [+]버튼을 누르고 아래로 내려가다 보면 Input Actions가 생겼을거다. 눌러보자!이런..

  • format_list_bulleted Unity/Study
  • · 2022. 9. 5.
  • textsms
Unity World Positon & Local Position

Unity World Positon & Local Position

World는 이제 세계 본질의 값이다 인스펙터창 보면 x,y,z값이 있는데 그게 World값이다 Local은 내가 오브젝트 클릭했을 때 그 오브젝트가!!!!!!!!!!! 기준이 되고!!!! 세상아 나를 억까하지마셈!! 나는 내가 기준이 되겠어!!! 너따위는 기준이 되지 못해!! 이러는 거임 즉, Local과 World는 기준이 누구냐에 따름 더 쉽게 설명해보면 지금 이 친구는 로테이션이 0,0,0 포지션도 0,0,0 이기 때문에 월드좌표계와 Local좌표계가 일치함 근데 이 친구가 삐져서 등을 휙 돌리면(로테이션을 180도 하면) 이 친구의 Local좌표계는 이렇게 변함 즉, 이 친구가 기준이 되므로 Forward방향이 저 빨간 기둥이 아닌 캐릭터가 바라보는 방향이 Forward방향이 됨!!

  • format_list_bulleted Unity/Study
  • · 2022. 9. 4.
  • textsms
Unity 카메라 회전 - 마우스 컨트롤

Unity 카메라 회전 - 마우스 컨트롤

카메라 X축 회전카메라 X축을 회전시킬 mouseSpeed와 값을 저장할 변수 mouseX를 선언합니다. mouseX += Input.GetAxis는 Mouse X의 회전축을 받아와 더합니다. (왼쪽으로가면 마이너스, 오른쪽으로가면 플러스입니다. 카메라 Y축 회전움짤을 보면 캐릭터의 rotation Y만 바뀌는걸 볼 수 있다..! 요약1. float mouseX += Input.GetAxis("Mouse X"); float mouseY += Input.GetAxis("Mouse Y"); 2. transform.eulerAngles = new Vector(-mouseY, mouseX, 0); mouseY에 마이너스를 하냐면 값이 작아질수록 위를향하고 커질수록 아래를 향하기 때문입니다.

  • format_list_bulleted Unity/Study
  • · 2022. 9. 4.
  • textsms
Unity Pooling System (최적화 구웃!)

Unity Pooling System (최적화 구웃!)

Pooling이란? Unity의 풀링 시스템은 런타임 중에 게임 오브젝트를 효율적으로 관리하고 재사용하는 데 사용되는 기술로, 특히 총알, 적, 파티클과 같은 오브젝트를 자주 생성하고 소멸해야 할 때 유용합니다. 오브젝트를 지속적으로 생성하고 소멸하는 오버헤드를 줄여 성능을 개선하는 데 도움이 됩니다. 작동 방식에 대한 간단한 설명은 다음과 같습니다 초기화 : 특정 유형(예: 총알)의 게임 오브젝트 풀을 생성하는 것으로 시작합니다. 초기화된 게임오브젝트들은 시작과 동시에 비활성화됩니다. 오브젝트 요청: 오브젝트가 필요한 경우 새 오브젝트를 생성하는 대신 풀에서 오브젝트를 요청합니다. 풀은 사용 가능한 오브젝트를 계속 관리해 줍니다. 활성화 및 사용: 풀은 이미 초기화된 풀에서 오브젝트를 제공합니다. 개체..

  • format_list_bulleted 나만의 꿀팁
  • · 2022. 9. 4.
  • textsms
Unity ChessMaze 활동하면서 구현해보고 싶었던 것(사슬날리는 것)

Unity ChessMaze 활동하면서 구현해보고 싶었던 것(사슬날리는 것)

먼저, 우리 게임의 주 기능은 컨트롤러를 누르면 사슬이 뻗어 나가 사념에 연결되는 것이다. 나는 내 방식대로 이 사슬이 뻗어나가는 것을 구현해보려고 한다.이론1. 사슬이 뻗어나가는 위치와 타켓의 위치를 계산한다(Distance)2. 사슬이 생길 개수를 미리 정한다(이렇게 한 이유는, 사슬의 크기를 고정할 경우 distance의 거리에 따라 사슬의 개수가 부족하거나 초과될 수 있기 때문에 사슬의 개수를 미리 정해서 사슬의 크기를 유동적으로 바꿀 예정이다), 사슬의 크기를 고정시키는 방법도 해볼 예정이다 코드는 이러하다 distance를 구하고, 방향을 구한다음, 오브젝트의 길이를 구하면 된다.이렇게하면 문제점이 하나 발생한다.  이렇게 사슬이 중심정에 서로 겹친다.사이즈를 조정해주자.  위 아래로 겹치기 ..

  • format_list_bulleted Unity/Study
  • · 2022. 9. 3.
  • textsms
Unity AddComponent

Unity AddComponent

AddComponent는 GetComponent와 다른 녀석이다 Add, 말 그대로 더한다는 뜻인데 첫 번째줄에서 Test라는 게임오브젝트를 새로 만들고 그 Test오브젝트에 라는 스크립트를 집어 넣어주는 것이다

  • format_list_bulleted Unity/Study
  • · 2022. 9. 3.
  • textsms
  • navigate_before
  • 1
  • ···
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • navigate_next
진우의 혼잣말 하는 블로그👱‍♀️
📂전체 카테고리
  • 분류 전체보기 (610) N
    • Unity (435) N
      • Study (215) N
      • VR (71)
      • AR (6)
      • Assets (39)
      • Fusion2 (8)
      • Shader (22)
      • 디자인패턴 (7)
      • Animations (7)
      • Editor (8)
      • Attribute (7)
      • VContainer (8)
      • Netcode for GameObjects (21)
      • Relay (5)
      • Lobby (11)
    • 진우의 포트폴리오 (20)
    • 나만의 꿀팁 (36)
    • Git 사용방법 (16)
    • AI (23)
    • 게임후기 (16)
    • 블렌더 (9)
    • 홍보 및 리뷰 (7)
    • 웹 개발 (26)
    • 정리 안 됨 (16)
인기 글
최근 글
태그
  • #유니티 꿀팁
  • #fusion2
  • #웹 개발
  • #오블완
  • #티스토리챌린지
  • #유니티
  • #자바스크립트
  • #VR
  • #Meta SDK
  • #Unity
05-12 12:41
전체 방문자
오늘
어제
전체
최근 댓글
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바