전체 글

공부/[TIL] Game Bootcamp

[TIL] #7. 플레이어 피격 : 멋쟁이사자처럼부트캠프 Unity 게임 개발 3기

개요플레이어가 피격 당했을 때 이펙트 및 애니메이션을 구현했다. 내용일단 고민이 있었다 : PlayerState로 구현할 것이냐, PlayerAction으로 구현할 것이냐, 그냥 메서드로 구현할 것이냐일단 기준을 확고히 했다. PlayerAction은 플레이어 입력 행동(공격, 대시)이므로 맞지 않았다. 그리고 PlayerState로 구현하는 경우엔 상태가 전환되기 때문에 캐릭터에 대한 조작이 멈출텐데, 지금 개발하는 게임의 경우 하트 4개 맞으면 사망이라 해당 부분을 고려해서 피격 되어도 공격이 가능했으면 했다.따라서 메서드로 구현했다.#region 피격 관련 // TODO: Editor에서 확인하기 위한 임시용 public void TakeDamage() { if (Cur..

공부/[TIL] Game Bootcamp

[TIL] #6. Animation event 작동 안함(뭔가 만들었다면 꼭 초기화를 하자) : 멋쟁이사자처럼부트캠프 Unity 게임 개발 3기

개요한줄 요약 : animation clip에 걸어둔 event가 실행이 안됐다.팀원분이 현재 공격 시 공격 콤보 판정이 끝나는 시점에서 호출되어야 할 메서드가 실행되지 않는 문제를 발견하셔서 공유해주셨다. 또한 공격 도중 대시를 하면 weaponController 클래스의 isAttacking 값이 true로 고정되어 공격 종료 처리가 안 되는 문제가 함께 발생했다. 내용중간에 새로운 AI 모델 썼다가 아주 길고긴...삽질의 여정이 있었다는 점을 밝혀두겠다.AI가 더 나은 구조라며 제시해줘서 혹한 나는 잘 작동하던 애니메이션을 Trigger로 바꾸고...Animator에서 이런저런 생쇼를 하며 구조를 다 바꿨다. 가 결국 다시 돌아왔다.중간에 animatorController가 버그 난 건 보너스^^ ..

공부/[TIL] Game Bootcamp

[TIL] #5. 플레이어 대시 Action : 멋쟁이사자처럼부트캠프 Unity 게임 개발 3기

