목록old_line 2 (23)
게임을 만듭니다.
[길을 못찾는 멍충이들입니다] 지금까지 적들의 움직임은 단순히 플레이어의 위치를 대상으로해서 x축 혹은 y축으로 움직이는 형태였습니다.최종적으로는 일반시민(장애물)이나 다른몹들을 피해서 이동해야하기 때문에 길찾기 로직이 필요합니다.길찾기 로직은 유니티에 내장되있는 navmesh를 사용하던지 직접 구현(A*알고리즘과 같은방식을 사용)하는 방법이 있겠습니다.저한테는 후자쪽이 맞겠군요. 그럼 길찾기 공부를 하고 올 때입니다. https://www.youtube.com/watch?v=-L-WgKMFuhE
적도 움직이도록 만들어봤습니다.원래는 플레이어턴 / 적턴 이렇게 구분되게 하려했지만 일단 테스트용도로 적을 2초마다 한번씩 움직이게 해봤습니다.플레이어는 시간제한 없이(애니메이션 시간제한만 있음) 움직일 수 있구요.이렇게 놓고 보니 실시간으로 하는것도 나쁘지 않겠다는 생각이 듭니다.
'Line 2'에서각 몹(플레이어, 에너미 모두)은 자신의 행동력 게이지가 꽉 차야 움직일 수 있습니다.(바뀔수도 있죠)플레이어는 게이지 차는 속도가 상대적으로 빠르게 해놓을거고 (2초 내외?) 적들은 4초 내외로 하면 어떨까 생각중입니다. 테스트를 해봐야 알겠죠. 처음에는 위 동영상에 보이는 Child Of Light의 전투 시스템을 도입해보면 어떨까 생각했지요.Wait 구간과 Cast 구간을 나누어서 Cast구간에 행동을 결정하고 게이지가 다 차면 행동하도록.생각해보니 크게 다르지 않을것 같네요. 조금 다른점은 공격애니메이션 중간에 다른 공격이 먼저들어오면 공격이 취소된다 정도일것 같습니다.(생각이 또 바뀔지도 모르죠) 여하튼 씻고 회사에가서 오늘의 개발을 시작해야겠습니다. 이 행동력이란것을 플레이어..
휴일에 아침부터 회사나와서 코딩했더니 개발력이 빨리 소진된다.집에가는길에 치킨이나 한마리사서 원기회복해야지.내일은 일단 코드정리하고 공격로직을 만들어야지.그리고 Enemy AI만들고그다음... 게임 클리어 조건같은거 만들고...그리고 UI 조금 만든다음 아이템 관련해서 구현해봐야지
공격 애니메이션까지 만들었습니다. 노가다입니다. 흙흙흙...... 그래픽작업은 제~~일 마지막으로 빼놓고 싶었는데...여하튼 이제 공격/피해 로직을 만들껍니다.(제발....)
ben 에게 idle과 walk 애니메이션을 추가해줬습니다. 애니메이션이란 참 손이 많이 가는 놈입니다.공격애니메이션을 어떤식으로 할지 고민이 되네요.결국엔 무기를 들려줄것 같은데 그러면 내려치는 형식으로 공격하는것이 좋을것 같습니다.
플레이어의 공격 로직을 만들려고 하다보니 기존의 박스형태 모델에 아쉬움이 많아 큐비클을 이용하여 간단한 캐릭터를 하나 만들어줍니다. 저 캐릭터는 길건너 친구들이라는 게임에 나오는 'Ben'이라는 캐릭터입니다. 길건너 친구들의 디자이너이기도 하죠. 허락을 받지는 않았지만 프로토타입에 넣어 잠깐 사용하는것이니 Ben도 이해해주리라 믿습니다.큐비클에 별도의 애니메이션 툴이 없기 때문에 원래는 블렌더같은 툴을 이용해 애니메이션을 넣는것이 방법이겠지만 개인적으로 블렌더가 어렵게 느껴져서(그리고 어려운 수준의 애니메이션이 필요없기도 해서) 유니티 내부의 에니메이션 툴을 사용해야겠습니다.물론 관절을 고려하여 게임오브젝트 구조를 맞추는게 중요하겠습니다.
이동에 대한 판정방식을 바꾸었습니다.기존에 레이케스트를 이용하여 장애물이 있는지 확인하던 방식에서배열에 장애물정보를 넣어놓고 그것을 기반으로 움직일수있는지 판단해서 움직이도록 하였습니다.외형적으로는 큰 차이는 없지요.이제는 적을 공격해 봐야겠습니다.애니메이션이 연관되 있는 부분이여서 (나중에 구현할 생각을 하자면) 플레이어 모델도 외형도 공격을 인식할수있도록 약간 바뀌겠군요.
[동영상에 입혀진 소리는 무시해주세요. 틀어놓은 유투브 음성이 같이 들어가는군요 :-)]키 입력을 받아 플레이어를 한칸씩 움직이게 하는 간단한 코드를 작성해 보았습니다.초록색 박스는 장애물 레이어로 설정해 두어 해당 칸으로 움직이려고 할 경우 레이케스트 테스트 이후 움직일 수 없는 곳이란걸 알게되고 움직이지 않습니다.그런데 과연 이걸 콜라이더 기반으로 해야할지 의문이 듭니다.그냥 2차원 배열에 플레이어/몹/장애물에 대한 정보를 넣어놓고 논리적(not physical, logical)으로 따져서 그냥 움직이지 않게 하는게 낫지않을까요?꽤나 중요한 결정이기에 조금 생각이 필요합니다.
프로젝트를 깃으로 관리하려고 외부저장소로 비트버킷을 골랐습니다.평소에 회사에서도 사용하던거라 비교적 익숙해서 비트버킷을 선택했습니다.남들도 본다고 생각하면 조금더 코멘트나 코드에 신경을 쓰지 않을까 해서 공개저장소로 설정해놨습니다.(만... 생각대로 될런지)git@bitbucket.org:incago/line-2.git 어제 밤에는 게임 제작 강좌를 하나 봤습니다. http://unity3d.com/learn/tutorials/projects/2d-roguelike-tutorial유니티 공식사이트에 올라와있는 강좌인데 저는 개인적으로 유니티 공식홈페이지에 올라와 있는 강좌의 팬입니다.개인적인 생각이겠지만 너무 어렵지도 너무 쉽지도 않은 수준에서 비교적 깔끔한 문법으로 강좌를 만든 것 같습니다.여하튼 'l..