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

2017년 8월 28일 월요일

[Unreal4] 참조되지 않은 데이터 Package에 Cook 하기

[Unreal4] 참조되지 않은 데이터 Package에 Cook 하기

CPP에서만 로드 했던 데이터가 에디터에서는 잘되지만 Package하여 실행하면 파일이 없어서 로드할수 없었다.
한번이라도 참조 하지 않으면 Package에서 제외 되어서 생기는 형상이다.

Package 후 실행하면 Error
UDataTable* dataTable = Cast<UDataTable>(StaticLoadObject(UDataTable::StaticClass(), NULL, *TEXT("DataTable'/Game/Data/Character/CharacterData.CharacterData'")));
if (dataTable == null)
     // !! Error

아래 처럼 패키징 설정에서 강제로 에셋 디렉토리를 넣어준다.
편집 -> "프로젝트 세팅" -> 패키징 -> "Additional Asset Directories to Cook" -> "추가할 Directory"


2017년 8월 23일 수요일

[Unreal4] 소스 콘트롤 사용법(SVN)

[Unreal4] 소스 콘트롤 사용법(SVN)

기본 참고 문서

해당문서는 SVN 설정은 다루지 않는다.
해당문서는 p4merge 설치는 다루지 않는다.

탐색기에서 SVN을 업데이트를 하면 바이너리 파일(uasset - 블루프린트) 충돌 시 Merge가 되지 않았다. 하지만 언리얼에서 소스콘트롤을 지원하여 블루프린트(uasset)파일 Merge가 가능하다

우선 "소스 콘트롤"을 켜야한다.

제공사를  선택(저는 "Subversion") 후 "Repository"에 해당 SVN URL을 입력하고 "ID, Password"를 넣고 "세팅 수락"을 누른다.

소스 콘트롤이 연결되었는지 확인

커밋한 파일들 확인(히스토리도 볼수 있다)

내가 수정한 파일을 저장하면 해당 애셋을 체크아웃(락)하여 다른 사람이 수정 할 수 없도록 할 수 있다


블루프린트 Merge
언리얼 "소스 콘트롤"을 사용하면 블루프린트의 Merge도 그래프로 가능하다
하지만 사용을 위해서는 p4merge가 깔려 있어야 한다.
p4merge를 다운받은 후 설치(Skip registration을 눌르면 정보 입력없이 바로 다운로드 받을수 있다.)
https://www.perforce.com/downloads/visual-merge-tool
p4merge를 설치한 경노로 변경
편집 -> 에디터 개인설정 -> 일반 -> 로드 & 저장 -> Source Control -> Tool for diffing text의 p4merge.exe를 C:/Program Files/Perforce/p4merge.exe로 수정

에셋 선택 후 마우스 우클릭을 하면 Merge 및 히스토리에 따른 수정사항을 확인할 수 있다.

선택한 블루프린트의 바뀐 부분을 한눈에 볼수 있다.



2017년 8월 22일 화요일

[Unreal4] Asset 현지화(Localization )

[Unreal4] Asset Localization(Texture, Image, Sound)


언리얼 문서에 Asset(Texture, Sound) 현지화 관련 한글문서가 없어서 정리하였다.


현지화 기본 참고문서
http://historia.co.jp/archives/6158

(출처는 필수! 사진을 클릭하면 크게 보입니다.)

프로젝트내 Asset 현지화 폴더명은 "L10N"이다.
처음에는 "L10N" 폴더가 보이지 않는다.
  • Editor에서 "L10N" 애셋폴더를 만들면 사용중이라고 나온다.


폴더를 확인하려면 콘텐츠 브라우저 오른쪽 아래 "뷰옵션"에서 "현지화된 에셋표시"를 선택한다.

위처럼 해도 폴더가 나타나지 않으면
아래와 같이 "애셋현지화 파일"을 만들면" L10N"폴더가 생성된다.
컨텐츠 브라우저에서 사용할 Texutre(Asset) 우 클릭 ->" 애셋 현지화" -> "현지화된 애셋 생성" -> 사용할 국가



