반응형

프로젝트해요 18

#1. 키로거 개발

먼저 사용자의 키보드 입력을 받으려면 키로거를 제작했다. 개발환경은 아무거나 해도 상관없었겠지만 파이썬에 pynput 라이브러리가 사용하기 편할거 같기도 했고 후에 머신러닝 코드 짜는것까지 고려해서 파이썬 환경에서 개발하기로 했다. from pynput.keyboard import Key, Listener import logging log_dir = r'C:\Users\user\Desktop' logging.basicConfig(filename=log_dir + "\\keyboard.txt", level=logging.DEBUG, format='["%(asctime)s", %(message)s]') def on_press(key): logging.info('"{0}"'.format(key)) with L..

#0. 프로젝트 설계

프로젝트 명 머신러닝을 이용한 키보드 입력 패턴 분석 프로젝트 목표 사용자의 고유한 키보드 입력 패턴을 분석하고 이를 이용하여 지속적 인증 모델 제시 프로젝트 계획 1. 키로거 제작 2. 키로거를 사용하여 피실험자들의 키보드 입력 이벤트 수집 (데이터 베이스 사용) 3. 머신러닝을 통해 사용자의 입력 패턴을 학습 4. 실험을 통해 train 데이터와 test 데이터간의 패턴 차이가 존재하는지 분석 5. 분석 내용을 바탕으로 지속적 인증 모델 제시 2023 - 2 학기때부터 차근차근 반년가량..(불태운건 두달 정도지만) 한 프로젝트이다. 중간중간 노션에만 회의록을 정리해둔게 아까워서 블로그에 기록해보려한다~~

[Unity] #16. FPS 게임 제작(7_최종)

목차 1. 길 찾기 (메시 링크) 2. 스나이퍼 모드 3. 무기 효과 1. 길 찾기 (메시 링크) 네비게이션 이동 가능한 영역이 높이 차이 등으로 단절되어 있어도 오프 메시 링크(Off Mesh Link)기능으로 임의 연결이 가능하다. 테스트해보기 위해 임시로 아무 모양이나 생성했다. (전 큐브 모양함) 이렇게 오르고 내려갈 곳에 빈 게임 오브젝트를 배치해봤다. 꼭 저 파란색 안에다가 지정해야 움직임이 가능해진다. [Add Component] - [Navigation] - [Off Mesh Link] 를 선택해서 추가한다 이런식으로.. 원하는 부분도 조절해주고.. 에이전트가 최단 거리를 계산할 때 이동하는 Node마다 비용이 존재하는데 이 거리가 가장 짧은 거리로 이동하게 된다. 비용값은 내비게이션 뷰의..

[Unity] #15. FPS 게임 제작(6)

목차 1. 플레이어 폴리싱 2. 길 찾기 (네비 메시) 1. 플레이어 폴리싱 : 플레이어 외형 모양 교체 Asset Store에서 원하는 모양.. 아무거나 써도 된다. 나는 군인 모양 선택함. 가져온 이미지 플레이어 오브젝트 하위로 넣어두고~ 적용하고 보니 캐릭터가 너무 홀쭉 빼빼로가 되어 버려서 Scale Factor 항목을 좀 줄였다.(0.7 정도로) 한 뒤에 충돌역역도 캐릭터 크기에 맞도록 조정했다. 카메라 위치도 캐릭터 눈쪽으로 약간 올려주었다..~~ 다음으로는 이 캐릭터에도 앞선 내용처럼 애니메이션을 적용할 예정이다. [Animator Controller] 추가하고 Controller 항목에 저 에셋을 추가해준다. 가지고 있는 idle 파일을 애니메이터 뷰 쪽에 드래그 앤 드랍 하면 아래처럼 견..

[Unity] #14. FPS 게임 제작(5)

목차 1. 에너미 폴리싱 (애니메이션) 1. 에너미 폴리싱 이전에 FPS 게임제작 (3)에서 했던 것 처럼 각 캐릭터에 상태에 따라 애니메이션을 만들어 줄 것이다. 스크립트는 전에것을 참고하면 될거고.. transition을 이렇게 연결해서 캐릭터가 자연스럽게 동작을 변경할 수 있도록 구현해 보았다.. 추가적으로 공격할 때만 하면 안되고 좀비가 날 쳤을 때도 해야하니까.. 공격 받아서 hp줄어드는거랑 다 죽어들면 죽는거 까지.. 구현해봤다. 다 하면 일케 된다.. 이벤트 함수랑 잘 연결하고 스크립트는 지난번처럼 작성하면 된다. 중간중간 확인하면서 transition 헷갈리지 않게 실행해보는게 좋을 것 같다. 하다가 중간에 안넘어가거나 이상한 행동 할때가 있어서,,~

