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

2018년 5월 31일 목요일

[Unity Plugin] 외부 플러그인 사용해 봤던것들 위주로 정리

[Unity] 외부 플러그인 사용해 봤던것들 위주로 정리해 보았다.

1. IAP
  • OneStore
    https://dev.onestore.co.kr
    Android 기반 OneStore(3개 통신사 통합 스토어)
    장점 : 한국어 메뉴얼
    단점 : 구글 스토어와 따로 빌드해야함(2번), 코드가 확장하기 힘들다
  • Ultimate Mobile $50 / Unity Asset
    http://u3d.as/8Ev
    Native(AOS, IOS) 관련된것을 모아놓은 Plugin
    장점 : Iap, Social(Facebook, instagram..)등 Interface로 제공하여 하나의 코드로 다양한 OS를 지원
    단점 : 너무 많은 기능을 제공하여 필요없는 DLL파일이 많이 추가 되며, 다른 DLL과 충돌 발생

1. 광고
  • UnityAds
    http://www.unityads.co.kr
    Unity 에서 제공하는 광고 플렛폼
    장점 : Unity 엔진에 최적화, 쉬운 설정 및 API 사용, 광고 요청에 딜레이가 가장 적다
    단점 : 일일 광고 수 제한
  • AdMob & Admob Mediation
    https://apps.admob.com
    구글의 광고 플렛폼으로 다양한 광고를 제공
    장점 : 구글에서 제공하여 광고제공이 안정적이다.
    단점 : 제공하는 Plugin에 버그가 많다. play services resolver를 사용하여 자동 업데이트 기능이 제공되지만, Meta파일을 계속 갱신하여 협업이 힘들다. 광고 요청과 시청 사이 딜레이가 길다
  • Vungle
    https://vungle.co.kr
    Vungle 광고 플렛폼
    장점 : 한글 문서 제공
    단점 : 광고 요청과 시청 사이 딜레이가 길다.
  • Mopub Mediation
    https://www.mopub.com
    여러 광고플렛폼들을 모아서 돌려가며 보여주는 플랫폼
    장점 : 보여줄 광고가 없으면 다른 광고플렛폼으로 알아서 돌려줌(Unity ads -> Vungle)
    단점 : 플렛폼별 광고 시간, 가격등 직접 설정 해 줘야하는데 복잡함. 웹페이지가 한글을 미지원, 기술 지원을 위해서는 영어를..
    각각 플렛폼별 SDK를 따로 붙여줘야하며, SDK 버전이 올라가면 광고가 않나오는 경우가 많다(2015년 기준)

1. Firebase
  • FCM
    https://console.firebase.google.com
    Firebase Coud Message로 Push Notification 기능 제공제공
    장점 : 쉬운 설정, 웹페이지에서 Notification기능 제공 AOS, IOS 둘다 제공
    단점 : OAuth 관련 에러가 많이 발생하며, 로그가 부실하다. 제공하는 Plugin에 버그가 많다. play services resolver를 사용하여 자동 업데이트 기능이 제동되지만, Meta파일을 계속 갱신하여 협업이 힘들다.

1. Analytics

1. Social
  • Facebook
    https://developers.facebook.com
    Facebook 친구 정보, 담벼락 글쓰기 기능을 많이 사용하지만, Facebook SDK을 통해 광고를 할때 유입률 등의 정보를 제공해 준다.
  • 네이버 PLUG
    https://www.plug.game
    게임내에 Naver Cafe를 간단히 붙일수 있다.
    장점 : 쉽게 Naver Cafe를 붙일수 있다. Plug SDK에서 게임동영상저장, 스크린샷 같은 기능을 제공
    단점 : 불안한 SDK, 부실한 메뉴얼, 에러에 대한 늦은 피드백

1. 난독화 - 유니티 dll 을 암호화 (http://lenaweb.tistory.com/44)
  • CodeEncipher $125 / Unity Asset
    http://u3d.as/to4
    DLL파일을 난독화 하여 외부툴에서 볼수 없게 만든다.
    장점 : 간단한 버튼 한번으로 난독화 APK를 뽑을수 있음
    단점 : 외부 SDK와 충돌하는 경우가 있음

1. Hack
  • Anti-Cheat Toolkit $30 / Unity Asset
    http://u3d.as/59N
    Hack을 막아주는 Plugin
    (Speed Cheat, Encrypt Prefs, Code Stage, Time Cheat, PlayerPrefs)
    장점 : 쉽게 메모리 변조등 Hack을 막아준다.
    단점 : 확인 결과 Speed Hack은 막을수가 없었다.(2015년)

2018년 2월 8일 목요일

[Unreal4] CPP/Crash Error UE4Editor-Navmesh.dll Exception Thrown 발생

Unreal 4.15 Crash Error
언리얼 엔진 소스로 개발 중
UE4Editor-Navmesh.dll Exception Thrown 발생

개발 환경
  • UE 4.15.3-release
  • Visual Studio 2017(15.5.2)
  • Development Editor, Win64

c:\Work\UnrealEngine\UnrealEngine-4.15\Engine\Source\Runtime\Navmesh\Private\Detour\DetourNavMesh.cpp

원인

  • Visual Stdio 2017 버전15.5.2 버전 에러
해결

  1. Visual Stdio 2017 버전을 15.5.3 이상 버전으로 업데이트(Visual Studio Installer 실행)
  2. 프로젝트 폴더의 Intermediate를 삭제
  3. VS에서 "솔루션 정리" -> "솔루션 다시 빌드"


아래 링크 참고

2018년 2월 1일 목요일

[Unreal4] 엔진 빌드 에러 - error C2243: 형식 캐스팅 : 변환이 있지만 액세스할 수 없습니다.

[Unreal] 4.15 엔진 빌드 에러(VS2017)

error C2243: 형식 캐스팅


34>ERROR : UBT error : Failed to produce item: C:\Work\UnrealEngine\UnrealEngine-4.15\Engine\Plugins\Editor\AudioCapture\Binaries\Win64\UE4Editor-AudioCapture.dll
34>Total build time: 2432.55 seconds (Local executor: 0.00 seconds)

34>Module.AudioCapture.cpp
34>C:\Work\UnrealEngine\UnrealEngine-4.15\Engine\Plugins\Editor\AudioCapture\Source\AudioCapture\Private\AudioCapture.cpp(33): error C2243: '형식 캐스팅': 'FAudioRecorder *'에서 'ISequenceAudioRecorder *'(으)로의 변환이 있지만 액세스할 수 없습니다.

원인
error C2243 메세지는 클래스 상속부분에서 발생합니다.

class B : A
{
...
};

해결

class B : public A
{
...
};

부모 클래스를 public 상속 받는다.
public을 빼고 클래스 이름으로만 상속 처리를 하게되면 기본적으로 private이 되어 에러가 발생합니다.

그림설명

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 추가