DIY(18)
-
[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 -
[Tilt Ball] 프로파일러 사용하기
Tilt Ball을 개발하던 중, 안드로이드에서 구동하자 프레임 드랍이 일어난다. 그래서 이번 포스팅에선 프로파일러란 것을 알아보고, 사용해보는 과정을 기록해보겠다. 프로파일러에 대한 자세한 내용은 유니티 독스를 참고하자. https://docs.unity3d.com/kr/current/Manual/ProfilerWindow.html#layout 프로파일러 창 - Unity 매뉴얼 Unity 프로파일러에 액세스하려면 Window > Analysis > Profiler 로 이동하거나 키보드 단축키 Ctrl+7 (macOS의 Command+7)을 사용하십시오. docs.unity3d.com Tilt Ball에서는, CPU Usage와 GPU Usage 모듈에서 성능이 저하되는 것을 볼 수 있다. 더 세부적으..
2022.06.05 -
[R&D][Tilt Ball] 오브젝트 조각내는 연출하기
아래 Stack Fall 이란 게임에서는 장애물을 부술 때 장애물이 파괴되어 날라가는 효과를 주었다. 이를 Tilt Ball 프로젝트에 적용시켜보자. https://docs.unity3d.com/kr/2020.3/Manual/InstantiatingPrefabs.html 런타임 시점에 프리팹 인스턴스화 - Unity 매뉴얼 프리팹은 복잡한 게임 오브젝트나 게임 오브젝트 컬렉션을 런타임 시점에 인스턴스화하려는 경우에 매우 유용합니다. 코드를 사용하여 처음부터 게임 오브젝트를 만드는 것보다는 코드를 사용 docs.unity3d.com 종종 게임에서 캐릭터, 차량, 건물 또는 기타 에셋을 “온전한” 상태에서 “파괴된” 상태로 전환해야 할 때가 있습니다. 이 경우 게임 오브젝트의 온전한 버전을 수정 (예: 스크..
2022.05.14 -
[Project J][R&D] 턴제 액션의 핵심 요소, 행동력 구현하기
이번에는 저번 A* 알고리즘을 구현했던 것에 이어서 캐릭터에게 행동력을 부여하고 그에 따라 달라지는 이동 가능 범위를 구현해보겠다. 캐릭터에게 주어진 행동력이 10이고, 직선이동은 1의 비용, 대각선 이동은 1.4의 비용이라 했을 때, 갈 수 있는 범위는 다음과 같다. 원과 비슷하지만, 1 미만의 행동력으로는 이동할 수 없기 때문에 원과는 살짝 다르다. 위 그림은 행동력이 얼마나 남았는지에 따라 달라지는 이동 가능 범위의 패턴을 그린 것이다. 이제 코드를 통해 이 범위를 구현해보자. 행동력에 따라 이동 가능한 타일인지 판별하기 범위 탐색 시작하면 모든 타일들이 0의 값을 가지게 한다. 캐릭터가 현재 위치한 타일에 현재 행동력만큼의 수치를 부여함. 캐릭터 주변 8칸의 타일을 탐색해 (자신의 수치 - 해당 ..
2022.04.22