Ragdoll 사용하기 - 게임에서 자연스럽게 적용하기

 

이전 섹션까지는 캐릭터에 인체형 래그돌을 적용하고 확장된 커스텀 본에 Character Joint를 넣어서 최대한 자연스러운 래그돌을 만들어내는 작업을 진행해보았다. 그렇게 함으로써 게임에 적용하기 적당한 래그돌을 얻었다. 래그돌을 설명하는 제일 첫 번째 섹션의 아래 쪽에서 실제로 게임에서 래그돌을 사용하는 방법에 대해서 이야기했었는데, 이번 섹션에서는 그 부분에 대해서 자세하게 이야기해볼 것이다.

 

 

게임에서 래그돌을 사용하는 실제 방법은 실제 애니메이션이 적용되어 있는 캐릭터 오브젝트가 살아있는 동안에는 정상적으로 움직이다가, 캐릭터의 체력이 0이 된다던가 하는 방식으로 사망하게 되면 캐릭터 오브젝트를 래그돌 오브젝트로 교체하는 것이다. 다음은 애니메이션된 캐릭터 오브젝트와 래그돌 오브젝트를 교체해주는 코드이다.

 

using UnityEngine;

public class Character : MonoBehaviour
{
    public GameObject charObj;
    public GameObject ragdollObj;

    public Rigidbody spine;

    void Update ()
    {
        if (Input.GetKeyDown(KeyCode.Space))   // Space 키를 누르면 캐릭터가 사망한다고 가정하자.
        {
            ChangeRagdoll();
            spine.AddForce(new Vector3(0f, 0f, 5000f));
        }
    }

    public void ChangeRagdoll()
    {
        charObj.gameObject.SetActive(false);
        ragdollObj.gameObject.SetActive(true);
    }
}

 

 

코드를 작성하고 이미지처럼 적용을 한 다음, 플레이 버튼을 눌러서 테스트를 해보자.

 

 

플레이 되는 도중에 Space 키를 누르면 달리기를 하던 캐릭터가 래그돌로 바뀌면서 풀썩 쓰러지는 것을 볼 수 있을 것이다. 하지만 예시 이미지에서도 보이듯이 캐릭터가 래그돌로 바뀔 때, 갑자기 캐릭터의 포즈가 T자로 바뀌면서 변경되는 것을 볼 수 있다. 이것은 래그돌의 기본 자세가 T자 자세이기 때문에 발생하는 문제이다. 하지만 유니티에서 제공하는 기본적인 래그돌 적용 기능은 T자 자세로 하기를 권장하기 때문에 다른 자세로 만드는 것은 추천하지 않는다.

 

그렇다면 이 어색한 래그돌 전환 문제를 어떻게 해결해야 할지를 찾아야 한다.

 

 

 

우선 캐릭터의 본은 유니티의 Hierarchy 뷰에서 오브젝트로 볼 수 있는데 각 본은 위치와 각도 정보를 가지고 있는 Transform 컴포넌트를 가진다.

 

 

애니메이션을 가진 오브젝트와 래그돌이 적용된 오브젝트를 살펴보면 같은 모델링을 사용했기 때문에 같은 구조를 가지고 있는 것을 알 수 있다.

 

1. 캐릭터의 각 본들은 그 위치와 각도에 대한 정보를 담고 잇는 Transform 컴포넌트를 가진다.

2. 애니메이션 캐릭터 오브젝트와 래그돌 오브젝트의 구조는 1:1로 대응이 된다.

 

위의 2가지 정보를 이용하나면 하나의 아이디어를 얻을 수 있다. 그것은 바로 "애니메이션 캐릭터 오브젝트가 래그돌 오브젝트로 교체될 때 각 본들의 위치와 각도를 전해주면 애니메이션 캐릭터 오브젝트가 취한 마지막 포즈를 래그돌 오브젝트가 취한 채로 시작되지 않을까?" 하는 것이다.

 

이 아이디어를 코드로 만들어보자.

 

