분류 전체보기(166)
-
[MSW] 모험가 키우기 - 4 (스킬시스템 구조 설계)
핵심은 일정시간마다 스킬 테이블에서 가져 온 스킬 정보를 공격 함수에 인자로 넘겨줘서 스킬 시전을 연출하는 것이다. 이는 자동 시전방식이던 수동 시전방식이던 모두 호환이 가능해야 한다. 또한 발동패시브 타입의 스킬도 잠금 기능이 있어야 한다. 일정시간마다 자동 공격을 한다. 그리고 스킬의 쿨타임이 다 돌았을 경우에 자동으로 스킬 시전. (모든 공격은 동작 시간을 갖고 있고, 그 동안엔 다른 동작을 하지 못한다. 해당 시간은 공격 속도에 비례한다.) 스킬이 시전되면 해당 스킬 Id를 인자로 건네주고, 시스템은 테이블에서 해당 스킬 id를 찾아 공격력과 공격 대상 수, 이펙트를 처리한다. 1. _TimerService:SetTimer 메서드로 일정시간마다 공격 함수 실행. SetTimer 사용 예시) 2. ..
2023.01.05 -
[MSW] 개발 팁 모음
한 모델에 기본 컴포넌트와 확장 컴포넌트가 동시에 있으면 오작동할 가능성이 있다.
2023.01.05 -
[MSW] 모험가 키우기 - 3 (프로토타입을 위한 기본 환경 구성)
모험가 키우기는 카메라가 플레이어 캐릭터를 따라가지 않게 하려고 한다. 동일한 카메라 구도 내에서 스테이지를 깨고 다음 스테이지로 넘어가며 반복 진행되는 방치형 게임을 만들기 위해서다. 그러기 위해서 DefaultPlayer의 CameraComponent 에서 몇 가지 옵션을 변경했다. 첫번째로 ConfineCameraArea는 맵이 좁아 기본 설정인 카메라로는 낭떠러지가 보이기도 하고, 플레이어가 적절한 위치에 서있도록 설정하기 위해서 True로 변경했다. CameraOffset은 특별한 이유 없이, 카메라 옵션을 변경했을 때 구도가 이상한 곳으로 튀어서 화면이 올바로 나오도록 조정한 결과이다. Damping은 카메라가 플레이어 캐릭터를 따라가는 속도이다. 1에 가까울 수록 빨라진다. 나는 느리게 설정..
2022.12.26 -
[MSW] 모험가 키우기 - 2 (프로토타입을 위한 기본 플레이어 제어)
내가 알고자 하는 건 액션과 애니메이션 재생의 플로우. 이걸 알아야 원하는 대로 방치형 게임의 무브먼트를 연출할 수 있음. AvatarBodyActionSelectorComponent는 DefaultPlayer에 없다. 그럼 ActionStateChangedEvent는 없어도 된다는 뜻인가? 그게 아니라 BodyActionStateChangeEvent가 발생하면 그 값으로 ActionStateChangedEvent를 호출한다. 또한 내부 로직을 볼 수 없을 뿐, 애니메이션 변경 과정은 위의 절차대로 진행된다. 그리고 BodyActionStateChangeEvent로 애니메이션을 제어할 때는 공통적으로 MapleAvatarBodyActionState 값을 이용해 아바타의 애니메이션을 구분한다. 그래서 실제..
2022.12.24 -
[MSW] 모험가 키우기 - 1 (프로토타입을 위한 기본 UI 틀)
가장 먼저 전투 플레이 화면을 구성한다. SpawnLocation으로 캐릭터 시작 위치를 고정시키고, DefaultPlayer - CameraComponent의 ConfineCamera 옵션을 켜서 전형적인 방치형 게임의 카메라 구도를 연출시켰다. 이제 내가 구상한 UI를 게임에 넣어볼 차례다. 빠르게 프로토타입을 만들기 위해 기본 UI 세트를 최대한 활용하였다. 이 UI들은 기본적으로 알파값(투명도)이 설정되어있어서 SpriteGUIComponent의 Color 옵션에서 투명도를 전부 빼주었다. MSW의 최고 장점이라 생각하는 Resource Storage에서 원하는 스프라이트의 RUID를 복사해 간단하게 UI를 구성하였다. 그리고 hp바 같은 슬라이더 효과를 연출하기 위해 SpriteGUICompon..
2022.12.18 -
[MSW] 메이플스토리 월드 알아두면 유용할 것들
※ 본 포스팅은 MSW 공식 디스코드 채널에 있는 개발 가이드 영상의 내용을 정리한 글입니다. 엔티티 make child model 로 만든 차일드 모델과 오리지널 모델의 차이는 차일드 모델은 원본 오브젝트를 상속받게 되며 상속이라는 말에 걸맞게 원본 오브젝트에 컴포넌트가 추가되면 차일드 모델에도 동일하게 추가된다. 모델은 유니티의 프리팹 개념과도 유사하다. (차일드 모델 = 원본 프리팹에서 파생된 오브젝트) (오리지널 모델 = 오리지널 프리팹) 오리지널 모델이 아닌 차일드 모델은 독자적으로 자신의 컴포넌트를 제거할 수 없고, 오리지널 모델에서 지워야만 한다. (유니티의 프리팹과 마찬가지로 Revert, Apply가 있다.) self'.' 와 self':' 의 차이는 무언가를 지목하는 것과 무언가 호출하..
2022.12.04