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

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 간에 접근이 되지 않는 상황으로 방화벽에서 포트를 허용해주면 된다.

2017년 9월 18일 월요일

[Unreal4] Dedicated Server Bulid

[Unreal4] CPP / 데디케이트 서버 빌드

- 빌드 전 게임 프로젝트를 패키지 해놓아야한다. Editor에서 Win64로 Package



1. Unreal4 엔진 소스코드 다운로드
검색 사이트에서 "Unreal Git"검색
GitHub페이지로 이동 (계정 생성은 다루지 않는다.)



EpicGames github에서 풀소스 다운로드(계정 생성은 다루지 않는다.)
https://github.com/EpicGames
  1. "Branch" 선택
  2. 다운로드할 "소스 버전"을 선택
  3. "Clone of download"선택
  4. "Download ZIP"

압축 해제 후 해당 폴더의 "Setup.bat"를 실행

콘솔창이 뜨면서 필요한 파일을 다운로드 한다. 

"GenerateProjectFiles.bat" 파일을 실행
프로젝트 파일 생성

2. Unreal4 엔진 소스 빌드
UE4.sin 실행

"Development Editor" 확인
"UE4" 프로젝트 우클릭 "시작프로젝트로 설정"
"UE4" 프로젝트 "빌드"


3. 나의 프로젝트 Server.Target 설정
프로젝트에서 "Source"폴더 선택 후 MyProjectServer.Target.cs 파일을 생성한다.
MyProjectServer.Target.cs  파일 편집(4.15용)
// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.

using UnrealBuildTool;
using System.Collections.Generic;

[SupportedPlatforms(UnrealPlatformClass.Server)]
public class myVRServerTarget : TargetRules
{
    public myVRServerTarget(TargetInfo Target)
    {
        Type = TargetType.Server;
        bUsesSteam = false;
    }

    //
    // TargetRules interface.
    //
    public override void SetupBinaries
    (
        TargetInfo Target,
        ref List<UEBuildBinaryConfiguration> OutBuildBinaryConfigurations,
        ref List<string> OutExtraModuleNames
    )
    {
        OutExtraModuleNames.Add("myVR");
    }
}




나의 프로젝트를 선택 후 "Switch Unreal Engine version"으로 빌드한 엔진 프로젝트를 선택한다.


myVR.sln 파일을 클릭하여 Visual Studio 실행

"나의 프로젝트" 마우스 우클릭 후 "시작프로젝트로 설정"

"Development Editor" 확인 "빌드"

"Development Server" 확인 "빌드"

Binaries폴더에 빌드한 Server.exe파일을 미리 Package해 놓은 프로젝트 폴더로 복사한다
D:\Work\myVR\myVR\Binaries\Win64
WindowsNoEditor\myVR\Binaries\Win64

myVRServer.exe 파일의 "바로가기 생성" 후 속성 편집
"대상"의 마지막에 "-log"를 넣는다.(콘솔창에서 로그를 볼수 있다)