using UnityEngine;

public class Character : MonoBehaviour
{
    public GameObject charObj;
    public GameObject ragdollObj;

    public Rigidbody spine;

    void Update ()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            ChangeRagdoll();
            spine.AddForce(new Vector3(0f, 0f, 5000f));
        }
    }

    public void ChangeRagdoll()
    {
        CopyAnimCharacterTransformToRagdoll(charObj.transform, ragdollObj.transform);

        charObj.gameObject.SetActive(false);
        ragdollObj.gameObject.SetActive(true);
    }

    private void CopyAnimCharacterTransformToRagdoll(Transform origin, Transform rag)
    {
        for (int i = 0; i < origin.transform.childCount; i++)
        {
            if (origin.transform.childCount != 0)
            {
                CopyAnimCharacterTransformToRagdoll(origin.transform.GetChild(i), rag.transform.GetChild(i));
            }
            rag.transform.GetChild(i).localPosition = origin.transform.GetChild(i).localPosition;
            rag.transform.GetChild(i).localRotation = origin.transform.GetChild(i).localRotation;
        }
    }
}

 

위의 코드는 SetActive로 오브젝트들을 교체하기 직전에 원본의 자식 오브젝트들의 Transform을 래그돌의 자식 오브젝트들의 Transform에 복사해주는 작업을 진행한다.

 

 

 

완성된 코드를 적용하고 테스트를 해보면 Space 키를 누르면 달리는 동작과 자연스럽게 이어지면서 쓰러지는 것을 볼 수 있다.

 

 

[유니티 어필리에이트 프로그램]

아래의 링크를 통해 에셋을 구매하시거나 유니티를 구독하시면 수익의 일부가 베르에게 수수료로 지급되어 채널의 운영에 도움이 됩니다.

 

에셋스토어

여러분의 작업에 필요한 베스트 에셋을 찾아보세요. 유니티 에셋스토어가 2D, 3D 모델, SDK, 템플릿, 툴 등 여러분의 콘텐츠 제작에 날개를 달아줄 다양한 에셋을 제공합니다.

assetstore.unity.com

 

Easy 2D, 3D, VR, & AR software for cross-platform development of games and mobile apps. - Unity Store

Have a 2D, 3D, VR, or AR project that needs cross-platform functionality? We can help. Take a look at the easy-to-use Unity Plus real-time dev platform!

store.unity.com

 

Create 2D & 3D Experiences With Unity's Game Engine | Unity Pro - Unity Store

Unity Pro software is a real-time 3D platform for teams who want to design cross-platform, 2D, 3D, VR, AR & mobile experiences with a full suite of advanced tools.

store.unity.com

[투네이션]

 

-

 

toon.at

[Patreon]

 

WER's GAME DEVELOP CHANNEL님이 Game making class videos 창작 중 | Patreon

WER's GAME DEVELOP CHANNEL의 후원자가 되어보세요. 아티스트와 크리에이터를 위한 세계 최대의 멤버십 플랫폼에서 멤버십 전용 콘텐츠와 체험을 즐길 수 있습니다.

www.patreon.com

[디스코드 채널]

 

Join the 베르의 게임 개발 채널 Discord Server!

Check out the 베르의 게임 개발 채널 community on Discord - hang out with 399 other members and enjoy free voice and text chat.

discord.com

 

반응형

Ragdoll 사용하기 - 커스텀 본에 Ragdoll 적용하기

 

이전 섹션들에서는 기본적인 인체 형태(Humanoid)의 본 구조에 대해 래그돌을 적용하고 거기에 사용되는 Character Joint 컴포넌트의 상세한 옵션에 대해서 알아보았다. 이번 섹션에서는 지난 섹션에서 본 Character Joint를 이용해서 일반적인 인체 구조의 외의 다른 형태의 본에 대해서 래그돌을 적용하는 법에 대해서 알아보게 될 것이다.

 

