<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>minn.log</title>
        <link>https://velog.io/</link>
        <description>해보자 게임개발👻</description>
        <lastBuildDate>Tue, 17 May 2022 14:27:08 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>minn.log</title>
            <url>https://images.velog.io/images/kyoung_minn/profile/1e84447d-9e0f-4714-9f2a-d71ca81381fe/숀.jpg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. minn.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/kyoung_minn" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[Unity 3D Animation을 통해 아바타 표정을 바꿔보자]]></title>
            <link>https://velog.io/@kyoung_minn/Unity-3D-Animation%EC%9D%84-%ED%86%B5%ED%95%B4-%EC%95%84%EB%B0%94%ED%83%80-%ED%91%9C%EC%A0%95%EC%9D%84-%EB%B0%94%EA%BF%94%EB%B3%B4%EC%9E%90</link>
            <guid>https://velog.io/@kyoung_minn/Unity-3D-Animation%EC%9D%84-%ED%86%B5%ED%95%B4-%EC%95%84%EB%B0%94%ED%83%80-%ED%91%9C%EC%A0%95%EC%9D%84-%EB%B0%94%EA%BF%94%EB%B3%B4%EC%9E%90</guid>
            <pubDate>Tue, 17 May 2022 14:27:08 GMT</pubDate>
            <description><![CDATA[<p>이번 글에서는 간단하게 Unity 3D에서 아바타의 표정을 바꾸는 방법에 대해 작성할 예정이다🙂
아바타라고 해서 대단한건 아니고, 구 형태의 얼굴과 손을 프리팹으로 만들어 놓은 아주 단순한 형태이다. 튜토리얼을 간단히 요약하면, 아바타 프리팹에 표정을 넣을 오브젝트를 추가하고 해당 오브젝트에 애니메이션을 적용시키는 것이다. </p>
<h1 id="empty-object-추가하기">Empty Object 추가하기</h1>
<p>내가 제작한 아바타는 Head 오브젝트 밑에 Sphere가 있고 Head와 동일한 계층에 왼손, 오른손 오브젝트가 있는 형태이다. 우선 표정을 넣기 위해서는 Sphere 밑에 Empty Object를 추가해야한다.
<img src="https://velog.velcdn.com/images/kyoung_minn/post/496d16a4-f637-45f8-8284-bdaaf43635b6/image.png" alt=""></p>
<p>Empty Object를 추가한 후에는 해당 오브젝트 이름을 Emotion으로 바꾸고 Sprite Renderer component를 추가한다.
<img src="https://velog.velcdn.com/images/kyoung_minn/post/323a5e8e-3935-4173-a640-ad04a97b1c43/image.png" alt=""></p>
<p>Sprite Renderer component 속 Sprite에 표정 이미지를 넣는다. 
<img src="https://velog.velcdn.com/images/kyoung_minn/post/62da9dd3-63d3-442a-a339-f8353ea5d7c2/image.png" alt=""></p>
<h1 id="animator-component-추가하기">Animator Component 추가하기</h1>
<p>Sphere를 선택한 상태에서 Animator component를 추가한다. 
<img src="https://velog.velcdn.com/images/kyoung_minn/post/fe6aa958-f132-4d15-92e6-6c0239e4d64f/image.png" alt=""></p>
<p>상단 탭 Window → Animation → Animation 눌러서 Animation 탭을 연다.
<img src="https://velog.velcdn.com/images/kyoung_minn/post/f645d2bb-b11e-4f60-81c9-095b6c233530/image.png" alt=""></p>
<h1 id="animation-추가하기">Animation 추가하기</h1>
<p>Sphere를 선택한 상태에서 Animation 탭에 Create 버튼을 클릭한다.
<img src="https://velog.velcdn.com/images/kyoung_minn/post/c3ff57dc-920d-46e8-9351-affdad688e8c/image.png" alt=""></p>
<p>Add property를 클릭하여 sprite renderer → Sprite를 추가한다.
<img src="https://velog.velcdn.com/images/kyoung_minn/post/a29b0268-5deb-4c4d-8f8f-8ce37f46f549/image.png" alt=""></p>
<p>Animation 탭에 애니메이션을 적용할 이미지들을 넣는다. (이미지의 색이 어두워 잘 보이지 않지만 주황색 동그라미를 보면 이미지가 들어가있다.)
<img src="https://velog.velcdn.com/images/kyoung_minn/post/fb10e767-42a2-4f58-8f5b-af449e0216c3/image.png" alt=""></p>
<p>여기까지 하면 애니메이션 적용이 끝났다! 재생시켜보면 아래와 같이 애니메이션이 실행되는걸 확인할 수 있다.
<img src="https://velog.velcdn.com/images/kyoung_minn/post/5b0b4b72-fe35-4ef4-8121-484198a75bf0/image.gif" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Unity VR 프리팹 생성, 색상 변환 스크립트로 해보자]]></title>
            <link>https://velog.io/@kyoung_minn/Unity-VR-%ED%94%84%EB%A6%AC%ED%8C%B9-%EC%83%9D%EC%84%B1-%EC%83%89%EC%83%81-%EB%B3%80%ED%99%98-%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A1%9C-%ED%95%B4%EB%B3%B4%EA%B8%B0</link>
            <guid>https://velog.io/@kyoung_minn/Unity-VR-%ED%94%84%EB%A6%AC%ED%8C%B9-%EC%83%9D%EC%84%B1-%EC%83%89%EC%83%81-%EB%B3%80%ED%99%98-%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A1%9C-%ED%95%B4%EB%B3%B4%EA%B8%B0</guid>
            <pubDate>Thu, 25 Nov 2021 14:58:37 GMT</pubDate>
            <description><![CDATA[<p>블로그의 첫 포스팅을 졸업프로젝트로 할 줄은 몰랐다. 
1-2학년 때부터 시작해야지 생각은 했는데 결국 3학년이 끝나갈 때가 되어서야 시작한다. 분발하자...🤦‍♀️</p>
<hr>
<p>내년 1학기까지 진행할 졸업프로젝트를 간단히 설명하자면 &#39;VR 브레인스토밍 기반 협업 툴&#39;이다. 
단순히 브레인스토밍을 할 수 있는 서비스는 많지만 이를 VR환경에서, 사람들과 협업하며 할 수 있는 툴은 거의 없었다. 코로나 시국이 큰 영향을 주긴 했다.</p>
<p>이 프로젝트의 가장 큰 특징은 바로 &#39;블록&#39;을 사용한다는 것이다. 어렸을 때 블록쌓기 놀이 하듯 팀원들과 브레인스토밍을 할 수 있는 것이다. 우리 팀은 현재 이 블록을 제어하는 기능을 구현 중인데 나는 그중에서도 블록 생성을 맡았다. 
블록 생성을 구현하기 위해서는 블록 프리팹을 생성해야하고, 블록의 메세지와 색상도 설정할 수 있어야 한다.</p>
<p>지금 부터 그 과정을 설명하려고 한다. 
<em>(Unity VR환경 세팅이 되어 있다는 가정 하에 이루어지는 튜토리얼이다.)</em></p>
<h1 id="블록-프리팹-만들기">블록 프리팹 만들기</h1>
<p>우선 Hierarchy창에서 마우스 오른쪽 버튼 클릭 -&gt; 3D Object -&gt; Cube -&gt; 블록으로 이름 바꾸기의 과정을 거쳐 블록을 생성한다. 
<img src="https://images.velog.io/images/kyoung_minn/post/d9fa3795-0f23-43cd-9f9f-11af0cf2e7bc/1.png" alt="">
<img src="https://images.velog.io/images/kyoung_minn/post/31a83ed1-77a5-445f-aae0-2c314a790d2f/image.png" alt=""></p>
<p>블록을 생성한 뒤에는, 이를 프리팹으로 만들어 주어야 앞으로 재사용하기 훨씬 쉬워진다. 프리팹으로 만드는 방법은 간단하다. Hierarchy창에 있는 블록 오브젝트를 하단 Project창 -&gt; Assets -&gt; Resources -&gt; Prefab 폴더로 드래그 해준다. 해당 폴더가 없을 경우에는 마우스 오른쪽 버튼을 클릭하여 새로 생성하면 된다. </p>
<p><img src="https://images.velog.io/images/kyoung_minn/post/11e20197-caae-4640-b6cd-9c6c0d8931f0/image.png" alt=""></p>
<p>드래그 후 프리팹이 만들어지면 위 사진과 같이 Hierarchy창에서 블록 오브젝트가 하늘색 글씨로 바뀐다. 게임에서 보이지 않도록 오브젝트를 삭제한다. 
❗ 이때, Hierarchy창의 블록은 &#39;블록 프리팹&#39;의 인스턴스이므로 프리팹 자체를 수정하고 싶을 때는 하단 Prefab 폴더안의 블록을 수정해야한다. </p>
<h1 id="프리팹-복제-생성하기">프리팹 복제, 생성하기</h1>
<p>이제 프리팹이 만들어졌으니 스크립트를 사용하여 프리팹을 동적으로 복제 또는 생성하는 방법을 알아보려고 한다.</p>
<p>먼저 Block이라는 이름의 스크립트를 생성한다. 
<img src="https://images.velog.io/images/kyoung_minn/post/6a7c9e10-bec3-40ac-8854-f72dab0457d4/image.png" alt=""></p>
<p>프리팹을 복제하여 인스턴스화할 때에는 Instantiate( )함수를 사용한다. 스크립트에 넣을 코드는 아래와 같다. </p>
<pre><code>using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Block : MonoBehaviour
{
    public GameObject block;

    // Start is called before the first frame update
    void Start()
    {
        block = (GameObject)Instantiate(Resources.Load(&quot;Prefab/block&quot;)); 
    }

    // Update is called once per frame
    void Update()
    {

    }
}
</code></pre><p>이 코드를 유니티에서 동작하게 만드려면 GameManager라는 빈 오브젝트를 만든 뒤 스크립트를 드래그하여 넣어준다. 
<img src="https://images.velog.io/images/kyoung_minn/post/5244f473-119f-4549-956b-310bdac10b06/image.png" alt="">
<img src="https://images.velog.io/images/kyoung_minn/post/821c91c1-52bd-4121-9b48-89fc8ad749f6/image.png" alt=""></p>
<p>GameManager 하위 Block 스크립트에 생긴 Block 오브젝트 칸에 이전에 생성했던 프리팹 원본을 드래그하여 넣어 준다.</p>
<p>이후 게임을 실행하면 프리팹의 인스턴스, 즉 블록이 생성되는 것을 확인할 수 있다.
<img src="https://images.velog.io/images/kyoung_minn/post/d141ca9b-9756-4928-beb8-42a86d1cf3da/image.png" alt=""></p>
<h1 id="블록-색상-변환하기">블록 색상 변환하기</h1>
<p>다음은 블록의 색상을 변환하는 방법이다. 특히, 버튼을 클릭하면 색상이 변하는 방식을 사용해보려고 한다. 
블록의 색상을 변환하기 위한 버튼을 먼저 만들어 보자. 블록을 생성했을 때와 비슷한 방식이다. 
Hierarchy창에서 마우스 오른쪽 버튼 클릭 -&gt; XR -&gt; UI Canvas를 통해 canvas를 생성해준 뒤, Canvas에서 마우스 오른쪽 버튼 클릭 -&gt; UI -&gt; Button을 클릭하면 버튼이 생성된다.
<img src="https://images.velog.io/images/kyoung_minn/post/5ac7f5f7-cf50-446e-98df-c13fb9638547/image.png" alt="">
<img src="https://images.velog.io/images/kyoung_minn/post/9715d5da-f07e-4a71-96da-2da76fbdc545/image.png" alt=""></p>
<p>이제 버튼에 연결할 스크립트를 작성해야 한다. ChangeColor라는 이름의 새로운 스크립트를 생성한다. 스크립트에 넣을 코드는 아래와 같다.</p>
<pre><code>using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ChangeColor : MonoBehaviour
{
    public void ChangeGreen()
    {
        GameObject.Find(&quot;block(Clone)&quot;).GetComponent&lt;Renderer&gt;().material.color = Color.green;
    }
}</code></pre><p>코드는 간단한데 먼저 GameObject.Find(&quot;block(Clone)&quot;)를 통해 생성된 블록 인스턴스를 찾아주고, 다음으로 해당 인스턴스의 Renderer 컴포넌트 중 material.color 속성을 가져와 초록색으로 변경해주는 코드이다. </p>
<p>코드 작성을 완료하면 이전에 만들어 두었던 버튼에 스크립트를 드래그해서 넣어준다. 그 다음 On Click()의 Runtime Only 밑에 버튼 오브젝트를 드래그에서 넣는다. 버튼을 넣으면 Runtime Only 옆 화살표를 눌러 ChangeColor -&gt; ChangeGreen을 선택한다.<br><img src="https://images.velog.io/images/kyoung_minn/post/1884e873-4e9f-4ec9-aeed-68063a817535/image.png" alt=""></p>
<p>이 과정까지 완료한 뒤, 게임을 시작하자. 블록이 생성되고 버튼을 누르면 블록의 색상이 초록색으로 변하는 것을 볼 수 있다.
<img src="https://images.velog.io/images/kyoung_minn/post/b5bd15b7-e1c9-44ce-bbf1-cfb532362d5b/gif_animation_032.gif" alt=""></p>
]]></description>
        </item>
    </channel>
</rss>