Ad Block 한번만 꺼주시면 안될까요..?
게임 개발/유니티 에셋

유니티) 1인 개발자를 위한 2d 픽셀 캐릭터 에셋 - SPUM 사용법, 평가.

UniCoti(유니코티) 2023. 9. 3.

이번 글에서는 무려 한국에서 만든 2d 픽셀 캐릭터 메이커 에셋 ,

SPUM에 대한 사용법과 평가에 대해 글을 남겨보겠다.

 

https://assetstore.unity.com/packages/2d/characters/2d-pixel-unit-maker-spum-188715?aid=1011lvFiw (SPUM)

 

2D Pixel Unit Maker - SPUM | 2D 캐릭터 | Unity Asset Store

Elevate your workflow with the 2D Pixel Unit Maker - SPUM asset from soonsoon. Find this & more 캐릭터 on the Unity Asset Store.

assetstore.unity.com


1. SPUM 에셋 소개

먼저 SPUM은, 우리가 게임에서 캐릭터 옷 입히기 게임을 하듯이 캐릭터를 생성하여

Prefab 화 시킨 다음, 우리가 원하는 게임으로 활용할 수 있게 제작된 유료에셋이다.

 

https://youtu.be/tZOcaihiotA (SPUM 공식 소개 영상)

 

이 영상을 보면 이해가 쉽다. 이렇게 캐릭터의 옷, 머리, 무기 등을 조절해서

프로젝트마다 자신만의 캐릭터를 창조해서 쓸 수 있도록 되어있기 때문에,

남과 겹칠 일이 비교적 적을 뿐 아니라 자신이 원하는 캐릭터를 만들 수 있다.

 

또한 이 에셋은 주기적으로 업데이트한다는 개발자의 약속도 되어있고,

 

최근 업데이트로 말도 생겨있다. 말을 타는 유닛도 만들 수 있게 된 것이다.

이렇게 업데이트만 된다면 무궁무진한 활용이 되기에 미래 또한 기대되는 부분이다.

 

또한 이미 말에 탄 유닛과 말에 타지 않은 상태의 유닛의 애니메이션이 모두

구현이 되어있어서 로직만 작성하면 되기 때문에 이것도 매우 편한 요소이다.


2. 설치법

여기까지 에셋 소개였다면, 설치 방법을 알아보자.

먼저, Window -> Package Manager를 클릭해서 Package Manager 탭을 열어주자.

 

그 후, Packages:My Assets로 바꿔주자.

 

그럼 다운로드한 Asset 리스트가 나오게 되는데,

2D Pixel Unit Maker - SPUM이라는 이름의 에셋을 선택해 주자.

그럼 위 사진처럼은 아니지만 Download 버튼이 나오고, 그걸 완료하면

Import 버튼과 Re-Download 버튼으로 바뀌며 새로 생길 것이다.

 

그러면 프로젝트에 복사하기 위해서 Import 버튼을 눌러주자.

그럼 이런 창이 뜨는데, 여기서도 딱히 특별한 설정 없이 Import 눌러주면 된다.

 

 

 

여기까지 했으면 프로젝트에 불러오는 건 성공이고,

이젠 세팅을 해야 한다. SPUM -> Scene -> SPUM_Scene을 열어주자.

SPUM_Scene

열어주게 되면 이런 모습일 것이다. 소개영상과 굉장히 유사하게 씬이 구성되어 있다.

하지만 캐릭터의 모습을 바꾸려 해도 버튼이 동작하지 않을 것이다. 

이걸 사용하려면 데이터를 다운로드하여야 하기 때문에 그렇다.

 

하이어라키 뷰에 보면 SPUM Manager라는 오브젝트가 있다.

이걸 클릭하면 아래와 같이 다운로드할 수 있는 버튼이 나온다.

 

오브젝트 SPUM Manager

여기서 install Resources Data 버튼을 눌러주면 자동으로 다운로드가 완료된다.


3. 사용법

다운을 해주면 SPUM_Manager 컴포넌트가 읽어질 수 있는 형태로 변하고,

씬의 Play 버튼을 눌러서 직접적으로 사용할 수 있게 변한다.

말 버튼을 누르면 말을 탈 수도 있고, 인간 버튼을 통해 피부색도 조절 가능하다.

옷 선택하기 귀찮다면 그냥 랜덤버튼 돌리는 것도 나쁘지 않다고 생각한다.

 

버튼을 누르다가 조금 마음에 드는 캐릭터가 생성되면 조금씩

수정해서 원하는 캐릭터를 만드는 것도 나름대로 좋은 방법이다.

예시를 보여주기 위해서 이러한 캐릭터를 만들었다.

이걸 저장하려면, 옆에 보이는 Save Unit 버튼을 눌러주자.

그럼 이렇게 Resources 폴더가 새로 생기면서 Resources -> SPUM -> SPUM_Units 안에 생성된다.

이제 이걸 자신이 하고 있는 프로젝트에 불러서 사용하면 되는 것이다.


4. 활용 - 움직임

이러한 캐릭터가 있는 프로젝트라면 거의 대부분 움직임을 구현하는 경우가 있을 것이다.

움직임과 애니메이션을 동시에 구현해서 나름의 조작을 완성시켜 보자.

캐릭터 위치, 크기 조절.

계층을 보면 HorseRoot가 있는데, Animator 컴포넌트가 여기 있기 때문에

스크립트를 이 오브젝트에 넣어주는 게 편할 것 같다.