새로운 응용법을 배우게 될 것이지만 준비물은 전과 같다. 유니티 짱 캐릭터 하나면 충분하다.

 

 

유니티 짱 캐릭터의 모델링은 기본적인 인체 구조를 약간 벗어나 머리카락 부분에도 본이 심어져 있다. 이번 예제에서는 이 머리카락의 본 부분에 Character joint를 적용해서 래그돌이 되었을때 머리카락 역시 움직임을 보이도록 만들것이다.

 

 

뒷 머리카락의 본은 Head에 연결된 HairTail에서 시작된다.

 

 

이 두개의 본을 선택하고 Character Joint와 Sphere Collider를 생성한다. Rigidbody 컴포넌트의 경우는 Character Joint를 생성하면 자동으로 생성된다. Sphere Collider는 머리카락의 충돌을 처리하기 위해 생성한다.

 

 

다음은 Character Joint의 Connected Body 프로퍼티에 Head의 Rigidbody를 넣어준다. 그러면 머리카락의 조인트는 머리에 연결된다.

 

 

그 다음엔 추가한 Collider의 크기를 조절해야 한다.

 

 

만약 그렇지 않으면 이런 장면을 보게 될 것이다.

 

 

Collider의 설정을 적절히 수정해서 아래와 같은 모습이 되도록 하자.

 

 

그리고 머리카락의 무게가 너무 무거우면 이상한 움직임을 보일 수 있으므로 적절하게 수정해주어야 한다.

 

 

위와 같은 과정을 머리카락 끝까지 반복하여 이미지처럼 만들면 된다.

 

 

설정을 끝낸 후에 머리카락의 본에 Character Joint를 심은 모델과 심지 않은 모델을 비교해보면 그 차이를 확실하게 느낄 수 있다. 머리카락에도 래그돌이 적용된 캐릭터의 머리카락은 자연스럽게 바닥에 떨어져 모양이 잡히는 반면에 적용되지 않는 캐릭터의 머리카락은 뻣뻣하게 되어 있는 것을 볼 수 있다.

 

이렇듯이 인간형이 아니거나 인간형에서 확장된 모델의 경우에도 적절하게 Character Joint를 심고 형태에 맞는 Collider를 넣어주는 것 만으로 래그돌을 적용할 수 있다.

 

 

[유니티 어필리에이트 프로그램]

아래의 링크를 통해 에셋을 구매하시거나 유니티를 구독하시면 수익의 일부가 베르에게 수수료로 지급되어 채널의 운영에 도움이 됩니다.

 

에셋스토어

여러분의 작업에 필요한 베스트 에셋을 찾아보세요. 유니티 에셋스토어가 2D, 3D 모델, SDK, 템플릿, 툴 등 여러분의 콘텐츠 제작에 날개를 달아줄 다양한 에셋을 제공합니다.

assetstore.unity.com

 

Easy 2D, 3D, VR, & AR software for cross-platform development of games and mobile apps. - Unity Store

Have a 2D, 3D, VR, or AR project that needs cross-platform functionality? We can help. Take a look at the easy-to-use Unity Plus real-time dev platform!

store.unity.com

 

Create 2D & 3D Experiences With Unity's Game Engine | Unity Pro - Unity Store

Unity Pro software is a real-time 3D platform for teams who want to design cross-platform, 2D, 3D, VR, AR & mobile experiences with a full suite of advanced tools.

store.unity.com

[투네이션]

 

-

 

toon.at

[Patreon]

 

WER's GAME DEVELOP CHANNEL님이 Game making class videos 창작 중 | Patreon

WER's GAME DEVELOP CHANNEL의 후원자가 되어보세요. 아티스트와 크리에이터를 위한 세계 최대의 멤버십 플랫폼에서 멤버십 전용 콘텐츠와 체험을 즐길 수 있습니다.

www.patreon.com

[디스코드 채널]

 

Join the 베르의 게임 개발 채널 Discord Server!

