티스토리 뷰

일반적으로 2D 게임에서는 포토샵 등으로 따로 만든 스프라이트들이 적용되기 마련이다.

그리고 오브젝트가 이동 시 이동하는 방향이 어디냐에 따라 적용되야 하는 애니메이션도 달라야 하며,

서있는지, 걷는 중인지, 달리는 중인지를 분류하여 애니메이션을 또 나눠 적용해야 한다.

  1. sprites들을 animation 파일로 만든다. 연속된 이미지들을 하이라키에 끌어다 놓으면 간단하게 저장이 된다. or windows - animation(crtl + 6)에서 이미지 하나씩을 끌어다 놓고 세부조정을 할 수 있다. Animation 창에서 anim 파일 추가는 인터페이스 상단의 이름 + 상하화살표 모양을 눌러 새로 추가 가능.

  2. 애니메이터에서 컨트롤러 조정을 한다. (*Blend Tree를 통해 상위그룹 묶을 수 있음)

    1. Parameter 추가 - 스크립트에서 파라미터 값을 건드릴때마다 조건을 충족하는 tree의 node가 실행되게 할 것이다. 상하좌우 이동의 경우 DirX, DirY Walking,Running,Standing의 경우 boolean값 walking,running을 설정한다.

    2. 상하좌우 이동의 경우

    1. 1. 2D설정으로 parameter를 2개 받게 한다. 2. parameter 설정 3. motion field 추가 4. 애니메이션 추가 5. parameter의 조건 추가 (*8방향이라면 4개의 모션필드를 더 만들고 PosX, PosY에 적합한 값, 모션에 적합한 애니메이션을 넣어주자.)

  1. 스크립트 수정 : Animator 변수 추가 후 Start에서 GetComponent<Animator>();는 기본

    1. 상하좌우 : animator.SetFloat(“parameterName”,floatValue); 단, 코루틴의 처음에 DirX,DirY 값을 초기화해줘야 한다.

    2. Walking or Running or Standing : animator.SetBool(“parameterName”,booleanValue);

  
Animator animator;
...
    void Start () {
        animator = GetComponent();
	}
...
            animator.SetFloat("DirX", 0);
            animator.SetFloat("DirY", 0);
//코루틴의 시작 때 초기화를 해줘야 한다. 초기화 안해주면 이전 이동때 받은 값이 그대로 남아있어 엉뚱한 애니메이션이 작동함
...
                animator.SetFloat("DirX", vector.x);
                animator.SetFloat("DirY", vector.y);
//좌우 or 상하 이동 시 상황에 따라 따로 X, Y를 적용해주자. 이 값이 곧 trigger가 되어 애니메이션이 바뀐다.(물론 parmeter의 trigger를 말하는 게 아니다.)
...
        animator.SetBool("Walking", false);
//마지막으로 이동 코루틴 과정이 끝나면 제자리에 오브젝트가 멈춰서는 애니메이션이 실행되어야 하므로 bool값을 false로 변경해주자.



공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함