티스토리

블로그
검색하기

블로그 홈

블로그

dh-lee.tistory.com/m

이동헌 님의 블로그입니다.

구독자
0
방명록 방문하기

주요 글 목록

  • [Web] Oracle Cloud를 활용한 Web Server 환경 구축 (6) - PostgreSQL 이번 시간엔 DB 서버에 RDBMS인 PostgreSQL 환경을 구축하자.  여러 고민을 해본 끝에 많이 쓰이는 RDBMS 중 하나인 PostgreSQL을 사용하려고 한다. Redis를 사용하기엔 무료 클라우드의 메모리 제공량이 적기도 하고, RDBMS 사용이 기본이라고 생각했기 때문이다. 우선 설치 가능한 postgresql를 확인할 수 있다.sudo apt show postgresql 위 과정은 생략해도 되고, 바로 설치가 가능하다.sudo apt-get install postgresql postgresql-contrib 다운로드 받은 postgresql의 상태를 체크할 수 있다.sudo service postgresql startsudo service postgresql statussudo serv.. 공감수 0 댓글수 0 2024. 5. 9.
  • [Web] Oracle Cloud를 활용한 Web Server 환경 구축 (5) - Java Web 서버쪽에 백엔드 작업을 하기 위해 가장 많이 사용되는 언어인 Java를 설치해보자. 우선 apt-get 업데이트를 진행하자.sudo apt-get update   그리고 설치 가능한 openjdk 검색 후 설치를 진행한다. 버전은 LTS(Long Term Support) 버전 중 최신인 21로 할 것이다. 17이 자료도 많고 안정적이겠지만, 최신으로 깔아보도록 하자. 역시나 설치 체크는 버전 확인!sudo apt-cache search openjdksudo apt-get install openjdk-21-jdksudo apt-get install openjdk-21-jre   Java를 정상적으로 사용하기 위해서 환경 변수 세팅이 필요하다. 윈도우에서도 시스템 환경 변수 설정 창을 띄울 때마다 J.. 공감수 0 댓글수 0 2024. 5. 5.
  • [Web] Oracle Cloud를 활용한 Web Server 환경 구축 (4) - Redis in python 이번엔 Database 서버의 redis를 python으로 제어하기 위한 환경을 구축해보자. 우선 pip설치가 필요하다.sudo apt-get install python3-pip pip 설치가 끝나면, redis 패키지를 설치하자.pip install redis   python을 켜서 다음과같이 레디스를 연결한다. host에 redis가 있으므로 host="localhost"이고, 다른 서버에 있는 레디스를 불러오는 경우 redis가 있는 서버 주소를 입력하면 된다.python3>>> import redis>>> rd = redis.StrictRedis(host="localhost", port=6379, db=0) redis 연결 후 사용법은 다음과 같다.- rd.set("key", "value") : .. 공감수 0 댓글수 0 2024. 5. 1.
  • [Web] Oracle Cloud를 활용한 Web Server 환경 구축 (3) - DB Server 지난 시간에 이어, 이번엔 DB전용 서버 환경을 구축해보자.  Oracle DB를 사용할 수 있지만, 나는 Redis를 활용해 볼 생각이기 때문에 서버를 하나 만들었다. 인스턴스 생성은 지난번과 동일하게 진행하자. 우선 서버 생성 후 ssh로 로그인하자.ssh -i "ssh_file_path" UserName@ServerIP 접속 후 바로 apt-get 업데이트를 진행한다.sudo apt-get updatesudo apt-get upgrade Redis를 설치한다.sudo apt-get install redis-server 설치 확인은 역시나 버전 체크만한게 없다.   다음으로 Redis는 메모리 기반으로 동작하기 때문에 Redis가 사용 가능한 최대 메모리를 지정해주자. 나는 클라우드의 메모리 최대치가.. 공감수 0 댓글수 0 2024. 4. 29.
  • [Web] Oracle Cloud를 활용한 Web Server 환경 구축 (2) - Nginx web server 이번엔 nginx를 활용해 웹을 띄워보도록 하자. 웹에 대한 지식이 전무한 나는, 구글링을 많이 활용했는데 apache와 nginx중에 기능이 많지만 무거운 apache 대신 가벼운 nginx를 쓰기로 결정하였다. 우선 cloud에 접속한다. 접속 후 클라우드에 nginx를 설치 해야한다. 설치에는 몇 분 정도 걸린다.sudo apt-get install nginx 설치가 완료되면, nginx를 시작하고 localhost부터 웹페이지 파일(html)을 수신받을 수 있는지 확인해보자.sudo systemctl start nginxcurl localhost  웹페이지는 외부에서 접속해야 그 의미가 있으므로, 이제 외부 접속을 위한 세팅을 해야 한다.  http 통신은 기본적으로 예약된 80번 포트를 사용하고.. 공감수 0 댓글수 2 2024. 4. 28.
  • [Web] Oracle Cloud를 활용한 Web Server 환경 구축 (1) - Cloud 접속 개발자로서 살아남기 위해선, 기술 스택을 넓혀야 한다고 생각해 간단히 취미정도로 Web 관련 공부를 해보기로 결정하였다. 이전에 팰월드 데디서버를 띄우기 위해 알아봤던 Oracle Cloud Free Tier가 생각났고, 그 때 무수한 시도에도 실패했던 회원가입이 바로 되었기 때문에 수월하게 진행되었다.우선 이 글의 시작은 Oracle Cloud 홈페이지에서 Free Tier 회원가입을 진행한 뒤를 가정한다. 클라우드를 활용해 우선 서버로 활용할 VM Instance를 생성해야 한다.Compute > Instance 에 들어와 Create instance를 눌러 새 인스턴스를 생성하자.   이 때 나는 모든 세팅을 default 그대로 두어 생성하였다. 그런데 분명 Free Tier인데, 오른쪽 박스.. 공감수 0 댓글수 2 2024. 4. 27.
  • [자료구조] 6. STL Unordered_map 1. Unordered_map 간단 요약 Hash Table을 기반으로 만들어진 많은 양의 자료를 검색하는 데 특화된 자료구조로, key와 value를 저장하는 점에서 Map과 비슷해 보이지만, key를 정해진 hash function을 통해 key 값을 특정 주소로 변환하여 value에 접근하므로 이론상 O(1)의 탐색 시간을 가지고, Map과 달리 데이터를 정렬하여 저장하지 않는다는 차이가 있다. 단점으로는 서로 다른 key에 대해 동일한 주소를 얻으면 충돌이 발생하여, 이를 방지하기 위한 안전장치가 필요하다. 2. Unordered_map 구조 - 해시 테이블(Hash Table) - 반복자 사용이 가능하여 begin(), end() 등등의 STL 반복자 규칙을 공유한다. - bucket의 다른 이.. 공감수 0 댓글수 0 2023. 7. 27.
  • [자료구조] 5. STL Map 1. Map 간단 요약 STL에 속한 Map은 key로 정렬되는 Red-Black Tree 구조이며, key마다 value를 가진다. 데이터의 삽입/삭제 및 탐색의 시간복잡도가 O(logn)으로 빠르다. 2. Map 구조 - Map은 Red-Black Tree로 구현되어있다. 이 때 노드의 크기 비교는 key값을 이용한다. - Red-Black Tree : 자가 균형 이진 탐색 트리 1) 조건 - 모든 노드는 빨간색 또는 검은색이다. - 루트 노드는 항상 검은색이다. - 모든 리프 노드(Null leaf, NIL : 값을 가지지 않는 트리의 끝에 있는 노드)는 검은색이다. - 빨간색 노드의 자식은 검은색이다. 빨간색 노드가 연속될 시 Double Red라고 부르고, 아래 소개하는 방법들로 해결한다. - .. 공감수 0 댓글수 0 2023. 7. 25.
  • [자료구조] 4. STL Queue 1. Queue 간단 요약 Queue는 Stack과 반대로 추가된 순서대로 원소가 빠져나오는 선입선출(FIFO, First In First Out)구조를 가진 자료구조이다. Queue또한 iterator를 지원하지 않아 순회탐색이 불가능하다. STL에서는 Stack과 거의 동일한 함수를 지원한다. 2. Queue 구조 - front() : 가장 먼저 추가한 원소 - back() : 가장 마지막에 추가한 원소 - push() : back() 뒤에 원소 추가 - pop() : front()에 해당하는 원소 제거 - size() : Queue의 크기 3. Queue 함수 정리 1) 크기 관련 - empty() : Queue가 비어있다면 true, 아니라면 false 반환 - size() : Queue의 크기 .. 공감수 0 댓글수 0 2023. 7. 25.
  • [자료구조] 3. STL Stack 1. Stack 간단 요약 Stack은 가장 나중에 추가한 원소가 가장 먼저 나오는 후입선출(LIFO, Last In First Out)구조를 가진 자료구조이다. 인덱스를 통한 접근은 불가능하고, 가장 나중에 추가한 원소를 제거하기 전에는 해당 원소를 제외한 나머지 원소의 값을 알 수 없다. STL Stack의 경우 Vector같은 컨테이너와 달리 iterator를 제공하지 않아 순회탐색이 불가능하다. 2. Stack 구조 - top() : 가장 마지막에 추가한 원소 - push() : 원소 추가 - pop() : top() 제거 - size() : Stack의 크기 3. Stack 함수 정리 1) 크기 관련 - empty() : Stack이 비어있다면 true, 아니라면 false 반환 - size().. 공감수 0 댓글수 0 2023. 7. 25.
  • [자료구조] 2. STL List 1. List 간단 요약 C++ 표준 라이브러리에 포함된 List의 경우, 원소의 값과 앞/뒤를 가리키는 포인터를 가진 노드들로 이루어진 이중 연결 리스트(Double linked list)이다. 동적 할당을 통해 관리하며 리스트의 특성상 삽입/삭제가 효율적이다(노드끼리 연결/끊기만 하면 되므로 O(1)). 하지만 탐색에는 불리한 구조이다(인덱스 접근이 불가능하므로 O(n)). 2. List 구조 - begin() : 가장 앞 노드(iterator) - end() : 가장 마지막 노드가 다음으로 가리키는 위치(iterator, 실제 노드가 있지 않다) - front() : 가장 앞 원소 - back() : 가장 마지막 원소 - size() : 원소의 개수 3. List 함수 정리 1) 반복자(iterat.. 공감수 0 댓글수 0 2023. 7. 24.
  • [자료구조] 1. STL Vector 1. Vector 간단 요약 Vector는 C++ 표준 라이브러리(Standard Template Library, STL)에 속한 컨테이너 중 하나로 가변 배열이다. Vector는 동적 할당을 활용하므로 Heap에 생성되며 메모리를 효율적으로 관리할 수 있다. 하지만 원소의 추가/삭제에 있어서는 효율적이지 않다(추가/삭제 시 다른 원소를 옮겨야하므로 O(n)). 2. Vector의 구조 - begin() : 가장 앞 원소가 있는 위치 - end() : 가장 마지막 원소 바로 뒤 - front() : 가장 앞 원소 - end() : 가장 뒤 원소 - size() : 원소의 개수 - capacity() : 할당된 크기 3. Vector 함수 정리 1) 반복자(iterator) 관련 - begin() : 가장.. 공감수 0 댓글수 0 2023. 7. 10.
  • [자료구조] 자료구조 정리 1. 배열(Array) - 동일한 타입의 데이터 저장 - 실제 저장된 메모리 주소도 연속적, 인덱스로 데이터 접근 가능 - 일반적인 선언은 정적 배열(크기 고정), STL의 Vector는 동적 배열(가변 크기) 2. 연결 리스트(Linked List) - 노드의 연결로 이루어져 있음, 노드는 값과 다음 노드를 가리키는 포인터로 구성 - 연결 리스트 가장 앞 요소는 Head, 마지막 요소는 Tail - 인덱스로 접근이 불가능, 순차적 접근 - 하지만 삭제 및 삽입이 용이 3. 스택(Stack) - 후입선출(Last In First Out, LIFO) 구조 : 가장 마지막에 추가한 데이터를 가장 먼저 꺼냄 4. 큐(Queue) - 선입선출(First In First Out, FIFO) 구조 : 가장 먼저 추.. 공감수 0 댓글수 0 2023. 7. 4.
  • 계획 변경.. CG 부분부터 모든 기초 튜토리얼을 다 따라하고나서 알게 된 문제점이 있다. Houdini 프로그램을 무료 버전으로 사용할 경우, hda 대신 hdanc와 같이 nc(아마도 non-commercial의 약자인듯 하다)가 붙은 확장자로 저장이 되는데, 이는 언리얼 엔진 등 외부 프로그램에서 열 수 없는 파일 형태라서.. Houdini 인디 버전이라도 구매를 해야 언리얼에서 사용이 가능하다! 하지만 구매할 정도로 전문적으로 할지는 아직 정하지 않아서 우선 Houdini를 통한 맵 제작은 보류해야 할 것 같다. 다음 계획은 두 가지이다. 1. 언리얼 엔진으로 맵을 제작(레벨 디자인과 비슷한 맥락) 2. 1인칭 FPS를 제작했기에 3인칭 mmorpg 포트폴리오를 제작 아무래도 포트폴리오 퀄리티나 실력적으로 부족.. 공감수 0 댓글수 0 2023. 6. 23.
  • [Houdini] 01. 기초 및 인터페이스 *이 글은 https://www.sidefx.com/learn/getting_started/에 있는 튜토리얼을 따라 공부한 것을 정리한 글입니다. 나는 언리얼 엔진과 연동하여 맵을 만드는 것이 Houdini 공부의 목적이다. 그리고 목적을 위한 공부를 우선하여 완전 기초를 탄탄하게 다지면서 진행하지는 않을 것이므로 글의 부족한 점에 대한 양해를 구한다. 어느정도 다룰 줄 알고 목적을 이루고 나면 툴을 좀 더 익힐 생각이다. 1. Houdini란? Houdini는 노드 기반의 절차지향 3D 툴이다 이 노드의 흐름을 이해하는 것이 Houdini를 익히는데 있어 핵심 요소이다.이러한 절차적 단계를 통해 Modeling, Rigging, Lighting, Rendering, Visual effects 등에 사용.. 공감수 0 댓글수 0 2023. 6. 12.
  • [Unreal Engine] 앞으로의 계획 취직 관련..가장 먼저 채용연계형 인턴십이 열리면 무조건 넣어볼 것이다. 경력쌓고 취직 기회도 얻고 실력도 늘리고 다 할 수 있는 기회니까.. 그리고 되는대로 원서는 다 넣어볼 생각이다. 아마 포트폴리오 역량 부족때문에 불합 메일을 받은 것 같은데 그래서 새로운 역량 증진을 위한 계획을 여기 써놓고자 한다. 우선 내가 원하는 레벨, 에셋들을 찾는 것만 해도 한참 걸리고, 거의 없다고 생각해야한다. 에셋에 맞춰 만드는 것이 싫다! 그래서...에셋 관련 To do List는 아래와 같다. 1. 맵/레벨 제작 관련 스킬 익히기(특히, Houdini 연동하는 것 익히기). 언리얼 공식 페이지에도 친절하게 나와있다. 2. 3D 모델링 및 애니메이션은 진짜 깊게 파지 않는 한 어려울 것 같은데, 배울 수 있는 방법.. 공감수 0 댓글수 0 2023. 6. 8.
  • [Unreal Engine4] 포트폴리오 : Project_Zombie_FPS 언리얼 엔진으로 제작한 좀비 FPS 포트폴리오이다. 이 포트폴리오를 제작하면서 원하는 스켈레탈 메시로 된 무기와 FPS 메시를 찾지 못해 블렌더를 조금 익히게 되었다. 프로젝트 전반적으로 블렌더를 활용할 기회가 많아 간단한 조작을 익히게 되었고, 리깅 정도는 할 수 있게 되었다. 나중에 나처럼 무기 스켈레탈 메시를 찾아 헤메다 못해 직접 만들기로 마음먹은 사람들을 위해 블렌더를 통한 리깅을 블로그에 게시할 예정이다. 아래는 포트폴리오에 구현된 것들에 관련된 블로그 글이다. 1. AI Perception 230331_언리얼 포트폴리오(Project_Zombie_FPS) : AI Perception 글 형식을 살짝 바꾸어 이제 일기 형식이 아니라 제대로 기록해보고 싶어졌다.. 검색 유입이 한두명 있던데 그분.. 공감수 0 댓글수 0 2023. 5. 23.
  • [Unreal Engine4] 포트폴리오(미완성) : MyProject 이전에 만들던 좀비게임 포트폴리오이다. 캐릭터와 원하는 느낌이 너무 이질적이고 무언가 별로 마음에 안들어서 미완성으로 만들고 새 프로젝트로 시작한것이 Project_Zombie_FPS 프로젝트이다. 소개영상은 짧고 패키징하지 않은 언리얼 엔진 상태의 영상이다. p.s.영상에 깜빡하고 좀비 공격과 플레이어 체력 감소를 안넣었다.. 공감수 0 댓글수 0 2023. 5. 18.
  • [C++/Direct2D] 포트폴리오 : 메이플스토리 모작 이전에 포트폴리오로 만든 IOCP 서버를 결합한 메이플스토리 모작 포트폴리오이다. https://youtu.be/pgrcKuHF7sU 첨부 파일은 구현 부가설명 파일이다.. 잘 만든건 아니지만 포트폴리오 중 하나이므로 기록을 위해 글을 썼다. 공감수 0 댓글수 0 2023. 5. 15.
  • 230511_언리얼 포트폴리오(Project_Zombie_FPS) : Item, Inventory & Interaction 이번 글은 프로젝트에서 아이템, 인벤토리 및 상호작용을 어떻게 구현하였는지 소개하는 글이다. 1. 아이템 보통 게임내에는 수많은 아이템이 있고, 이 아이템별로 클래스를 모두 만들어주기엔 비효율적이다. 하나의 클래스를 재사용하거나, 나누더라도 최소한의 분류만을 해주는 것이 효율적일 것이다. 나는 게임 내의 아이템이 모두 사용 가능한 아이템이라 하나의 클래스를 통해 모든 아이템을 구현했다. 그래봤자 몇 개 안되지만.. 하나의 클래스만을 이용하여 구현할때 의문점은 모든 아이템의 외형, 아이콘, 효능 등이 다를 것인데 이걸 어떻게 한가지 클래스로 구현하는지이다. 언리얼 엔진에서는 데이터 테이블을 통해 이를 해결할 수 있다. 우선 원하는 아이템의 정보를 엑셀로 정리한다. 내가 저장한 엑셀은 아래와 같이 정리했다... 공감수 0 댓글수 0 2023. 5. 11.
  • 230503_언리얼 포트폴리오(Project_Zombie_FPS) : Animal 내 포트폴리오 프로젝트에는 사냥 컨텐츠를 만들기 위해 동물을 구현했다. 이 동물 구현에 들어간 것들을 정리하고자 한다. 가장 먼저 동물 캐릭터 클래스를 만들어야 한다. 모든 동물이 공통적으로 가지는 특성을 정리하기 위해 가장 상위 클래스로 AAnimalCharacter 클래스를 만들었다. 모든 동물이 공통적으로 가져야 할 멤버들을 여기 구현하였다. 모든 것을 다루지는 않고, 동물 관련해서 다룰 것들은 아래와 같다. 1. 동물의 발소리 2. 동물이 경사면을 따라 몸을 기울임 3. 동물이 죽었을 때 상호작용을 통해 아이템을 줌 이때 3번은 상호작용 파트를 설명할때 한번에 설명하도록 할 것이다. 모든 동물 클래스의 부모가 되는 AnimalCharacter 클래스의 헤더 일부분이다. #include "Inter.. 공감수 0 댓글수 0 2023. 5. 3.
  • 230418_언리얼 포트폴리오(Project_Zombie_FPS) : Vehicle 이번 시간엔 포트폴리오에 구현한 차량에 대한 글이다. 우선, 언리얼 엔진에는(제 프로젝트는 4.26버전입니다) AWheeledVehicle이라는 클래스가 이미 존재한다. 이 클래스는 APawn을 상속받아 컨트롤러의 조종을 받을 수 있으며 UWheeledVehicleMovementComponent를 가지고 있다. 아쉽게도 이 컴포넌트의 멤버를 바로 사용할 수 없고, WheeledVehicleMovementComponent.h를 추가해야 한다. 또, 메쉬는 Skeletal Mesh를 사용하는데, 이는 Vehicle의 바퀴마다 본을 가지고 있어 차량 회전에 따른 바퀴의 좌우 전환, 바퀴의 회전 등을 구현할 수 있다. 나는 1인칭이긴 하지만 이후 3인칭 모드를 추가하여도 사용할 수 있도록 바퀴의 회전 등을 그대.. 공감수 0 댓글수 2 2023. 4. 18.
  • 230405_언리얼 포트폴리오(Project_Zombie_FPS) : WeaponActor/Bullet(Projectile) 이번 글은 내가 프로젝트에서 무기를 구현한 방식에 대한 글이다. 1. Weapon Rigging(Feat. Blender) 언리얼의 액터는 기본적으로 SceneComponent(좌표, 스케일 등 정보를 담는 컴포넌트)를 가지고 있다. 그런데 내가 원하는 무기는 자신만의 애니메이션이 필요했다. 예를 들어 장전, 저격총의 볼트 액션 등인데, 이를 구현하기 위해서는 무기 또한 스켈레탈 메시로 구현해야 한다. 이를 Rigging(= 무기의 뼈를 생성해주는 것)이라 부른다. Rigging을 하기 위해서 나는 일반적인 스태틱메시에 해당하는 3D Model을 찾고, Blender라는 프로그램을 통해 뼈를 생성하고, 파츠에 할당하였다. Blender를 사용할 줄 몰랐지만 무수한 삽질을 통해 이제 리깅하는 정도는 다룰 .. 공감수 0 댓글수 0 2023. 4. 5.
  • 230331_언리얼 포트폴리오(Project_Zombie_FPS) : AI Perception 글 형식을 살짝 바꾸어 이제 일기 형식이 아니라 제대로 기록해보고 싶어졌다.. 검색 유입이 한두명 있던데 그분들이라도 도움이 되도록!.. 내 얕은 지식으로 인해 헷갈릴 수도 있지만 도움이 되었으면 한다. 오늘은 AI Perception에 청각을 추가하고, 실제 사운드들을 받아 사운드큐를 만들었다. 또, 지형에 맞는 소리를 내도록 switch문으로 사운드큐를 선택하여 출력하도록 하였다. 여기서 AI Perception을 시각과 함께 묶어서 정리해보려 한다. 아래는 언리얼 엔진 사용자라면 항상 참고하게 되는 공식 홈페이지의 AI Perception설명이다. https://docs.unrealengine.com/5.0/en-US/ai-perception-in-unreal-engine/ AI Perception.. 공감수 0 댓글수 0 2023. 3. 31.
  • 230324_언리얼 포트폴리오(Project_Zombie_FPS) 오늘까지도 맵/건물에 대한 고민과 검색을 했고, 앞으로도 진행할 예정 ghost town이라는 키워드로 검색하여 레퍼런스를 좀 찾고, 좀비 사태로 버려진 시골 마을을 구현하는 것이 목표. 내부 인테리어도 직접 손봐야하고, 좀비도 배치해야 할 것 같다. 아 그리고 좀비는 여러종류를 배치해야하는데.. 본이 같은 좀비라면 대량생산이 가능한데 안되겠지..?ㅜㅜ 첫번째 집은 너무 깨끗한데 그냥 플레이어 집으로 하고 출발지 느낌으로 해볼까 싶다.. 아이디어 하나 떠올랐는데 가스레인지 있는 집들은 상호작용 눌러서 고기 익히는게 가능하도록?.. 해볼까 그리고 근접무기도 추가하고 싶지만 애니메이션을 또 찾아야한다.. 인벤토리 디테일도 살려야한다....... 왜이렇게 많을까..ㅜㅜ 포트폴리오 완성은 대체 언제일까.. 공감수 0 댓글수 0 2023. 3. 24.
  • 230320_언리얼 포트폴리오(Project_Zombie_FPS) 어느정도 기본적인 세팅은 됐는데 이제 해야할 것들 1. 아이템 종류 늘리기 > 그냥 시간 문제.. 엑셀과 데이터테이블로 잘 짜놓아서 모델과 이미지 찾는 시간이 다일듯! 2. 무기 종류 늘리기 > ...는 좀 나중에 생각해보자..애니메이션이 좀 오래걸린다.. 3. 맵 만들기(!) > 여기가 핵심.. 있는 맵을 활용할 것인가 만들것인가..? 근데 있는 맵도 그대로 못쓰고 뭔가 에셋 추가를 해야할 것 같은데 이참에 만들어볼까도 고민 진짜 하는중,,왜냐면 오래걸리기 때문.. 코딩보다 이게 더 오래걸리면 그게 맞나 싶기도 하다..어떻게 해결하지? 공감수 0 댓글수 0 2023. 3. 20.
  • 230317_언리얼 포트폴리오(Project_Zombie_FPS) 오늘 각잡고 AR종류도 추가시키기 위해 작업했다. 작업 방식은 FPS 손과 무기 3d model을 받아서 손은 뼈대가 있으므로 그대로 사용하고 무기는 뼈대가 없기때문에 버텍스 그룹 지정, 본을 만들고 연결한 뒤(리깅) 애니메이션 작업을 노가다(기존 애니메이션의 트랜스폼 정보 그대로 베껴쓰기..이거 하면 어지럽다 ㅜㅜ)하는 방식이다.. 아 애니메이션 만들줄은 몰라도 베끼기는 가능하다고~ㅋㅋ 그런데 한번 삽질해봐서 그런지 한 2~3일동안 무기 리깅 & 애니메이션 작업 하던걸 하루안에 해버렸네..괜찮은듯? 이러면 기본무기도 칼 쥐어주고 좀 더 무기 세분화를 해야겠다.. 앞으로 무기 추가에 집중한 후에 무기 관련 함수/상속 정리 깔끔하게 한 뒤에 진도 더 나가자..ㅎㅎ 아유 힘들어 자야지 공감수 0 댓글수 0 2023. 3. 18.
  • 230315_언리얼 포트폴리오(Project_Zombie_FPS) 사슴이 걸어다닐 때 부자연스러운 문제가 있어 다리 회전 + IK + 발목회전 적용을 안하도록 변경 > 그나마 깔끔해졌다 숫사슴도 우선 복붙 수준으로 만들어 놓았고, 늑대도 만드는 중이다. 고민할 사항 1. 늑대의 공격 방법/적 추적 로직 : 끝까지 쫓을 것인가? 아니라면 언제 Enemy를 블랙보드에서 지워줄 것인가? 2. 숫사슴의 공격 여부 : 현재 애니메이션엔 숫사슴의 공격모션이 있음 > 횔용하려면 공격 로직을 추가하고 Attack Animal로 분류해야 할 것 > 그럼 늑대랑 AI를 분리해야 할 수도 있다(늑대는 사냥의미의 공격, 사슴은 방어 의미의 공격이라 생각) 3. 부위별 데미지 추가해야함 > 어떻게? 4. 총알 시네마틱 연출 추가 > 이건 찾아보면 많다..해야지 5. 무기 추가 여부 > 이건 .. 공감수 0 댓글수 0 2023. 3. 15.
  • 230314_언리얼 포트폴리오(Project_Zombie_FPS) 사슴을 구현하는데 너무 오래 걸렸지만 어느정도 해결된 것 같다. HipOffset은 뒷발 기준으로만 하고, IK를 위한 앞발의 Offset은 회전에 의해 변화된 위치까지 고려하여 적용하였다. 문제가 있었는데, 달리는 모션을 하면 자꾸 몸을 뒤집어버리는 현상이 생겼는데 이는 달리는 모션 와중에 다리가 너무 높게 떠서 몸을 기울일 각도를 구할 평면의 Normal벡터값이 이상해진 것 같다 > Trace 광선을 네 다리 모두 성공했을 경우에만 일련의 IK시스템 값을 변화시키도록 적용하였음 앞으로 숫사슴 추가, 좀비 행동패턴 수정 후 늑대 추가(어떻게 할지 고민), 맵에 아이템, 캐릭터 랜덤배치 하는 과정을 거치면 80% 이상 완성될 것 같다..좀 힘내보자! 그리고 나중에 한번 구현 원리같은걸 정리해야하는데..... 공감수 0 댓글수 0 2023. 3. 14.
  • 230313_언리얼 포트폴리오(Project_Zombie_FPS) 딱 방금! 따끈따끈하게 사슴의 몸 기울이기 시스템을 완성하였다. 구현 방식은 다음과 같다. 1. 네 발에서 트레이스 광선을 쏴주고, HitPoint, HitPoint의 Normal Vector, HitPoint와 발 사이의 오프셋(거리) 정보를 받아온다. 2. 앞 발 HitPoint의 평균, 왼쪽/오른쪽 뒷발 HitPoint 총 세 점으로 평면을 만들어 Normal Vector를 구한다(몸의 각도를 결정할 평면, 처음엔 HitPoint의 Normal Vector의 평균을 가지고 하였으나 그러면 계단과 같은 특수한 경우에는 전혀 몸이 움직이질 않는다는 단점이 있어 세 점을 지나는 평면으로 하였다) 3. 해당 평면의 Normal Vector를 사슴의 전방벡터/Z축을 포함하는 평면에 사영시킨다(Projecti.. 공감수 0 댓글수 0 2023. 3. 14.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.