세상사는 이야기 / 도움이 되었다면 배너 클릭 부탁드려요~ →→→

2017년 11월 21일 화요일

[Unreal4] PIMAX HMD 연동

[Unreal4] PIMAX HMD 연동

HMD 기기중 가장 가격이 싼(171121기준 $299) PIMAX 연동과정을 설명한다.


1. PIMAX 관리 프로그램인 PiPlay 다운로드 받은 후 설치한다.

PIMAX 홈페이지




홈페이지 하단 DownLoad 클릭 또는 아래 링크



다운로드한 PiPlay_Setup_x.zip 파일의 압축 해제 한다.
압축해제 한 PiPlay_Setup_x 폴더에서 PiPlay_Setup_x.exe 설치


2. PIMAX Unreal SDK 설치

PiUnrealSDKEN.pdf 참고




Unreal Plugin 파일 다운로드 후 설치
pvr_unreal_sdk_setup_x.exe



C:\Program Files\Pimax\Sdk\Unreal4_plugin폴더에 해당 SDK 버전 확인 후 폴더 선택
버전 안의 PVR폴더를 내 프로젝트 Plugins 폴더로 복사

프로젝트 실행 후 편집 -> Plugins -> Virtual Reality -> StemmVR Enable Remove


VR 프리뷰로 실행
끝~


PIMAX 에러(4.15)
게임(에디터) 실행중 크래쉬 발생

Log파일 확인

LockCnt.GetValue() == 0
  • LogWindows:Error: Assertion failed: LockCnt.GetValue() == 0 [File:e:\yjd\project\ovr_sdk_win_0.3.2\OculusSDK\UnrealPlugin415\Plugins\PVR\Source\PVR\Private\PVRCommon.cpp] [Line: 35]
파이맥스 소스에 예외처리가 되어 있지 않아서 생기는 오류(바이너리 파일 확인할 수 없음)

원인 : 파이맥스(HDMI, USB)가 연결되어 있지 않아서 생기는 오류이다.

해결 : 파이맥스 HDMI와 USB를 연결 확인

2017년 10월 30일 월요일

[Unreal4]네비매시 안될때 확인

[Unreal4] 네비매시, Trigger, Collision 안될때 확인

StreamLevel을 이용해 Spline 작업중 적캐릭터가 움직이지 않는 현상발견

에디터에서 "퍼시스턴트 레벨"에서 네비매시가 있는 맵을 토글(true)하고 실행하면 잘되지만 쿠킹이나 uproject로 실행 했을 경우 적캐릭터가 움직이지 않았다.

원인은 StreamLevel 사용 시 네비매시가 제대로 작동하지 않아서 인듯하다.

해결
에디터 개인설정 -> 레벨 에디터 -> Miscellaneous -> Update Navigation Automatically 체크를 해제 -> 네비매시 빌드


2017년 10월 25일 수요일

[Unreal4] CrashReportClient 확인 방법

[Unreal4] CrashReportClient 확인 방법

CPP로 코딩을 하다 에디터에서 테스트 중 Crash가 나면 dump파일로 해당지점을 확인할 수 있다.

아래처럼 click herer to view directory를 클릭하여 해당 폴더로 이동한다.

폴더에서 dmp파일을 클릭한다.(VS가 깔려 있어야함)

네이티브 전용(으)로 디버그 클릭

중단점으로 이동하여 에러가 방생한 위치로 이동

콜스택을 눌러서 위치를 확인 후 소스코드를 수정한다.

2017년 9월 27일 수요일

[Unreal4] 모듈의 모든 소스 파일에 Precompiled Header가 먼저 포함되어야 한다는 에러(4.15)

[Unreal4] 모듈의 모든 소스 파일에 Precompiled Header가 먼저 포함되어야 한다는 에러(4.15)

플러그인을 4.13에서 4.15버전으로 교체 후 빌드시 에러 발생
  • 1>EXEC : error : All source files in module "OptitrackNatnet" must include the same precompiled header first.Currently "d:\myVR\Plugins\OptiTrack\OptitrackNatnet\Source\OptitrackNatnet\Classes\OptitrackClientOrigin.h" is included by most of the source files.The following source files are not including "d:\myVR\Plugins\OptiTrack\OptitrackNatnet\Source\OptitrackNatnet\Classes\OptitrackClientOrigin.h" as their first include:
  • 1>d:\myVR\Plugins\OptiTrack\OptitrackNatnet\Source\OptitrackNatnet\Private\OptitrackHmdPawn.cpp (including d:\myVR\Plugins\OptiTrack\OptitrackNatnet\Source\OptitrackNatnet\Private\OptitrackNatnetPrivatePCH.h)
  • 번역
    1>EXEC : 오류 : 모듈 "OptitrackNatnet"의 모든 소스 파일에 Precompiled Header가 먼저 포함되어야합니다.

