Metaverse 62

Open3D와 SMPL, 딥러닝.. 뭐 그런거

요즘 융합적인 프로젝트를 진행 중이다! 근데 이건 기밀이라서 글을 쓰진 않을거고 여러가지 자료 조사 했던 링크들을 정리해두려고 한다..ㅎㅎ https://meshcapade.wiki/SMPL#mesh-templates--samples Meshcapade Wiki A Wiki on Body-Modelling Technology, maintained by Meshcapade GmbH. meshcapade.wiki SMPL: A Skinned Multi-Person Linear Model (SIGGRAPH Asia 2015) Open3D – A Modern Library for 3D Data Processing Open3D – A Modern Library for 3D Data Processing Introd..

기본 용어 정리

모델 좌표계: 모델(메쉬)를 표현하기 위한 좌표계 모델마다 자체적인 별도의 좌표계를 갖고 있다고 가정 객체 로컬 공간 일반적으로 객체(매쉬)의 중심을 원점으로 하는 좌표계 (좌표계의 원점과 중심이 반드시 일치해야 하는 것은 아님) 월드 좌표계 게임 세계를 하나의 통일된 좌표계로 표현 모든 객체(메쉬)들이 동일한 하나의 좌표계로 표현(배치) 게임 월드 단위 개발자는 게임 월드의 크기와 단위를 결정하기 위해 아티스트와 협력해야 함 실수 표현으로 인한 문제 -> 범위로 표현하기 메쉬의 크기와 이동 속력을 고려해야 함 텍스쳐 매핑을 어떻게 할 것인가도 고려 사항임 모든 객체가 서로 상대적이면서 일관된 크기로 만들어진다면 문제 없음 은면 제거(Back Face Culling) 은면 제거는 관찰자(카메라)가 볼 수..

Metaverse/DirectX 2023.07.24

Scriptable Object

Scriptable Object : 클래스 인스턴스와는 별도로 대량의 데이터를 저장하는 데 사용할 수 있는 데이터 컨테이너 유니티 오브젝트를 상속받은 클래스로 Unity Serialize 시스템을 가지고 있음 serialize: 클래스나 오브젝트를 스트링이나 일차원 배열 형태로 변환하는 것 실제 파일을 열어 보면 저장된 텍스트 내용 확인 가능 데이터 컨테이너로 데이터 공유에 사용할 수 있고, 이를 통해 메모리 사용량 줄일 수 있음 Scriptable Object는 데이터를 참조 형태로 오브젝트에서 가져올 수 있게 함으로써 메모리 할당을 최소화하고 고유한 값을 가질 수 있게 함 주요 사용 사례) 사본이 생성되는 것을 방지하여 프로젝트의 메모리 사용을 줄임 연결된 MonoBehaviour 스크립트에 변경되지..

Metaverse/Unity 2023.07.24

디자인 패턴 요약

상속: A is B 장점) 부모 클래스로부터 물려받은 부분은 다시 쓸 필요가 없으므로 재사용 면에 있어서 효율적임 단점) 부모, 조상 클래스가 될 공통된 최소 필수 집합을 개발자가 미리 예상하기 어려움 컴포넌트들끼리 커플링이 심함 컴포넌트: A has B 각자의 기능을 가지고 있는 스스로 동작하는 독립적인 부품 컴포넌트를 뗀다고 해서 오브젝트의 다른 컴포넌트에 영향이 가는 것은 없음 코드의 의존성을 줄이고 재활용성을 높임 인벤토리 기능은 컴포넌트로 구현하는 것이 좋음 컴포넌트란 : 로직을 기능별로 컴포넌트화하는 것, 기능들을 나누어 각각 독립적인 클래스로 분리 한 개체가 여러 분야를 서로 커플링 없이 다룰 수 있게 해줌 인터페이스 & 다형성과 연관 : 여러 알고리즘을 하나의 추상적인 접근점(인터페이스)를..

Metaverse/Unity 2023.07.24

게임 서버와 클라이언트