Check out the 베르의 게임 개발 채널 community on Discord - hang out with 399 other members and enjoy free voice and text chat.

discord.com

 

반응형

Ragdoll 사용하기 - Character Joint의 옵션과 조정(5.6)

 


지난 섹션에서는 래그돌을 사용하는 기본적인 방법에 대해서 살펴보았다. 이번 섹션에서는 래그돌 옵션과 세밀한 조정 방법을 알아보도록 할 것이다.

 

 

 

래그돌의 구성요소

 

 

래그돌을 설정할 때 선택했던 본을 Hierarchy 뷰에서 찾아보면 Rigidbody, Collider, Character Joint 컴포넌트들이 추가되어 있는 것을 볼 수 있다. 이 중에서 Rigidbody와 Collider는 래그돌의 물리 처리를 위한 컴포넌트이고 실제로 각 부분간의 연결을 결정하고 래그돌의 기능을 만드는 컴포넌트는 Character Joint 이다.

 

이 Character Joint에는 많은 수의 프로퍼티가 있는데, 중요한 몇몇 프로퍼티에 대해서 순서대로 이야기 해보겠다.

 

첫 번째로 Connected Body 프로퍼티는 이 부위가 연결된 부모가 되는 부위를 가리킨다. 예를 들자면 사람의 왼쪽 허벅지는 엉덩이 혹은 골반에 연결되어 있듯이 모델의 왼쪽 허벅지에 해당하는 본은 골반에 해당하는 본에 연결되는 방식이다. 이 프로퍼티는 연결되는 부위를 선택하지 않을 수도 있는데 그렇게 할 경우에, 그 부위는 시작될 당시의 월드 좌표에 연결된다. 하지만 그렇게 할 경우 일반적으로는 아래의 이미지처럼 되기 때문에 명확한 구조에 맞춰 연결해주는 것이 좋다(아래의 예시에서는 두 다리의 Connected Body를 설정해주지 않고 월드에 연결시켰다.).

 

 

Connected Body를 월드에 연결시키는 방식의 연출을 사용할만한 방법은 교수형당한 사형수 같은 오브젝트의 최상단 조인트를 밧줄에 적용해서 월드에 걸어주고 그 아래의 몸체에 래그돌을 적용시키는 것이다.

 

그 다음으로 설명할 프로퍼티인 Axis는 해당 조인트가 회전할 축을 정하는 것이다.

 

 

이 프로퍼티는 하나의 벡터로 이루어져 있는데 각 값에 대한 예시를 무릎을 기준으로 보자면 다음과 같다. x축을 기준으로 하면 무릎은 뒤틀리듯이 회전하고, y축을 기준으로 하면 무릎에 좌우로 꺾이는 움직임을 보인다. 그리고 z축을 기준으로 잡으면 정상적인 앞뒤 움직임을 보이게 된다. 기준으로 잡고자 하는 축을 1으로 두고 나머지 축은 0을 입력하면 된다.

 

Swing Axis는 조인트가 회전하게될 2번째 축을 의미한다. 위의 Axis 프로퍼티와 관련해서 관절이 회전할 추가적인 축을 정의할 수 있게 도와준다.

 

 

다음 프로퍼티는 Twist Limit인데 이 값은 Axis 프로퍼티에서 정한 회전 축의 움직임 제한을 정하는 것이다. Low는 움직이는 각의 하한값을 정하는 것이고 High는 상한값을 정해주는 것이다. 무릎을 예시로 들자면 기본 값은 하한은 -80, 상한은 0으로 정해져 있는데 이것은 다음 이미지와 같은 움직임을 보인다.

 

 

캐릭터의 무릎이 정상적으로 꺾이면서 쓰러지는 것을 볼 수 있다.

 

 

다음은 상한과 하한을 모두 0으로 잡아보면 다리가 전혀 굽혀지지 않고 뻣뻣한 나무토막처럼 주춤거리다가 쓰러지는 모습을 보인다.

 

 