cpp 파일에 Precompiled Header가 정의되지 않은 경우에 발생하는 오류이다.
cpp 첫 줄에 (플러그인 이름)PrivatePCH.h 파일을 인클루드 해야 한다.

예 : 플러그인 이름이 "PluginTEST"인 경우
samplePluginTest.cpp
// cpp 파일의 시작 부분에 추가한다.
 #include "PluginTESTPrivatePCH.h"

2017년 9월 26일 화요일

[Unreal4] Mesh를 부모 소켓 좌표로 이동

[Unreal4] Mesh를 부모 소켓 좌표로 이동

Unreal은 Mesh를 부모 소켓 좌표로 자식들을 붙일수 있다.
사용할 Mesh에 소켓 생성 후 생성할 좌표로 이동시킨다.(Mesh의 피벗 및 원점 확인)

옆에 붙일 Mesh를 "그림 오른쪽 아래서 처럼" 부모로 드래그하면 만든 소켓이 나온다. 해당소켓을 선택하면
(아래 그림의 좌표표시는 피벗 위치이다. 소켓이 아님)

소켓위치에 Mesh가 이동한 것을 볼수있다.



[Unreal4] Editor상에서 Mesh 피벗 위치, Mesh 크기 변경, Mesh 병합

[Unreal4] Editor상에서 Mesh 피벗 위치, Mesh  크기 변경, Mesh 병합

1. 액터 병합을 사용해 Mesh 피벗 위치, Mesh 크기 변경
Mesh의 크기가 너무 크거나 피벗 위치가 잘못 되었을 경우 Max를 이용하지 않고 Editor 상에서 쉽게 변경할수 있다.

Mesh에 크기를 변경하고 피벗을 바꿀 Mesh를 선택하고(여러개를 선택해도 된다) 피봇 점이될 부분을 원점(0, 0, 0)에 위치 시킨다.
  • Mesh를 우클릭하여 "피벗" -> "여기에 비벗오프셋설정(스냅)"을 이용하면 쉽게 할수 있다

"액터 병합"을 통해 액터를 변경한다.
창 -> 개발자 툴 -> 액터 병합

"Pivot Pint at Zero"를 체크
소스액터를 바꾸려면 "소스 액터 대체" 체크

확인


2. 액터 병합을 사용해 Mesh 병합
병합할 메쉬를 월드 아웃라이너에서 선택한다.

창 -> 개발자 툴 -> 액터 병합 선택 후
Pivot Pint at Zero를 체크

소스액터를 바꾸려면 소스 액터 대체 체크


 확인

2017년 9월 21일 목요일

[Unreal4] 개발 중 Starter Content 추가

[Unreal4 ]개발 중 Starter Content 추가

개발 중 Starter Content가 필요할때가 있다.
추가 방법은

콘텐츠 브라우저 -> "신규 추가" -> "피처 또는 콘텐츠 팩 추가"

콘텐츠 팩 -> Starter Content 추가

2017년 9월 20일 수요일

[Unreal4 ]SpercifierTool 사용법

[Unreal4] SpercifierTool 사용법

공식 사이트

Visual Studio 확장 도구 중 SpercifierTool 이라는 것이 있다.
언리얼 지정자 매크로가 익숙하지 않은 사용자에게 익숙해 지기 전까지 쓰면 좋을듯 하다.
UFUNCTION
UPROPERTY
UCLASS

설치 하기
도구 -> "확장 및 업데이트" -> 검색 결과 -> Unreal 검색 -> SpercifierTool 설치
사용법
UFUNCTION 우클릭 -> Edit Specifiers -> 해당 인자 클릭 후 갑 설정

[Unreal4] 처음 설정 정리 - 권장 사항

[Unreal4] 처음 설정 정리 - 권장 사항
Unreal 을 처음 설치하고 필요한 것들을 정리 해 놓았다.

참고 자료
UE4 용 Visual Studio 셋업하기
UnrealVS 익스텐션 (2013, 2015, 2017용)

1. Visual Studio 설정
1.1  "솔로션 구성" 너비 수정
아래 처럼 "솔로션 구성"의 속성이 잘 않보이는 것을 수정한다.
"도구 모음 옵션 선택" -> "단추 추가/제거" -> "사용자 지정" 으로 들어간다.

"사용자 지정"에서 명령 -> "도구모음" 표준 -> "솔루션 구성" -> "선택 사항 수정" -> 너비 : 200 으로 수정

1.2 언리얼 엔진에서는 "Error List (오류 목록)" 창을 비활성화시킬 것을 추천한다.
도구 -> 옵션 ->  프로젝트 및 솔루션 -> 일반 -> "오류로 인해 빌드가 종료될 때 항상 오류 목록 표시" 체크 해제


2. UnrealVS 설정(설치는 위 링크 참조)
2.1 "Build Startup Proejct" 버튼 추가
1. "도구 모음 옵션 선택" -> "단추 추가/제거" -> "사용자 지정"2. "사용자 지정" -> 명령 -> 도구 모음 : UnrealVS -> "명령 추가"3. "명령 추가" -> UnrealVS -> "Build Startup Proejct" 선택 -> 확인

