유니티에서 비트맵 폰트 활용법, BMFont 와 NGUI 그리고 한글
어제는 "Unlimited+ for Mecanim by Mixamo" 라는 유니티 패키지를 구입했습니다. Mixamo 에서 운영하는 애니메이션 클립 상점을 유니티 에디터에 확장해주는 플러그인으로 많은 애니메이션 클립을 무료로 다운로드 할 수 있는 패키지입니다. 유니티 에셋 스토어에서 캐릭터 모델을 샀는데 필요한 애니메이션 동작이 빠져있는 경우가 다반사이며 이럴때 이런 애니메이션 상점에서 원하는 동작을 찾아서 내 캐릭터에 입혀볼 수 있습니다. 앞으로 이 툴은 3D 게임 제작에 유용하게 활용될 것으로 기대하고 있고 당장 지금 진행하는 3D 액션 게임 프로토타이핑 에서부터 적용하게 될 것입니다. 아래 동영상에 등장하는 캐릭터 모델은 15달러에 구입한 "Adventurer Character" 이며 상점 패키지는 750달러에 구입한 "Unlimited+ for Mecanim by Mixamo" 라는 것입니다.
[메카님 연습 패키지] MecanimFighterBegin.unitypackage
[메카님 데모 페이지] http://www.hompydesign.com/tmp/mecanim_test
[메카님 파이터 PC 제어 코드 소스]
using System.Collections;
public class IdleRunAttack : MonoBehaviour {
protected Animator animator;
public float DirectionDampTime = .25f;
public bool ApplyGravity = true;
void Start () {
animator = GetComponent<Animator>();
}
void Update () {
if (animator == null) return;
AnimatorStateInfo stateInfo = animator.GetCurrentAnimatorStateInfo(0);
if (stateInfo.IsName("Base Layer.Run")) {
if (Input.GetButton("Jump")) animator.SetBool("Jump", true);
} else {
animator.SetBool("Jump", false);
if (stateInfo.IsName("Base Layer.Idle")) {
if (Input.GetButton("Fire1")) animator.SetBool("Attack", true);
if (Input.GetButton("Fire2")) animator.SetBool("Attack2", true);
} else {
animator.SetBool("Attack", false);
animator.SetBool("Attack2", false);
}
}
float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");
animator.SetFloat("Speed", h*h+v*v);
animator.SetFloat("Direction", h, DirectionDampTime, Time.deltaTime);
}
}
댓글을 달아 주세요
요즘 진행하고 있는 3D 액션 게임 제작에 유니티 메카님(Mecanim) 애니메이션 시스템을 효과적으로 활용해보기 위해 이런 저런 실험을 해보고 있습니다. 기존에 별도의 FSM(유한상태머신)을 제작해서 사용했던 것을 메카님에서 제공하는 FSM 으로 옮겨 타는 것부터 메카님에 맞춰서 캐릭터 모델과 애니메이션을 효율적으로 제작하는 방법과 개별 애니메이션 위에 타이밍에 맞춰 이벤트를 세팅해주는 일 등을 테스트 해보고 있습니다. 아래 동영상은 이미 준비된 애니메이션 클립 세트를 서로 다른 캐릭터 모델 각각에 적용해서 유니티 게임씬 위에 올려 테스트를 하는 것을 담은 영상입니다. 등장하는 캐릭터들은 유니티 애셋스토어에서 하나 하나 개별적으로 구입한 캐릭터들입니다.
[테스트 게임 페이지]
http://www.hompydesign.com/tmp/mecanim_test
[메카님 테스트 영상]















댓글을 달아 주세요