Twist Limit에 대한 마지막 설명으로 상한값만 90으로 잡으면 이번에는 다리가 비정상적인 각도로 꺾이면서 쓰러지는 캐릭터를 볼 수 있다.

 

 

다음은 Swing Limit 프로퍼티인데 1과 2가 따로 있다. 이 경우에 Swing 1은 Swing Axis에서 지정한 축을 의미하고 Swing 2는 그 나머지 축을 의미한다.

 

 

위의 gif 이미지를 보면 Swing 1의 limit를 90으로 지정했을 때와 Swing 2의 limit를 90으로 지정했을 때의 차이를 확인할 수 있다.

 

 

마지막으로 설명할 프로퍼티는 Break Force와 Break Torque이다. 이 프로퍼티들은 조인트의 연결이 파괴되기 위해 가해져야할 힘을 의미한다. 기본 값은 Infinity인데 이것은 얼마나 강한 힘이 가해지더라도 조인트의 연결이 파괴되지 않는 설정이다. 이 값을 설정해주면 설정한 값 이상의 힘이 가해지면 조인트의 연결이 끊어지게 된다. Force의 경우는 일반적인 힘이 가해지면 끊어지게 되고 Torque의 경우는 회전 힘이 가해지면 끊어지게 된다.

 

 

하지만 일반적인 캐릭터 모델의 경우에는 예시 이미지처럼 폴리곤이 엿가락처럼 늘어나는 부작용이 나타나기 때문에 일반적인 캐릭터에서는 Infinity 옵션을 사용하는 것을 권장한다. 이 프로퍼티를 사용하기 좋은 예시는 부위가 연결되지 않고 완벽하게 나눠진 골렘같은 캐릭터에 대해서 래그돌을 사용하고자 하는 것이다.

 

전체 프로퍼티에 대한 설명은 유니티 도큐먼트에서 확인할 수 있다.

 

https://docs.unity3d.com/kr/current/Manual/class-CharacterJoint.html

 

위에서 설명한 조인트 프로퍼티를 조절하는 것으로 래그돌의 움직임을 더욱 자연스럽게 변경할 수 있다.

 

 

예를 들자면 위의 이미지에서는 캐릭터의 무릎 움직임이 제한 값이 너무 작아서 주저앉는 모습이 부자연스러운 것을 깨달을 수 있다.

 

 

 

 

위에서도 보았듯이 무릎의 low twist limit가 -80인 것을 볼 수 있는데 이 값을 -150으로 수정해보자.

 

 

그러면 무릎의 굽혀짐이 좀더 자연스러운 것을 확인할 수 있을 것이다.

 

 

[유니티 어필리에이트 프로그램]

아래의 링크를 통해 에셋을 구매하시거나 유니티를 구독하시면 수익의 일부가 베르에게 수수료로 지급되어 채널의 운영에 도움이 됩니다.

 

에셋스토어

여러분의 작업에 필요한 베스트 에셋을 찾아보세요. 유니티 에셋스토어가 2D, 3D 모델, SDK, 템플릿, 툴 등 여러분의 콘텐츠 제작에 날개를 달아줄 다양한 에셋을 제공합니다.

assetstore.unity.com

 

Easy 2D, 3D, VR, & AR software for cross-platform development of games and mobile apps. - Unity Store

Have a 2D, 3D, VR, or AR project that needs cross-platform functionality? We can help. Take a look at the easy-to-use Unity Plus real-time dev platform!

store.unity.com

 

Create 2D & 3D Experiences With Unity's Game Engine | Unity Pro - Unity Store

Unity Pro software is a real-time 3D platform for teams who want to design cross-platform, 2D, 3D, VR, AR & mobile experiences with a full suite of advanced tools.

store.unity.com

[투네이션]

 

-

 

toon.at

[Patreon]

 

WER's GAME DEVELOP CHANNEL님이 Game making class videos 창작 중 | Patreon

