2024년 7월 30일 화요일 개발일지 / 여덟 번째 캐릭터와 아홉 번째 캐릭터

2024. 7. 30. 20:56나의 개발자 기록/본 캠프 개발 일지

2024년 7월 30일 화요일


What I did today : 여덟 번째 캐릭터와 아홉 번째 캐릭터

 

 

오늘도 캐릭터를 2개 만들어야 하기 때문에 아침부터 분주하게 스테이블 디퓨전을 켜고 픽셀 캐릭터를 뽑아 봤습니다. 이번엔 제가 원거리 물리 딜러를 만들어야 하는 것도 있고, 프롬프트 테스트 겸 여러 가지 새로운 요소들을 집어넣었습니다. 고양이 귀오드아이 같이 캐릭터의 귀여운 요소를 더욱 키워주는 느낌으로 픽셀 캐릭터를 뽑았고, 일러스트도 다양한 프롬프트를 시험해 보면서 가장 괜찮은 일러로 선정했습니다.

 

 

그다음 작업으로는 Aseprite로 Idle죽음 애니메이션을 만들었고, 공격 애니메이션의 경우 같은 직군인 Yuri의 공격 모션을 가져와서 사용했습니다.

 

 

스프라이트 시트를 다 만들고 나서 유니티에 옮겨서 스프라이트 시트 조정을 해주고, 구글 시트에 캐릭터 정보를 입력 후, 캐릭터 SO 데이터를 만들었습니다. 그리고 기존의 캐릭터를 복사해서 새로 만든 캐릭터들의 정보를 넣어주고, 애니메이션을 만들어 적용했습니다. 그리고 테스트를 해본 결과 잘 나오는 것을 확인한 후, 다음 캐릭터 작업에 들어갔습니다.

 

 

오늘의 두 번째 캐릭터는 다른 팀원분이 스타레일의 스파클을 모티브로 한 캐릭터를 만들고 싶다고 하셔서 스테이블 디퓨전으로 픽셀 캐릭터를 다양하게 뽑아봤습니다. 그 중에서 팀원분이 마음에 드신 캐릭터 하나를 골랐는데, 왼쪽 캐릭터의 머리카락 색을 중앙에 있는 색으로 바꿔줄 수 없냐고 물어보셨습니다. 그래서 저는 AsepriteHue/Sat 기능으로 머리카락 부분만 좀 어둡게 바꿔서 만들었습니다.

 

 

다음 작업으로는 스테이블 디퓨전으로 일러스트를 여러 장 뽑고 그 중에서 마음에 드시는 한 장을 골라서 아이콘도 빠르게 만들었습니다.

 

그다음에는 기존의 픽셀 캐릭터의 정면 샷은 LeftIdle로 사용하기에는 무리가 있어서 Pixelab AIRotate 기능을 활용하여 캐릭터의 시선 방향을 Southwest로 바꾸었고, 어색한 부분은 직접 수정하였습니다. 그렇게 Idle과 죽는 애니메이션을 만들었고,

 

 

공격 애니메이션의 경우, 이 캐릭터도 원거리 물리 딜러인데, 똑같은 모션을 사용하기에는 좀 그래서 구글에 있는 픽셀 카구팔을 따와서 새로운 공격 모션을 만들었습니다.

 

 

저녁을 먹고 나서는 만들어둔 스프라이트 시트를 유니티에 적용 및 조정한 후, 아까 했던 작업 그대로 똑같이 만들었습니다. 바로 테스트를 해본 결과 굉장히 만족스러운 결과물이 나온 것 같네요. 작업이 다 끝나고, 팀원분들에게 작업물을 공유해 드렸고, 남은 시간에는 개발일지(TIL)를 쓰면서 오늘 하루를 마무리했습니다.


면접 질문 대비 : 메모리에서 스택과 힙의 차이점에 대해 설명해 주세요.

 

void Example()
{
    int x = 10; // 스택에 저장
    Person p = new Person(); // 힙에 저장, 스택에는 참조 주소가 저장
}

 

 

스택(Stack) : 메모리 할당이 정적이며, 메서드 호출 시 생성되는 지역 변수매개변수가 저장됩니다. 스택은 LIFO(Last In, First Out) 구조로 작동하며, 메모리 할당과 해제가 빠릅니다.

 

힙(Heap) : 메모리 할당이 동적이며, 객체배열이 저장됩니다. 힙은 참조 형식 데이터가 저장되는 곳이며, 가비지 컬렉터에 의해 메모리가 관리됩니다.