2.2 빌드 단축 키 연결 "Build Startup Proejct"
도구 -> 옵션 -> 환경 -> 키보드
 "다음 문자열을 포함하는 명령 표시" 아래 빈칸 클릭 -> "UnrealVS"로 검색 -> "UnrealVS.BuildStartupProject" 선택 -> "바로가기 키 누르기" 아래 빈칸 클릭 -> "Ctrl+Shift+Alt+B" 키 4가지를 같이 누른 후 -> 할당  -> 확인

Ctrl+Shift+Alt+B" 키 4가지를 같이 누른 후 "출력"창 확인

3. 에디터 설정
3.1 새에디터창(PIE) 크기 설정
"플레이" 아이콘 옆 "플레이 모드 및 플레이세팅 변경" 클릭 -> 고급 세팅
레벨 에디터 -> 플레이 -> Play in New Window -> 새창 크기 설정(폭 높이)

3.2 에디터에서 마우스 우클릭후 WASD로 이동될때 우클릭없이 이동할수 있게 하는법(필요시만)
"플레이" 아이콘 옆 "플레이 모드 및 플레이세팅 변경" 클릭 -> 고급 세팅 
레벨 에디터 -> 뷰포트-> Flight Camera Control Type : Use WASD For Camera Controls

2017년 9월 19일 화요일

[OptiTrack Motive] VR Warking Attraction 설정

[OptiTrack Motive] VR Warking Attraction 설정


모션 캡쳐 장비 OptiTrack을 VR Warking Attraction으로 사용하기 위한 설정을 정리하였다 


1. Motive를 실행
2. Data Streaming 메뉴
데이터를 송수신 하기 위해서는 반드시 "Broadcast From Data"가 체크 되어 있어야 함
  • Broadcast From Data : Check
  • Local Interdace : 현재 사용하고 있는 PC IP로 바꾸고

3. Streaming Setttings에서 OptiTrack 의 불필요한 Streaming 설정을 전부 끈다
(모션 캡쳐 복장을 하고 해당 데이터를 보낼경우 Stream Local Rigid Bodies, Stream Skeleton을 True로 설정)
  • Stream Rigid Bodies : True
  • 나머지는 전부 : False


Error : Socket error 10054 / 모티브 서버PC를 바꾸었거나 설정을 다시 하는 경우 발생 
해결 : Streaming Settings에 모티브서버 IP를 확인해 보자

[Unreal4] 라이트맵 분산 빌드

[Unreal4] 라이트맵 분산 빌드

언리얼3에서 부터 있는 내용이지만 모르는 분들이 있어 정리 하겠다.

라이팅 빌드는 많은 시간이 걸린다.
여러 PC를 활용하여 라이팅 빌드를 분산하면, 빌드 시간을 단축할수 있다
  • 여러 PC가 동일 네트워크 내에 있어야 함.
언리얼 에디터에서 라이트맵 빌드할 때 Swarm을 사용하여 분산 빌드가 가능하다.
사용을 위해서는 Coordinator 설정과 Agent 설정이 필요하다.

* Coordinator 설정
엔진 설치 폴더의 Engine/Binaries/DotNET 폴더에서 SwarmCoordinator.exe 를 실행하자.

 SwarmCoordinator


* Agent 설정
엔진 설치 폴더의 Engine/Binaries/DotNEt 폴더에서 SwarmAgent.exe 를 실행.

윈도우 오른쪽 아래 "시스템 트레이"에 SwarmAgent 아이콘이 생기는데 더블 클릭하면 설정창이 뜬다.

Settings 탭 설정
  • CacheFoder : 필요한 파일을 다운받아서 작업하는 폴더
  • ShowDeveloperMenu : 개발자 설정 메뉴를 보이게하기
  • AgentGroupName : 실행한 Agent 의 그룹명
  • AllowedRemoteAgentGroup : 허용할 Agent 그룹명
  • AllowedRemoteAgentName : 허용할 Agent PC 명( 모든 PC를 허용 * )
  • CoordinatorRemotingHost : 접속할 Coordinate PC 명 (NetBios 명칭) - SERVER (here IP or name of coordinator computer)

Editor에서 "빌드"를 눌르면 Swarm Agent가 알아서 실행된다.


* 문제
1. Coordinator 에서 Agent 목록이 뜨질 않는다.
coordinator 는 TCP 8009 포트를 사용한다. 포트를 확인

2. 빌드 시에 Agent 에서 "failed to connect" 메시지
빌드 시에 Agent 에서 "failed to connect" 라는 메시지가 뜨면서 빌드를 못하고 있다.

Agent 간에 접근이 되지 않는 상황으로 방화벽에서 포트를 허용해주면 된다.