개요플레이어에게 대시 버튼을 누르면 대시를 할 수 있도록 Action을 추가했다. 내용PlayerActionDash.cs 추가CharacterBase에 있는 moveSpeed 이용PlayerController.cs 수정공격 중에도 회피 취소 가능하도록 구현추후 UI 바인딩을 위한 DashButtonPressed() 메서드 추가이번에 추가한 PlayerActionDash 코드는 아래와 같다.using UnityEngine;public class PlayerActionDash : IPlayerAction{ private PlayerController player; private float duration = 0.25f; // 대시 유지 시간 private float timer; // 대시 경..

공부/[TIL] Game Bootcamp

[TIL] #4. 플레이어 공격 Action : 멋쟁이사자처럼부트캠프 Unity 게임 개발 3기

개요플레이어 공격 모션을 구현하는데, 이동하면서 공격이 가능해야했다. 기존에는 Attack도 State로 구현했으나, 구현하다보니 결국 Action으로 분리하기로 했다. 내용먼저 현 코드상으로 공격 상태일 때 이동할 수 있도록 처리했다. 하지만 그렇게 하니 다리 애니메이션이 움직이지 않아, Animator에서 레이어를 오버라이드하여 공격모션은 상체만 적용하도록 구현했다.하지만 그 상태로도 State 구조 상 공격 중에는 상태가 공격 상태로 고정되어 다리 애니메이션이 부자연스러웠다. AI와 해당 내용을 공유하며 상의해본 결과, 현 구조가 맞지 않는다고 판단했다. 나로서도 서 있을 때도, 움직일 때도 공격이 가능해야하기 때문에 공격은 행동으로 빼는 게 더 맞다고 판단하여 해당 구조로 변경했다.IPlayerA..

공부/[TIL] Game Bootcamp

[TIL] #3. 플레이어 State 분리 : 멋쟁이사자처럼부트캠프 Unity 게임 개발 3기

개요어제 못한 State 분리를 이어서 작업했다. 그리고 이동(조작) 작업은 Push한 후, 다음주 시작 예정이었던 공격 작업에 들어갔다.내용일단 사용할 State들만 먼저 아래처럼 생성하여 구현했다. Idle과 Move에서는 문제 없었는데 이제 콤보 공격을 구현해야하는 Attack에서 현재 살짝 막혔다. StateMachine으로 comboAttack 값을 1씩 올리는 느낌으로 구현하려고 했는데, 콤보 타이밍이 의도대로 동작하지 않는 느낌이 든다. 디버깅을 좀 더 해봐야겠지만 아무래도 애니메이션 transition 타이밍 등 다양한 요소가 고려되기 때문인 것 같다. 더 깔끔한 구현을 위해 애니메이션 이벤트 추가하는 방향도 고려해봐야 할 것 같다. 느낀 점역시 무언가 만들 때 가장 많이 배우는 것 같다..

공부/[TIL] Game Bootcamp

[TIL] #2. 에셋 캐릭터 애니메이션 편집 : 멋쟁이사자처럼부트캠프 Unity 게임 개발 3기

개요에셋으로 용사 컨셉 캐릭터를 다운 받았는데, 내겐 방패가 필요 없었다. 작업 내용받은 캐릭터의 방패를 지우고 나니 허공에 남은 손이 덩그라니 투명 방패를 잡고 있어, 해당 부분을 수정했다. 우선 캐릭터에게 이미 모션이 다 존재하는 상태였는데, 어차피 몇몇 모션만 필요하고, 또 수정해야하기 때문에 Animator부터 새로 만들었다.Animation은 기존에 받은 건 모두 read only라서 복제하여 수정했다.다만 이때 아무리 기존에 배운 Record를 키고 수정하려해도 수정이 안됐다(움직이고 나서 다른 관절 누르면 다시 원상복구됨)동시에 아래와 같은 경고가 떴다.Keyframing rotation on humanoid rig is not supported!흠 humanoid는 뭔가 다른가 보군. 하고..

공부/[TIL] Game Bootcamp

[TIL] #1. 모바일 게임 플레이어 이동 구현 : 멋쟁이사자처럼부트캠프 Unity 게임 개발 3기

개요이번에 동일 팀으로 2차 팀플을 하게 되었다.저번 팀플 때 TIL을 성실히 적지 않은 게 아쉬워져서 오늘 개발 들어가는 김에 적어보고자 한다. 나는 플레이어에 자원했다. UI는 저번에 충분히 해봤고, 작업 하면서 많이 배울 수 있는 파트를 하고 싶었다. 그리고 귀엽기도 하다오늘 점심까지 기획하고 오후에 개발에 들어갔다. 작업 내용오늘 개발은 플레이어 이동까지 했다.모바일 게임이라 virtual joystick을 사용해야 했는데, 기간이 짧은만큼 무료 에셋을 사용해 빠르게 구현하기로 했다. UI가 일이 많기도 했다.CharacterController와 무료 에셋을 사용해 구현했다.해당 에셋을 사용한 이유는 1. 리뷰가 압도적으로 많았으며 2. 최근 리뷰가 4일 전이었고 3. 국내 유명 유투버가 만든 튜..

공부/[Project] Game Bootcamp

1차 팀 프로젝트를 마치며 : 멋쟁이사자처럼부트캠프 Unity 게임 개발 3기

게임 부트캠프에서 첫 팀플이었던 프로젝트를 저번주 월요일(3/31)에 2등으로 마무리했다.1등은 3D로 구현한 팀이 가져가서 사실상 2D는 1등이다...라는 자부심을 가져본다. 아니 나는 무조건 2D로 해야하는 줄 알았지그동안 배운 오목게임을 이용한 멀티 오목 게임을 만들었는데, 나는 팀장으로 참여해 일정 관리, 업무 배분, 작업으로는 주로 UI, 멀티플레이 로직을 담당했다.미래의 나에게 전해주기 위하여, 더 늦기 전에 남은 기억을 기록으로 남긴다. 프로젝트 개요게임명 : 대굴오목장르 : 오목, 멀티플레이사용 툴 및 엔진 :클라이언트는 Unity, 서버는 socket 서버를 포함하는 node.js로 구현Github, Jira(일정관리), Notion(문서관리), Figma(화면 디자인) 아래는 마지막에..

Ail_
log