목록유니티 (18)
거의 알고리즘 일기장
프로젝트 개요 VR게임상에서 그림을 그리고 그 그림을 딥러닝 모델로 판별하고 다시 VR환경에 관련 오브젝트를 띄운다. 이후, 스프레이, 색연필로 오브젝트로 색칠하여 전시하는 프로젝트. 딥러닝 (데이터셋, 모델선언, 트레이닝) Google에서 제공하는 quickdraw dataset .npy형태를 받아 선언한 resnet 모델로 트레이닝. batch : 256 10개의 카테고리의 경우 CNN RESNET34 5epoch 93% 94% 10epoch 96% 20개의 카테고리의 경우 CNN RESNET34 5epoch 85% 88% 10epoch 86% 90% 최종적으로 선택한 파라미터들 epoch : 10 model : resnet34 batch size : 256 lr : 0.1 optimizer : SG..
www.neurosky.kr/product/detail.html?product_no=10
예전에 다들 곰플레이어로 닷지라는 게임을 해본적이 있을것이다. 이 간단한 게임을 AR과 접목시켜 보았다. 플레이 영상 구현기능 1. ARCORE를 이용한 평면 인식 및 터치 시 게임의 맵 생성 2. 공 튀기기 간단하게 ENEMY가 쏜 공이 벽에 닿았을때, 위의 공식에 맞춰 튕겨져 나가게 하였다. 3. 조이스틱 패드를 이용한 조작 https://www.youtube.com/watch?v=S-0muRsfwzk 위의 링크를 참고하였다. 4. 시간마다 달라지는 난이도 설정 시간이 지날때마다 ENEMY가 늘어나게 했고 UI에서 지금 현재 단계를 알수있다. 후기 게임 자체는 간단해 만드는데 오래걸리지 않았는데, AR로 전환하는 과정에서 생각치도 못한 오류들이 계속 생겨서 그걸 해결하는데 힘들었습니다.
동작영상 후기 같이 교육을 듣는 친구들과 함께 공부목적으로 만들기 시작한 게임이다. 사실 이게 처음 시작할때만 하더라도 금방 끝날줄알았다.. 하지만, 동작을 구현할때 원활한 동작을 위해서 다리를 들어주는동작, 자연스럽게 다리가 회전하는 동작, 부드럽게 내려주는 동작, 다리의 컨트롤은 어떻게 할것인지 등등등 생각할거리가 매우 많기도 했고 잔버그가 워낙 많아서 그걸 어느정도 보완하는데도 많은 시간이 필요했다. 결국 완성하긴 했지만, 미숙한 면이 많아 아쉽다.ㅠㅠ
동물들의 움직임, 플레이어의 움직임은 웨이포인트를 사용하여 움직이게 하였다. 최근 듣는 교육에서 6시간 정도의 시간에서 팀을 짜고 그 안에 VR혹은 AR을 이용한 간단한 프로젝트를 완성시키는 활동을 하였는데 그때 만든 프로젝트다. 원래는 동물들을 학대하며 동물원을 도는 모습을 보여주다가 마지막에 동물들이 복수하는? 그런 시나리오를 생각했는데 중간중간 알 수 없는 오류를 고치느라 시간이 부족해서 생각했던 대로 프로젝트가 나오진 않은 것 같다. VR을 끼면 VR컨트롤러에 따라 간단한 이동속도 조절, 잠시 멈추기, 재시작 등의 기능을 사용할수 있는데 그건 영상을 어떻게 찍어야 할지 몰라서 유니티상에서 빌드한 내용만 영상으로 남긴다. 에셋은 무료에셋인 Free Skybox Extended Shader, 5 an..
구현 1. 길찾기 : a* 알고리즘을 이용해서 enemy를 만드는 곳에서 길을 찾아놓고 enemy는 그 길을 따라가게 하였다. (지금 상태에서는 과한 알고리즘 방법이지만, 나중에 맵의 구조를 계속 변화시키는 방식을 추가할 예정이라 a*알고리즘 을 썼다.) 2. tower의 공격이 enemy에 닿을시 폭파시킨다. 3. finish에 enemy가 닿으면 데미지를 입는다. 동작 이후 사항 추가로 적과 내 hp, hp bar, shop등을 추가해놓기는 했는데, 너무 막만들어서 그런지 뭔가 기능을 추가할때마다 전체 코드를 뒤엎어야 했다. 그래서 이 상태로 완성하기는 버겁다고 생각해서 잠시 타워디펜스는 중단하고 비행기 슈팅게임부터 완성할 예정이다.
게임설명 동작 회전 관련 SCRIPT (회전시킬것을 묶어야됨!) using System.Collections; using System.Collections.Generic; using UnityEngine; public class Rotator : MonoBehaviour { public float rotationSpeed = 60f; float changeTime = 2.0f; float objectTime = 0.0f; void Update() { transform.Rotate(0f, rotationSpeed*Time.deltaTime, 0f); objectTime += Time.deltaTime; if(objectTime >= changeTime) { changeTime = Random.Range(2..
게임 설명 Scripts GameManager Script using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.SceneManagement; public class Manager : MonoBehaviour { public int totalPoint; public int stagePoint; public int stageIndex; public int health; public Player player; public GameObject[] stages; public Image[] UIhealth; public Text UIPoint; public..
적이나 장애물을 부딛쳤을때 피격이벤트를 영상을 보고 따라 구현해봤다. 1. 먼저 가시랑 몬스터에 대한 태그, 레이어들을 설정하고 2. 가시랑 몬스터랑 맞닿아도 겹쳐지나가게 하고, 플레이어가 데미지를 입은 상태에서는 적과 닿아도 피격이벤트가 발생하지 않게 하기 위해서 ( 무적시간 ) project settings에서 아래와 같이 체크를 해제해준다. 3. 아래와 같이 스크립트에 이벤트 내용을 추가해준다. 추가 이벤트내용으로는 적에게 닿았을때 몸을 흐리게 만들고 약간의 시간동안 무적시간을 갖게 했다. void OnDamaged(Vector2 targetPos) { //player damaged gameObject.layer = 11; spriteRenderer.color = new Color(1, 1, 1, ..