WER's GAME DEVELOP CHANNEL의 후원자가 되어보세요. 아티스트와 크리에이터를 위한 세계 최대의 멤버십 플랫폼에서 멤버십 전용 콘텐츠와 체험을 즐길 수 있습니다.

www.patreon.com

[디스코드 채널]

 

Join the 베르의 게임 개발 채널 Discord Server!

Check out the 베르의 게임 개발 채널 community on Discord - hang out with 399 other members and enjoy free voice and text chat.

discord.com

 

반응형

Ragdoll 사용하기

 

어떤 게임을 보면 죽은 캐릭터가 특정한 사망 애니메이션 없이 흐느적거리면서 쓰러지거나 날아가는 모습을 볼 수 있다. 고정된 사망 애니메이션이 아니라 물리적인 처리로 다양한 사망 모션을 연출하기 위한 기법으로 이것을 rag doll(랙돌, 래그돌)이라고 부른다. 래그돌의 단어적인 의미는 헝겊 인형, 봉제 완구라는 뜻인데, 캐릭터가 힘을 잃고 날아가거나 흐느적거리는 모습이 마치 헝겊 인형 같다고 해서 붙여진 이름이다.

 

이 기능을 사용하면 앞서 말했듯이 캐릭터가 사망시 특정한 애니메이션만 나오는 것이 아니라 다양한 각도나 힘으로 넘어지는 것을 연출할 수 있게 된다.

 

 

 

구현하기

 

이 래그돌 기능을 사용하기 위해서는 우선 사람의 본(bone, 뼈대) 구조를 가진 모델이 필요하다.

 

 

이 예제에서는 애셋 스토어에서 손쉽게 구할 수 있는 유니티 짱을 사용했다. 캐릭터의 기본 자세는 T자 자세를 잡고 있는 것을 사용할 것을 권장한다. 다른 포즈를 취하고 있는 모델의 경우 래그돌을 적용하면 래그돌이 쉽게 무너지는 경향이 있다.

 

 

유니티 짱 모델을 불러왔다면 Hierarchy 뷰에서 우클릭을 한 후에 3D Object>Ragdoll... 항목을 선택한다.

 

 

그러면 Create Ragdoll 창이 뜨는데 창의 각 항목에 대응되는 유니티 짱의 본을 선택해서 넣어주어야 한다. 그리고 Total Mass 값은 래그돌의 무게를 정하는 값이다. 이 값을 정해주면 사람의 평균적인 부위별 무게 비율에 맞춰 각 본들의 무게가 정해진다. 유니티에서 말하는 Mass 값의 기본 단위는 1값이 1kg이라고 하기 때문에 Total Mass 값은 임시로 45kg으로 정해주도록 하자.

 

Strength 값은 래그돌이 모양을 유지하고 붕괴되지 않도록 도와주는 힘에 대한 값이다.

 

 

래그돌이 적용된 게임에서 종종 사망한 캐릭터의 몸이 엿가락처럼 늘어나서 마구 흔들리는 문제는 이 Strength 값이 낮아서 발생하는 문제이다.

 

 

마지막으로 Create 버튼을 클릭하면 모델링의 신체 각 부위에 콜라이더들이 씌워진 것을 볼 수 있다. 이러면 캐릭터에 래그돌이 성공적으로 적용된 것이다.

 

 

플레이 버튼을 눌러보면 유니티 짱이 힘없이 쓰러지는 장면을 볼 수 있다. 머리카락 부위가 뻣뻣한 것이 보이긴 여기에 추가적인 본이 있다면 머리카락 쪽에도 래그돌 기능을 넣어줄 수 있다.

 

 

 

물리적인 힘 가하기

 

게임에서 캐릭터들이 죽은 뒤에 진행 방향이나 공격 받은 방향의 반대로 날아가는 것을 자주 볼 수 있는데, 이 기능은 유니티 상에서 구현하기 어렵지 않다. 래그돌 기능이 적용된 각 신체 부위의 경우, 물리적인 힘을 받을 수 있는 리지드 바디(Rigidbody)를 가지고 있다. 코드 상에서 원하는 신체 부위의 리지드 바디에 AddForce를 가해주면 캐릭터가 날아가는 것을 볼 수 있다.

 

