일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Replication
- os
- MAC
- CTF
- gas
- nanite
- Unreal Engine
- 언리얼엔진
- map design
- local prediction
- 언리얼 엔진
- photon fusion2
- gameplay ability system
- ret2libc
- Multiplay
- 게임개발
- unity
- dirty cow
- animation
- 유니티
- rpc
- listen server
- Aegis
- gameplay effect
- UI
- attribute
- gameplay tag
- ability task
- gravity direction
- 게임 개발
- Today
- Total
목록전체 글 (443)
Replicated
이전에 클립 스튜디오의 애니메이션 기능을 이용해 애니메이션을 만들긴 했는데, 장 수가 적다 보니 프레임이 너무 떨어져 보입니다. 사실 이전 방식대로 이미 공격 애니메이션까지 만들긴 했는데, 적어도 초당 30장 넣을 분량의 그림을 한 장 한 장 그릴 것이 아니면 퀄리티가 엄청 떨어져 보입니다. 그래서 결국 위 영상처럼 유니티의 애니메이션 기능을 적극 활용하도록 바꾸게 되었습니다.
데카시스의 Walk 애니메이션입니다.

이 보스 몬스터의 이름은 데카시스(Decasys)라 정했습니다. 유니티에서 제공하는 애니메이션 기능이 좋기는 한데 클립 스튜디오에서 그렸다가 유니티로 옮겨서 애니메이션 체크하다 왔다 갔다 하는 과정에서 시간 소모가 크고, 퀄리티의 저하가 생기는 것을 플레이어가 걷는 애니메이션을 만들며 느꼈습니다. 결국 클립 스튜디오에서 제공하는 애니메이션 기능을 살짝 공부해서 애니메이션을 만들어 두었습니다. 이제 각각의 프레임에 해당하는 레이어들을 따로 모아서 유니티로 모으고 유니티 애니메이션으로 만들 계획입니다.

늑대의 골격에 몸이 얼음처럼 보이는 광석처럼 변질된 듯한 피부를 가지도록 했습니다. 육탄전을 메인으로 하여 팔로 찍거나 돌진하는 등의 패턴을 만들 계획입니다. 원본은 상하체, 다리 관절 부분, 머리, 턱 등이 다른 레이어로 분리 되어 있어 걸어다니거나 공격하는 스프라이트를 만들기 용이하도록 제작되어 있습니다.

와이어를 구성하는 세 가지 스프라이트입니다. 첫번째 스프라이트의 길이를 조정해서 와이어로 사용합니다. 와이어를 뻗는 자세의 플레이어입니다. 벽 잡기를 하는 플레이어입니다. 폭탄과 폭탄의 도화선입니다. 불이 튀는 이펙트는 유니티에서 제공하는 Particle System을 이용하였습니다. 마지막으로 현재 플레이어 애니메이션의 상태입니다.

벽을 부수는 것도 재밌겠다 싶어서 폭탄을 만들어 보았습니다. 아직 폭발 이펙트는 만들어지지 않았으며, 폭발이 플레이어나 몬스터에게 대미지를 줄 지는 아직 고민 중입니다. using System.Collections; using System.Collections.Generic; using UnityEngine; public class DemolishingBomb : MonoBehaviour { Collider2D[] colliders; Rigidbody2D rb; private void Awake() { rb = GetComponent(); Invoke("bomb", 3.0f); } public void addForce(float dir) { rb.AddForce(new Vector2(7000.0f * d..

벽 잡기를 만들고 나서도 y축을 활용하는 액션이 부족하다는 생각이 들어 와이어 액션을 구현하였습니다 마법을 쓴다는 이미지로 구상을 했고, 그 결과 위 이미지처럼 제작하게 되었습니다. // 와이어 액션 ************************************** if ( Input.GetKey(KeyCode.S) && playerCtrl.actionActive && wire != 0 ) { prevWire = wire; wire = playerCtrl.ActionWireJump(); if( prevWire != -1 && wire == 0 || (prevWire == 1 && wire == -1) ) { playerCtrl.ActionWireInertia(); } } if( Input.GetKey..

플레이어의 액션 중, 벽타기가 추가 되었습니다. // 클라이밍 **************************************** if (Input.GetKey(KeyCode.UpArrow) && !climbJump && playerCtrl.actionActive) { if (playerCtrl.ActionClimb()) { climbing = true; } } if (Input.GetKeyUp(KeyCode.UpArrow)) { climbing = false; climbJump = false; playerCtrl.ActionUndoClimb(); } if (Input.GetKeyDown(KeyCode.Space) && climbing) { climbing = false; climbJump = tr..