패키지 게임: 소규모의 플레이어가 같이 모여서 하는 온라인 게임 (Offline이 가능한 경우도 많음), MOG라고도 함 (Multiple Online Game) 서버 플레이어 세 명 이상이 게임을 하려면 그들의 게임 플레이 상태를 저장하는 곳이 필요하고, 이를 위해 플레이어 중 한 명의 컴퓨터가 모든 플레이어의 게임 플레이 상태를 취합하여 유지하는 역할을 해야 함 패키지 게임에서 게임 서버가 하 역할은 지금 플레이어가 두세 명 혹은 많아야 십여 명 참여하여 게임 플레이를 하는 상태, 즉 세션 처리를 담당하는 것 데디케이티드 서버: 클라이언트 프로그램과 같은 엔진을 사용하지만 렌더링과 사용자 입력 처리를 받지 않고, 순전히 클라이언트 연결을 받는 세션을 처리만 하는 프로그램이 따로 운용하는 경우 MUD(..

Metaverse/Network 2023.07.24

Socket Programming

블로킹 : 디바이스에 처리 요청을 걸어 놓고 응답을 대기하는 함수를 호출할 때 스레드에서 발생하는 대기 현상 소켓뿐만 아니라 파일 핸들에 대한 함수를 호출했을 때도 이러한 대기 현상이 발생하는 것을 모두 블로킹이라고 함 송신 버퍼와 수신 버퍼 송신 버퍼: 일련의 바이트 배열이라고 보면 됨 송신 버퍼의 크기는 고정 되어 있으나, 마음대로 크기를 변경할 수 있음 수신 버퍼가 가득 차면 발생하는 현상 수신 함수가 수신 버퍼에서 데이터를 꺼내는 속도가 운영 체제가 수신 버퍼의 데이터를 채우는 속도보다 느리면 TCP 송신 함수로 송신 버퍼에 데이터를 쌓는 속도보다 수신 함수로 수신 버퍼에서 데이터를 꺼내는 속도가 느리다고 해서 TCP 연결은 끊어지지 않음 (실제 송신 속도가 느린 쪽에 맞추어 작동할 뿐) UDP ..

Metaverse/Network 2023.07.24

컴퓨터 네트워크

클라이언트: 사람이 만지는 컴퓨터 서버: 많은 사람들이 만지는 단말기에 서비스를 제공하는 무인 컴퓨터 -> 클라이언트에서 오는 데이터를 받아서 처리한 후 그 결과를 클라이언트에 회신 OSI 모델: 컴퓨터 네트워크 통신에 대한 국제 표준 -> 이 표준만 잘 지키면 어떤 기기든, 어떤 형태의 통신 선로를 사용하든 컴퓨터 간 통신을 할 수 있음 계층 1: 물리계층 계층 2: 데이터 링크 계층 계층 3: 네트워크 계층 계층 4: 전송 계층 계층 5: 세션 계층 계층 6: 표현 계층 계층 7: 응용 계층 OSI 모델의 계층 2 각 단말기는 고유한 주소를 가짐 단말기는 데이터를 프레임이라는 단위로 주고 받음 보다 많은 컴퓨터를 연결할 때의 문제점 스위치 하나가 연결할 수 있는 단말기 수가 제한되어 있음 단말기들 각..

Metaverse/Network 2023.07.24

Multi Threading

"프로그램을 실행하면 프로세스가 생성됨. 프로세스 안에는 유일한 쓰레드가 있고 그 안에 프로그램 실행" 멀티쓰레드 프로그래밍 활용 용도) 기기에 있는 CPU(Core)를 모두 활용해야 할 때 Single Core의 사용량이 100%가 되지 않으면 멀티쓰레드 프로그래밍을 절대 하면 안됨 오래 걸리는 일 1개와 빨리 끝나는 일 여러 개 같이 해야 할 때 어떤 긴 처리를 진행하는 동안 다른 짧은 일 처리해야 할 때 -> 비동기 IO를 사용하여 프로세스가 I/O의 완료를 기다리지 않게 함 기기에 있는 CPU 모두 활용해야 할 때 (싱글 코어에서 처리 불가하고 CPU의 클럭을 몇 배 높여야 해결될 작업인 경우) ex) FPS 쓰레드의 정체 : "두 가지 일을 동시에 하라"라고 시켰을 때 운영체제는 두 개의 작업을..

Metaverse/Network 2023.07.24

RPG Project - 자료조사

1. 절차적 애니메이션 개요) - 대부분의 게임에서 캐릭터 애니메이션은 정적인데, 한 오브젝트가 다른 오브젝트와 상호작용을 해야 할 때 절차적 애니메이션 사용 - 상호작용은 단순히 애니메이션을 재생하는 것이 아니라 주변 오브젝트에 따라 캐릭터의 움직임이 영향을 받는 것을 말함 정의) 다양한 동작을 위해 실시간으로 애니메이션을 자동 생성하는 것 유니티에서는 애니메이션 리깅이라는 기능을 도입해 보다 쉽게 구현하도록 함 애니메이션 리깅) 캐릭터의 뼈대 - 릭(Rig) 릭은 캐릭터의 개별 뼈를 구성하는 오브젝트의 계층구조를 가짐 기본적인 애니메이션 작동 과정) 캐릭터는 애니메이터에 의해 결정된 애니메이션을 재생 해당 애니메이션에 의해 뼈대가 이동 캐릭터의 메시는 스킨 메시 렌더러를 통해 뼈대를 따라 이동 2. ..

메타버스 게임 디자인 - 최종

어제 메겜디 최종 평가를 진행했다. 서로 바꿔서 플레이 해봤는데, 디자인과 분들은 역시 다들 예쁜 맵을 만드셨다. 그래도 옆에 앉은 분이 내 게임 플레이해보면서 이거 진짜 재밌다고 말씀해주셔서 행복했다.... 그리고 진짜 재밌어 하시는 것 같아서 뿌듯했다. 내가 다른 분들꺼 플레이할 땐 나무 곡괭이 만들 줄 몰라서 손으로 돌 부수다가 놀림 받았다.. 진짜 웃으시던데,, 저 바보는 아니에요ㅠ 용암에 빠지거나 세계 밖으로 떨어지거나 뒤로 가거나 다음 맵으로 통과 4가지 버튼이 랜덤으로 배정되어 있는데, 이 부분 재밌어 하셨다ㅎㅎ