using UnityEngine;

public class RagDollPhysics : MonoBehaviour
{
    [SerializeField]
    Rigidbody spineRigidBody;
   
    // Update is called once per frame
    void Update ()
    {
        if(Input.GetKeyDown(KeyCode.Space))
        {
            spineRigidBody.AddForce(new Vector3(0f, 10000f, 10000f));
        }
    }
}

 

위의 코드는 Space 키를 누르면 캐릭터의 리지드 바디에 특정한 방향으로 힘을 가하는 코드이다.

 

 

작성한 스크립트를 유니티 짱 모델에 넣어주고 래그돌이 적용된 본들 중에 원하는 본을 스크립트에 넣어준다. 예제에서는 신체의 상단 중심이 되는 가슴쪽 척추의 리지드 바디를 선택했다.

 

 

모든 작업이 끝났다면 플레이 버튼을 누르고 Space 키를 눌러보자. 그러면 유니티 짱이 쓰러지려다 앞으로 날아가는 것을 볼 수 있을 것이다.

 


 

래그돌을 이용하는 방법을 추가로 이야기하자면, 이런 래그돌 오브젝트를 만들어둔 다음, 애니메이션이 포함된 일반 캐릭터가 정상적으로 움직이다가 캐릭터가 죽으면 일반 캐릭터 오브젝트의 액티브를 끄고 래그돌 오브젝트의 액티브를 켜서 교체하는 식으로 자주 사용된다.

 

래그돌의 성능은 캐릭터의 사지 전체와 몸통의 관절에 대한 물리를 모두 계산해야하기 때문에 조금은 무거운 편에 속한다. 그렇기 때문에 일반적으로는 캐릭터가 죽고난 이후 몇 초간 물리를 켜두다가 그 이후에 더 이상 움직임이 거의 없는 상태가 되면 물리 계산을 끄거나, 아예 오브젝트를 지우는 방식으로 최적화를 해주어야 한다.

 

 

[유니티 어필리에이트 프로그램]

아래의 링크를 통해 에셋을 구매하시거나 유니티를 구독하시면 수익의 일부가 베르에게 수수료로 지급되어 채널의 운영에 도움이 됩니다.

 

에셋스토어

여러분의 작업에 필요한 베스트 에셋을 찾아보세요. 유니티 에셋스토어가 2D, 3D 모델, SDK, 템플릿, 툴 등 여러분의 콘텐츠 제작에 날개를 달아줄 다양한 에셋을 제공합니다.

assetstore.unity.com

 

Easy 2D, 3D, VR, & AR software for cross-platform development of games and mobile apps. - Unity Store

Have a 2D, 3D, VR, or AR project that needs cross-platform functionality? We can help. Take a look at the easy-to-use Unity Plus real-time dev platform!

store.unity.com

 

Create 2D & 3D Experiences With Unity's Game Engine | Unity Pro - Unity Store

Unity Pro software is a real-time 3D platform for teams who want to design cross-platform, 2D, 3D, VR, AR & mobile experiences with a full suite of advanced tools.

store.unity.com

[투네이션]

 

-

 

toon.at

[Patreon]

 

WER's GAME DEVELOP CHANNEL님이 Game making class videos 창작 중 | Patreon

WER's GAME DEVELOP CHANNEL의 후원자가 되어보세요. 아티스트와 크리에이터를 위한 세계 최대의 멤버십 플랫폼에서 멤버십 전용 콘텐츠와 체험을 즐길 수 있습니다.

www.patreon.com

[디스코드 채널]

 

Join the 베르의 게임 개발 채널 Discord Server!

Check out the 베르의 게임 개발 채널 community on Discord - hang out with 399 other members and enjoy free voice and text chat.

discord.com

 

반응형

+ Recent posts