전체 글 33

Unity에서 A* 알고리즘 구현해보기

개념A* 알고리즘은 출발 지점에서 목표 지점까지의 최단 경로를 찾는 그래프 탐색 알고리즘이다.다익스트라 알고리즘을 현실 세계에 적용하기에는 실제 경로를 모두 노드화시켜야 하고, 출근길 정체 같은 다양한 변수를 반영하기 힘들어 다익스트라를 확장해 만들었다.   A* 알고리즘은$g(x)$ : 현재 위치까지의 비용과$h(x)$ : 현재 위치에서 도착 위치까지의 예상 비용에 대해$f(x) = g(x) + h(x)$에 대해 $f(x)$가 최소가 되는 지점을 먼저 탐색한다.다익스트라 알고리즘에 $h(x)$라는 가중치를 두어 탐색을 더 빠르고 효율적으로 하는 알고리즘이다.$h(x) = 0$이면 A* 알고리즘은 다익스트라 알고리즘이 된다.여기서 예상 비용 $h(x)$은 정확히 구할 수 없는 값이다. 우리는 여기서 He..

DB - 4. Database Design Using the E-R Model

Design ProcessDesign PhaseDB 디자인은Initial Phase : 사용자가 필요할 데이터를 모두 정리Second Phase : 데이터 모델을 선정선택한 데이터 모델의 개념을 적용한다.데이터 모델의 요구를 데이터베이스 스키마로 변환한다.Final Phase : 추상적인 데이터 모델을 데이터베이스에 적용Logical Design : 데이터베이스 스키마 적용Physical Design : 데이터베이스의 물리적 구조 결정의 과정을 거친다.Design AlternativeDB를 디자인할 때 이 두 가지는 피해야 한다.Redundancy : 정보가 중복되면 두 정보가 일치한다는 보장이 없다.Incompleteness : 설계가 불완전하면 특정 부분을 모델링하기 어렵거나 불가능하다.그렇다고 피하..

DB - 1. Intro

What is Database System?데이터베이스기업의 고객 정보나, 학교의 학생 정보처럼, 특정 기관은 자신이 필요한 정보를 저장해둔다. 이러한 정보를 데이터라고 한다.데이터베이스는 데이터의 모임이다. 정보는 텍스트, 숫자, 이미지 등 다양한 형식이며, 데이터베이스를 통해 이를 체계적으로 저장하고, 읽기, 쓰기, 수정 등이 가능하다.| student_id | student_name | student_age | student_dept ||------------|----------------|-------------|-------------------|| 1 | John Doe | 20 | Computer Science || 2 ..

DB - 0. Index

1. Intro2. Relational Model3. SQL4. Database Design Using the E-R Model5. Normalization6. Data Indexing7. Transaction기업의 고객 정보나, 학교의 학생 정보처럼, 특정 기관은 자신이 필요한 정보를 저장해둔다. 이러한 정보를 데이터라고 한다.데이터베이스는 데이터의 모임이다. 정보는 텍스트, 숫자, 이미지 등 다양한 형식이며, 데이터베이스를 통해 이를 체계적으로 저장하고, 읽기, 쓰기, 수정 등이 가능하다.보통은 표의 형식으로 데이터를 보여줄 수 있다.포스트에서 예시로 사용할 데이터베이스는 가상의 대학교 학사정보 데이터베이스를 사용할 것이다.학생, 교수, 학과 등의 정보를 가지고 있는 데이터베이스로, 예시이기 때문에 ..

1. UObject에 대해 알아보자

언리얼 엔진에서 C++ 클래스를 생성할 때, 기본이 되는 클래스를 선택할 수 있다. 새로 생성한 클래스는 선택한 클래스를 상속받는다.모든 클래스에서 언리얼 엔진의 모든 클래스의 부모 클래스인 UObject 클래스를 찾을 수 있다.여기서 든 의문점은 "클래스를 만들면 UObject를 상속받아야 하는가?"였다.일단 Object.h에서 UObject를 찾아보았다./*============================================================================= Object.h: Direct base class for all UE objects====================================================================..

Log 4 - 언리얼 버전을 올려보자

언리얼 5.4가 출시되었다.이번 패치에선 애니메이션을 더 편하게 작업할 수 있는 많은 기능이 추가되었다.기존 5.1 프로젝트를 5.4 프로젝트로 올리는 마이그레이션을 해보자.※ 4.X에서 5.X로 올리는 작업은 추가 작업이 필요하다.언리얼 엔진 5 마이그레이션 가이드 | Epic Developer Community (epicgames.com) 언리얼 엔진 5 마이그레이션 가이드언리얼 엔진 4 프로젝트를 언리얼 엔진 5로 이주하는 방법 및 요구사항입니다.dev.epicgames.com아직 5.4에서 지원되지 않는 플러그인이 있으면 에러가 나니 플러그인을 끄고 마이그레이션을 진행해야 한다.먼저 언리얼 5.4를 다운받는다.5.4를 실행해 변환할 프로젝트를 선택한다.이런 경고 메시지가 뜨는데, 안전한 작업을 위..

Log 3 - 언리얼 협업은 어떻게 해야 할까 III

결국 1안은 해외 서버의 한계로 폐지됐다. 2안으로 넘어가자. 2안 고정된 에셋은 Google Drive에, 코드, 블루프린트, 기타 생성물은 Github를 통해 공유한다. 여기서 고정된 에셋은 어떤 것이 있을까? Source : 항상 바뀌고, 계속 추가된다. Content map : 자주 바뀐다. Skeletal Mesh : 캐릭터 스켈레탈 메시는 소켓을 추가하는 등의 작업에서 변경된다. Static Mesh : 수정할 일이 없......을걸요? Rig : 양이 적지만 직접 생성하는 경우가 많고 수정할 일은 적을 것 같다. Material : 거의 수정할 일이 없다. Texture : 수정할 일이 없다. Animation : 가끔 수정할 것 같다. Sound : 수정할 일이 없다. 그러면 Static ..

Log 2 - 언리얼 협업은 어떻게 해야 할까 II

이번에는 서버에 Perforce를 설치해 사용해보자. Git이 언리얼 에셋을 효율적으로 다루지 못하는 거라면 속도가 빨라질 것이다. 설치 Download Software | Perforce Perforce는 사용자가 쓰는 Helix Client(P4V)와 서버에서 돌아가는 Helix Core Server(P4D), 관리자용 프로그램인 Helix Admin(P4Admin)이 있다. 서버에서 Helix Core Server 프로그램이 돌아가면 Helix Client로 개발자 컴퓨터로 서버에 접속해 작업할 수 있다. P4V 설치 일단 Vultr에 사용자 perforce를 만든다. > useradd perforce Vultr 서버에 P4D를 설치해보자. 윈도우로 다운로드 사이트에 들어간다. Vultr의 운영체제..