"탐색기"로 들어가서 사용할 국가의 "Folder"를 만든다

폴더명은 아래 국가 코드와 같다
  1. 영어 "en"
  2. 한국어 "ko"
  3. 일본어 "ja"
  4. 프랑스어 "fr"
  5. 이탈리아어 "it"
  6. 독일어 "de"
  7. 스페인어 "es"
  8. 스페인어 (멕시코) "es-MX"
  9. 러시아어 "ru"
  10. 아랍어 "ar"
  11. 포르투갈어 "pt-BR"
  12. 폴란드어 "pl"
  13. 중국어 "zh-CN"

폴더를 만들면 아래와 같이 "현지화된 에셋 생성"에 추가한 나라를 볼수 있다.  
선택한 Textrue에서 확인(에셋 현지화)


폴더에서 "L10N"폴더 확인(현지화 에셋 폴더)
  • 보이지 않으면 컨텐츠 브라우저 "뷰옵션" -> "현지화된 애셋표시"

"현지화된 에셋 생성"을 통해 만들어진 폴더 처럼 나머지 Asset들도 같은 이름으로 해당 폴더에 복사한다.
(위 이미지는 "뷰옵션"에서 "폴더 표시"를 끈것이여서 이미지들이 다 보이지만 해당 폴더에 각 해당 이미지들이 있다.)

확인 - 테스트 Actor 생성
처음 "현지화된 에셋 생성"에 사용한 에셋을 선택한다.


"독립형 게임(Standalone Game)"에서 결과물 확인
"에디터 개인설정" -> "레벨 에디터" -> "플레이" -> "Play in Standalone Game"

게임화면


[Unreal4] Text 현지화(Localization)

[Unreal4] Text Localization Process

언리얼4 Text 현지화 내용을 간단히 정리하였다. (4.16 기준)
자세한 사항은 아래 참고문서를 보면 더욱 정확하다


현지화 기본 참고문서

(출처는 필수! 사진을 클릭하면 크게 보입니다.)

언리얼에서 제공하는 Localization은 현재는 "실험단계 기능"으로 오픈 되어 있지 않다.

1. Localization Dashboard 기능을 사용한다.

 Localization Dashboard 선택

왼쪽 상단 "창"에서 "실험단계" -> "현지화 대시보드"를 선택한다.

"현지화 대시보드" 사용을 위해서는 타겟이 필요하다.
기본 설정되어있는 "Game"에 추가 해도 되고 "새 타겟 추가" 후 타켓 수정하여도 됨


중요!! 
어떤 타켓을 사용하던지 보려면 "폴리시 로드중"은 "Always"로 해야 언어가 나온다.

Gather form Text Files - 번역할 Text 파일(소스 코드) Path지정
Gather from Packages - 번역할 언리얼 Asset파일 Path 지정


국가 추가(새 컬처 추가)
아래 글 "3. 번역하기"에서 계속..

2. Text Localization CPP and BP 사용
2-1. BP 클래스 추가

사용할 텍스트 추가 - "텍스트"를 추가하면 자동으로 "현지화 대시보드"쪽에 추가된다.

2-2. CPP에서 사용

NSLOCTEXT 매크로 사용하여 "현지화 대시보드"에서 확인 하도록 해준다.


3. 번역 하기

텍스트 수집 ->변역 에디터 열기(번역 편집) -> 단어 세기 -> 텍스트 컴파일

번역 에디터에서 번역

4. 확인 테스트
4-1. 독립형 게임으로 확인



4-2. 언어 설정

실행 - 독립형 게임


"~"키를 눌러서 확인


5. UnrealFrontend Cook
커스텀 실행 프로파일 생성

By the Book

Localizations to Package 선택


주의!
Localization Test시 항상 Standalone Game에서 진행 해야한다.
Editor에서 진행시 Editor Culture(Language)가 바뀌고 BP, UI의 Text가 Localization Dashboard에 변역된 텍스트들이 들어가 있는 상태가 된다.
(Editor 언어 자체를 바꾸기 때문)

항상 Standalone Game으로 진행