[Unity] #13. FPS 게임 제작(4)

목차 1. 에너미 폴리싱 2. UI 제작 (피격효과) 3. 게임 매니저 1. 에너미 폴리싱 : 에너미의 외형을 좀비 캐릭터로 교체하기 Asset store에서 원하는 좀비 모양을 다운로드하고 임포트한다. 좀비 오브젝트를 Enemy의 하위 오브젝트로 추가하고 Transform을 리셋한다. 본인의 Enemy에 맞추어 캐릭터를 조정해준다. 다음으로는 캡슐이 보이지 않도록 Mesh Rederer 항목을 비활성화 시킨다. 다음으로는 각 Enemy의 상태에 맞는 애니메이션을 적용하도록 해보자.. 좀비 모델링 선택하고 임포트 세팅에서 [Rig] 탭 클릭 [Animation Type]과 [Configure..]이 다음과 같이 되어 잇는지 확인한다. Animations폴더를 따로 만들고 [+ 버튼] - [Animatio..

[Unity] #12. FPS 게임 제작(3)

목차 1. 에너미 제작(상태함수) 2. UI 제작(체력바) 1. 에너미 제작 public class EnemyFSM : MonoBehaviour { // 에너미 상태 상수 enum EnemyState { Idle, Move, Attack, Return, Damaged, Die } // 에너미 상태 변수 EnemyState m_State; . . . (생략) . . . } 에너미 상태를 만들기 위해서 EnemyFSM스크립트에 위에처럼 변수를 선언하고 switch문으로 case를 나누어 상태에 맞는 기능을 하도록 구현하였다. 이런 느낌.. 각각 원하는 동작과 함수를 구현해보면 된다. 상태전환하는 것도 유의해서 스크립트를 작성하도록..해야된다.. 2. UI 제작 : 플레이어와 에너미의 체력을 표시하는 바 만들..

[Unity] #11. FPS 게임 제작(2)

목차 - 무기 제작 - 에너미 제작 1. 무기 제작 수류탄 제작 : 마우스 우클릭 시 수류탄이 나올 수 있도록 제작한다. 1. 플레이어를 제외하고 물체에 닿으면 폭발하는 수류탄 오브젝트 생성 2. 사용자의 마우스 오른쪽 버튼 입력받기 3. 발사 위치에 수류탄 생성 4. 생성된 수류탄에 시선방향으로 물리적인 힘 가하기 Sphere 오브젝트 생성 뒤 다음과 같이 Rigidbody 컴포넌트를 추가한다. 스크립트를 생성한 뒤 적용하고 작성해보았다. using System.Collections; using System.Collections.Generic; using UnityEngine; public class BombAction : MonoBehaviour { // 충돌했을 때의 처리 private void O..

[Unity] #10. FPS 게임 제작(1)

이번에는 FPS게임을 제작해볼 것이다. FPS 게임 : 1인칭 슈팅게임을 의미하는 말로 대표적인 게임으로는 서든어택, 오버워치, 발로란트 등이 있다. 목차 1. 지면새성 2. 카메라 회전 3. 캐릭터 이동 & 점프 1. 지면생성 먼저 3D프로젝트를 먼저 생성해준다. [Hierarchy] - [3D Object] - [Plane] 을 생성하고 오브젝트 이름을 Ground로 변경한다. 땅처럼 보일 수 있도록 다음과 같이 크기를 변경해준다. 지면에 땅처럼 색상을 만들어 주기 위해 Material 을 적용할 것이다. 먼저 Material을 모아 둘 폴더를 생성한다. Material 폴더에서 마우스 우클릭을 한 뒤 Material을 생성한다. Albedo를 이용해서 색상을 땅과 유사하게 바꿔주었다. Ground ..

[Unity] #9. 슈팅 게임 제작(5)

5번째 글을 마지막으로 슈팅 게임 제작을 마무리 할 예정이다. 이번에는 마지막으로 최적화에 조금 더 신경을 써보기로 했다. 목차 1. 싱글톤패턴으로 관리자 만들기 2. 오브젝트풀을 이용한 메모리 관리 1. 싱글톤패턴으로 관리자 만들기 싱글톤패턴 객체의 인스턴스가 오직 한개만 생성되는 패턴을 의미한다. 일종의 전역변수, 전역클래스 정적변수를 사용해서 만들게 된다. Gameobject.Find를 사용하면 Hierarchy창의 모든 오브젝트를 검색하기 때문에 효율적이지 못하다. 그래서 싱글톤 패턴을 사용한다. ScoreManager 스크립트를 싱글톤 패턴으로 구현한 것이다. public class ScoreManager : MonoBehaviour { . . . (생략) . . . // 싱글톤 객체 publi..

반응형