전체 글
-
Parrying Sword #15 : [프로그래밍][기획] 보스몬스터 (데카시스) 패턴 디자인유니티 엔진/Parrying Sowrd 2023. 3. 9. 14:21
아직 패턴이 다 완성된 건 아니고, 만든 패턴도 조금씩 손봐야 하며 이펙트도 들어가야 하기 때문에 완성까진 아직 많이 남았다고 볼 수 있지만 꽤나 그럴 듯한 수준까지 만들어 낸 것 같아 올려봅니다. if (num < moveToPlayer) { if (prevState == BossMonster_DecasysState.MOVETOPLAYER) return; if( monsterCtrl.distanceToPlayerX() < 23 ) { prevState = BossMonster_DecasysState.MOVETOPLAYER; return; } monsterCtrl.setState(BossMonster_DecasysState.MOVETOPLAYER, delayDict[BossMonster_DecasysSt..
-
Parrying Sword #14 : [아트] 보스 몬스터 (데카시스) 애니메이션 재제작유니티 엔진/Parrying Sowrd 2023. 3. 6. 13:57
이전에 클립 스튜디오의 애니메이션 기능을 이용해 애니메이션을 만들긴 했는데, 장 수가 적다 보니 프레임이 너무 떨어져 보입니다. 사실 이전 방식대로 이미 공격 애니메이션까지 만들긴 했는데, 적어도 초당 30장 넣을 분량의 그림을 한 장 한 장 그릴 것이 아니면 퀄리티가 엄청 떨어져 보입니다. 그래서 결국 위 영상처럼 유니티의 애니메이션 기능을 적극 활용하도록 바꾸게 되었습니다.
-
Parrying Sword #12 : [아트] 보스몬스터 (데카시스) 스탠딩 애니메이션유니티 엔진/Parrying Sowrd 2023. 2. 24. 11:51
이 보스 몬스터의 이름은 데카시스(Decasys)라 정했습니다. 유니티에서 제공하는 애니메이션 기능이 좋기는 한데 클립 스튜디오에서 그렸다가 유니티로 옮겨서 애니메이션 체크하다 왔다 갔다 하는 과정에서 시간 소모가 크고, 퀄리티의 저하가 생기는 것을 플레이어가 걷는 애니메이션을 만들며 느꼈습니다. 결국 클립 스튜디오에서 제공하는 애니메이션 기능을 살짝 공부해서 애니메이션을 만들어 두었습니다. 이제 각각의 프레임에 해당하는 레이어들을 따로 모아서 유니티로 모으고 유니티 애니메이션으로 만들 계획입니다.
-
Parrying Sword #9 : [기획][프로그래밍] 폭탄 구현 중유니티 엔진/Parrying Sowrd 2023. 2. 17. 12:11
벽을 부수는 것도 재밌겠다 싶어서 폭탄을 만들어 보았습니다. 아직 폭발 이펙트는 만들어지지 않았으며, 폭발이 플레이어나 몬스터에게 대미지를 줄 지는 아직 고민 중입니다. 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..
-
Parrying Sword #8 : [기획][프로그래밍] 와이어 액션 구현유니티 엔진/Parrying Sowrd 2023. 2. 17. 11:56
벽 잡기를 만들고 나서도 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..