개발일지 목록
잡말
나도 출시 하고싶어...
전시 하고싶어 !!!
애니메이션
지난 번에는 셰이더 작업을 해주었고, 이제 활용할 때 !
여러 미니보스를 만들겠지만 지금 만든 미니보스는 미니슬라임큐브라는 친구야.
전 개발일지에서 나온 슬라임들은 그냥 폴짝폴짝 뛰는 것 외에는 특성이 없었지만
미니보스로 나오는 친구들은 다들 생긴것에 맞는 특성을 하나씩 달아줄거고.
이 친구의 패턴은 바로 점액!
플레이어를 따라오며 점액을 흩뿌려.
요것만 있으면 패턴이라기엔 심심하니 귀여운 돌진패턴을 하나 만들어주었어.
들어가기 전에 귀여운 모습먼저 소개해줄게.
각각 공격, 차징/그로기, 이동 애니메이션이야.
너무 귀여운 슬라임이야 !
미니보스와 엘리트의 차이점을 주기위해
이전 일지의 댓글처럼 스케일을 더 키워줄수도 있을 것 같아.
구현
먼저 오늘 만들 친구의 패턴을 눈으로 보고 가도록 할게 !
플레이어로부터 너무 멀어지면 재배치,
화면 밖에서 장애물로 인해 다시 튕겨나갈 경우
안으로 들어오는 것 실행 안되도록 하기 등도 있어 !
베이스
코드도 난잡하고 설명하기도 어려울 것 같지만 올려볼게.
읽어주는 분들에겐 항상 감사해.
먼저 엘리트와 미니보스는 패턴이 같고 약간의 속성만 다르다보니
같은 프리팹을 사용할거고, 그러다보니 스크립트는 동일해.
따라서 언커먼 적의 스크립트 기본형을 먼저 짜주었어.
IKnockbackable, IDamagable 인터페이스를 상속하는 부분이야.
미니보스이므로 단순히 데미지받으면 깜빡이고, 넉백되면 그대로 밀려날듯 싶은데
공격 패턴 중에는 넉백당하지 않는다던지라는 경우가 있을 수도 있어서
abstract로 구현하도록 해주었고, 기본적으로 할 일은 Default~함수로 구현해주었어.
매번 상속받고 똑같은 넉백당하는걸 구현해줄 필요는 없으니깐.
virtual로 미리 구현해둬도 되겠지만 상속받고 구현을 해줘야되는 것을 잊을 수 있어 불편하더라고.
다음으로는 상태머신을 간단하게 구현해주었어.
상태별로 스크립트를 분할해줄까 싶었는데
어짜피 모든 언커먼은 패턴 1개 + 추가적으론 상속받고 구현해줄수 있고,
이동 / 아이들 / 공격 / 사망 4가지 상태가 있는데 몬스터마다 요거 만들어주면
내가 더 힘들 것 같았어.
그래서 그냥 하나에서 전부 처리하는 걸로 !
세부적인 동작은 상속받고 구현해줄거야.
화면밖에서 생성 후 첫 등장 전까지는 이동만 하고 패턴을 사용 안해줄 거라
Appear이라는 상태가 추가적으로 존재해.
Appear상태에서는 기본적인 이동만 해줄것이고,
Move상태에서도 대부분은 기본적인 이동만 할 테니
위 Default~처럼 디폴트 함수를 만들어주었어.
AppearEnter을 보면 첫 생성 시 Appear상태에 진입해서 실행되는데,
보여질 때까지 기본 움직임과 방향으로 이동해.
그 이후 추적 상태로 변경하고.
몬스터는 추적 상태에서 공격 상태로 넘어갈지 조건을 체크해줄거야.
멈춘 상태와 이동 상태에서 움직임 제어를 따로 해주는 이유는
넉백을 당하면 이동속도가 -가 되어버리는데,
멈춘 상태에서는 넉백당해서 속도가 -가 되더라도
애니메이션에서 제어중인 이동속도 변수와 관계 없이, 그리고 멈춘 상태로 다시 회복시켜주기 위해서야.
데이터
미니보스와 엘리트는 스텟 차이만 있다 했으므로 패턴에 사용되는 값 데이터가 달라야해.
하나의 스크립트를 사용하니 스크립트에 하드코딩할 수는 없으므로
(적이 엘리트, 미니보스 2개면 괜찮겠지만 요 스크립트 그대로 파생형을 만들수도 있으니깐)
데이터에 패턴에 사용되는 값 데이터를 넣기로 했어.
알아보기 편하게 enum을 사용했는데 이래도 어려운것 같아.
고수들은 어떻게 하는걸까...?
데이터를 받은 걸 이용해서 요런식으로 사용해.
지금은 데이터를 넣어줄 적 생성기가 없다보니 awake에 임시로 배치해두었어.
독장판
독 장판을 영어로 뭐라고 해야될지 모르겠어.
이럴 땐 그냥 알아보기 편하게 한글로 작명해주는게 나을것 같아 !
생성은 독 생성 간격이나 일정 거리를 이동했을 때 해줘.
이동한 거리는 현재 속도 * 시간을 해주면 구할 수 있어.
속도가 -가 될 때도 있으니 절대값을 넣어주면 돼 !
와 과학은 대단해 !
추적
추적 패턴은 요런 느낌이야.
시작 시 기본 이동, 방향으로 움직여.
일정 체력 비율로 깍이거나, 일정 시간이 지나면 공격 패턴으로 변경해.
유휴
공격
마지막으로 공격 상태는 돌진 패턴이야.
이 때 그냥 돌진하면 벽이 존재하고 화면 밖으로 나가버리면 좀 애매해져버리니
벽과 화면 테두리에서 튕겨나갈거야.
벽 검사는 이런식으로 해.
레이캐스트만 쏴도 될 것 같긴 한데, 일단은 몸통이 크면 모서리에 걸리면 레이캐스트 하나로 해결이 안될 수 있으니깐
몸체인 콜라이더로 캐스트를 해주었어.
충돌을 몇군데에서 하든 첫번째로 받은 충돌체로만 반사될거야.
수많은 일반 적들 사이에서 돌진할거라 잡몹에게 막히지 않도록
mass값을 높게 줄건데 얼마나 잘 될지는 모르겠어.
이후에 테스트해봐야 알것 같아 !
마지막으로 화면 밖으로 튕겨나가는 지 검사야.
요건 카메라에 콜라이더 부착하기엔 지저분한 것 같고,
그냥 카메라 뷰포트 함수를 이용해서 해결했어.
상하좌우 방향을 검사해서 x나 y방향을 한번 반대로 바꿔줘.
화면 밖의 벽에 의해 튕겨나갔다가 다시 안으로 들어오는 현상이 무한반복되는 것을 방지하기 위해서
Flag를 사용해주었어.
그리고 플레이어로부터 멀어져서 플레이어 주변으로 재배치되는 경우에는 초기화해주고.
끝
이렇게해서 대략적인 구현 끝 !
급하게 작성해서 이상한 부분이 있을 수 있으니 양해하길 바라.
다음번 일지는 마무리가 되면 좋겠는데
다운그레이드 하고 리팩토링하면서 아직 복구하지 않은 시스템들 복구해주고
얘네들 죽는 것과 보상 드롭, 스폰,
그리고 완성된 미니보스를 양산해서 돌아오도록 할게 !
마지막으로 귀여운 슬라임 한번 더 보고가.
독 장판이 너무 맘에 든다
갓성비 독장판!!
댕댕 슬라임 귀엽다 개발추
마지막에 기절 걸리는거 귀엽고 좋네 ㅋㅋ
허전해가지고 대기 상태랑 무슨 차별점을 줄수있을까 하다가 딱 붙여봣는데 귀여운것!!!
나도 출시하고 싶어!! 전시하고 싶어!! (2) 독장판은 Poison Field로 해도 될것 같지만 리그오브레전드 신지드 Q랑 비슷하니까 Poison Trail이 딱이 아닐지
함께 출시하는거예요 !!! FloorPoison 이런것밖에 생각하지 못했던 것... 작명 센스 넘나좋은거에요. 나중에 리팩토링할때 고쳐야겠어요...
28번 게시물 없다고 뜨는데 삭제된거임?
링크가 잘못 등록되었었나봐요 수정했습니다 ! 감사합니다 !
왕스라임 죽이면 쪼개져서 애기보스스라임나오게해주세요
독 장판 남는건 나중에 불장판 전기장판 이런거 고려했을때 좀 더 제너럴한 이름으로 짓는것도 나쁘지않을듯
앗 벌써 하나 유출되버린거에요 슬라임의 특성을 생각해서 3가지 타입의 미니보스 점액, 증식, 탄막 패턴을 각각 주고 슬라임 보스로 요 세가지 패턴을 가진 보스를 만들어줄예정이에요 ! 불장판 전기장판은 생각 못했는데 예리한거에요 불슬라임 나오면 필요한거에요... 그냥 장판으로 이름을 바꿔야하나 고민되는것...