(Mover라는 이름의 스크립트를 만들어서 넣어주었다)

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class mover : MonoBehaviour
{
    public int speed = 1;
    float h,v;
    bool IsRun = false;

    Animator anim;

    // Start is called before the first frame update
    void Start()
    {
        anim = GetComponent<Animator>();
    }

    // Update is called once per frame
    void Update()
    {
        h = Input.GetAxis("Horizontal");
        v = Input.GetAxis("Vertical");

        transform.Translate(new Vector2(h, v) * Time.deltaTime * speed);

        IsRun = Mathf.Abs(h) < 0.05f && Mathf.Abs(v) < 0.05f ? false : true;

        if(h < 0) {
            transform.localScale = new Vector3(1,1,1);
        } else if (h > 0) {
            transform.localScale = new Vector3(-1,1,1);
        } 

        uploadAnimKey();
    }

    void uploadAnimKey() {
        anim.SetBool("IsRun", IsRun);

        //if(Input.GetMouseButtonDown(0)) {
        //    anim.SetTrigger("Normal");
        //}

        //if(Input.GetKeyDown(KeyCode.Space)) {
        //    anim.SetTrigger("Special");
        //}
    }
}

이러한 코드를 써 주었다. h, v Input.GetAxis의 값을 저장하기 위해서 썼다.

애니메이션의 파라미터로 IsRun을 추가해서 애니메이팅에 도움을 주었다.

h가 +인지 -인지 값을 판단해서 캐릭터가 보는 방향도 맞춰주었다.

 

실질적인 동작 코드는 transform.Translate(new Vector2(h, v) * Time.deltaTime * speed);이다.

 

주석 친 부분은 공격 애니메이팅까지 구현했을 때 나오는 코드이다.

uploadAnimKey()라는 함수를 만들어 줌으로써 애니메이팅에만 집중할 수 있고,

코드가 간단해져서 이해하고 구분하기 더 쉬워진다.

아무튼 코드는 이걸 변형하거나 그대로 써주면 되고, 우리는 애니메이션 컨트롤러에 가서 세팅을 해야 한다.

 

여기 보면 Controller라고 쓰여있는 걸 볼 수 있다. 말을 탄 유닛이라면 여기다가

HorseNewController를 연결해 주어야 정상적으로 작동한다.

 

변경한 모습

아무튼 HorseNewController를 열어보자.

 

그럼 이러한 모습으로 열리게 된다.

일단 가만히 있을 때는 idle, 뛸 때는 Run을 입히는 게 목적이기에

서로 연결해 준다. (나머지는 나중에)

 

여기까지 해주고, 파라미터를 새로 하나 만들어주자.

 

이렇게 + 버튼을 눌러서 Bool 값의 파라미터를 하나 만들어주고

이름을 "IsRun"으로 해준다. (코드에 그렇게 나와있어서 변경하면 코드도 바꿔야 함)

이렇게 Run 쪽으로 가는 화살표는 IsRun을 True로 설정하고,

idle로 가는 화살표에는 IsRunFalse로 설정하면 된다.

 

이렇게 하면 말이 뛰어다닐 것이다. 근데 바로바로 애니메이션이 바뀌지 않는 문제가 있다.

이건 자연스러움을 주기 위해서 유니티가 기본적으로 설정한 것인데, 마음에 안 들면

이 두 개의 화살표를 눌러서 Has Exit Time을 사용하지 않고,

Settings -> Translition Duration을 0으로 바꿔주면 된다. (두 화살표 모두 해야 함)

 

여기까지 해주었다면 이렇게 잘 뛰어다니는 캐릭터를 볼 수 있을 것이다.


이렇게 SPUM 에셋을 사용, 활용해 보았다. 1인개발자들은 확실히 캐릭터를 구하기 힘들다.

디자인과 개발은 모두 배우는데 오랜 시간이 걸리며 서로 결이 다르기 때문이다.

 

그런 점에서 SPUM 에셋은 1인 개발자들에게 황금 같은 에셋이라고 평가하고 싶다.

정해진 캐릭터도 아니고 자신만의 캐릭터를 만들 수 있을 뿐 아니라 말과의 조합, 활,

공격 모션도 3개 존재할 뿐 아니라 달리기, idle 등의 애니메이션도 기본제공해 준다.

 

또한 가장 중요한 게 이 기능들이 사용하기 무척 쉽다는 것이다.

Scene을 미리 구성해 놓아서 사용하기 쉽도록 UI를 배치해 둔 것도 칭찬하고 싶다.

결론적으로, 이 에셋을 구매할 의향이 드는 상태라면 사길 추천한다.

에셋 중에서 엄청 비싼 편도 아니고 이 정도면 앞으로의 개발까지 생각하면 살 만하다고 생각한다.

 

https://assetstore.unity.com/packages/2d/characters/2d-pixel-unit-maker-spum-188715?aid=1011lvFiw (SPUM 보러 가기)

 

2D Pixel Unit Maker - SPUM | 2D 캐릭터 | Unity Asset Store

Elevate your workflow with the 2D Pixel Unit Maker - SPUM asset from soonsoon. Find this & more 캐릭터 on the Unity Asset Store.

assetstore.unity.com


이상으로 SPUM 리뷰였다. 도움이 되었길 바라며,

 

끝.

 

+)

이 글은 제가 실제로 사용해 본 제품에 대한 솔직한 이야기입니다. 저는 이 제품을 유니티로부터 지원받아 이 글을 작성하게 되었고 링크를 통해 구매하시는 경우, 저에게는 소정의 커미션이 지급됩니다. 하지만, 이로 인해 저의 평가가 편향되지 않았음을 명확히 말씀드리고 싶습니다. 돈도 물론 중요하지만 진실한 글임을 인정받을 때 돈도 따라온다고 생각하기 때문입니다. 이 글의 목적은 전적으로 여러분들의 고민을 돕는 것이며 "광고"로만 보지 않아 주셨으면 합니다. 감사합니다.

(커미션 진짜 얼마 안 됩니다... ㅠㅠ)

댓글

💲 추천 글