애셋이나 모듈 정리하다 보면 특정 클래스를 상속받은 BP 클래스를 찾고 싶을 경우가 있다. BP 클래스의 경우 레퍼런스 뷰어로 찾을 수 있는데 상속받은 부모가 네이티브 클래스일 경우 난감했다.

블루프린트 전체 찾기를 하다보면 검색어 문법이 있을 것 같았다. Content Browser > Advanced Search Syntax 에 따르면 아래와 같은 식으로 ParentClass 를 가진 객체를 검색할 수 있었다.

ParentClass:[ParentClass 이름]

예를 들어 아래와 같이 Actor 클래스를 상속받은 애셋들을 찾고 싶을 때 Type:Actor 라고 치면 안보인다.

ParentClass:Actor 라고 입력해야 보인다.

Detail 정보는 모두 필터로 사용할 수 있는 것 같다. AND, OR 같은 연산자도 지원한다.

지난 번에 애셋 정리할 때 알았으면 더 쉽게 처리할 수 있었을텐데 :)

출처 : https://docs.unrealengine.com/en-us/Editor/Content/Browser/AdvancedSearchSyntax

엔진버전 : 4.20.3

명령창에서 'slmgr /dlv' 입력 후 제품 키 채널 내용을 확인하면 된다.

출처 : http://damoa-nawa.tistory.com/100

// Should we use unity build mode for this module?
bool bModuleUsesUnityBuild = false;
if (Target.bUseUnityBuild || Target.bForceUnityBuild)
{
if (Target.bForceUnityBuild)
{
Log.TraceVerbose("Module '{0}' using unity build mode (bForceUnityBuild enabled for this module)", this.Name);
bModuleUsesUnityBuild = true;
}
else if (Rules.bFasterWithoutUnity)
{
Log.TraceVerbose("Module '{0}' not using unity build mode (bFasterWithoutUnity enabled for this module)", this.Name);
bModuleUsesUnityBuild = false;
}
else if (SourceFilesToBuild.CPPFiles.Count < MinSourceFilesForUnityBuild)
{
Log.TraceVerbose("Module '{0}' not using unity build mode (module with fewer than {1} source files)", this.Name, MinSourceFilesForUnityBuild);
bModuleUsesUnityBuild = false;
}
else
{
Log.TraceVerbose("Module '{0}' using unity build mode", this.Name);
bModuleUsesUnityBuild = true;
}
}
else
{
Log.TraceVerbose("Module '{0}' not using unity build mode", this.Name);
}


특정 모듈이 UnityBuild 가 안걸려서 확인해봤다.

일단 bUseUnityBuild는 기본적으로 켜져(true) 있다.
소스 파일 개수가 32개 넘을 때 UnityBuild가 동작하는데 파일 개수가 50개 인 줄 알았는데 cpp 기준으로는 25개 밖에 안되었다.

그냥 bForceUnityBuild 를 켜서 돌아가도록 했다.

위 로그는 Verbose 이상일 때 보이니 BuildConfiguration.xml 수정이 필요하다.

<?xml version="1.0" encoding="utf-8" ?><Configuration xmlns="https://www.unrealengine.com/BuildConfiguration">

<BuildConfiguration>

<!--<bAllowXGE>false</bAllowXGE>-->

<LogLevel>VeryVerbose</LogLevel>

</BuildConfiguration>

</Configuration>



bUseAdaptiveUnityBuild (Boolean)

Use a heuristic to determine which files are currently being iterated on and exclude them from unity blobs, result in faster incremental compile times. The current implementation uses the read-only flag to distinguish the working set, assuming that files will be made writable by the source control system if they are being modified. This is true for Perforce, but not for Git.

4.19 올리고 나서 작업하는 파일만 Unity Build 에서 빼서 컴파일이 되길래 엔진 기능인 줄 알았는데 마침 그 때 Perforce 로 저장소를 바꿔서 동작하는거였다. -ㅁ-

비싸고 빠른 쓰레기 Perforce 는 encoding 이 달라도 같은 파일으로 인식하는 경우가 있는 것 같다. reconcile 을 해도 modified 로 체크가 되질 않았다. svn 같으면 지우고 update 받으면 되는데 Perforce 는 이게 애매했다.

초기 버전으로 workspace 를 돌리고 그걸 최신화 하는 식으로 비슷하게 처리했다.

  • 일단 문제 폴더를 선택하고 오른쪽 마우스 메뉴에서 Get Revision 을 선택한다.
  • Specifying revision using 을 선택하고 Changelist 에 0 을 입력한다.
  • Get Revision 버튼을 누르면 populate 되었던 처음 버전으로 폴더 내용이 돌아간다.
  • 그 상태에서 Get Latest Revision 을 눌러 최신 버전을 받는다. 
p4 command line 에서는 sync 명령어를 이용하면 된다. :(


aws 아이콘

해본 것/팁과 정보 2018.07.31 00:00 posted by 이밋

aws 로 작업하다보면 아키텍처 다이어그램을 그릴 일이 많은데 gliffy 에서 아이콘을 제공하고 있으나 최신 서비스에 대한 아이콘은 없을 수도 있다.

aws 에 아이콘 리소스를 제공하고 있으니 아래 URL 을 참고하자.

https://aws.amazon.com/ko/architecture/icons/

PowerPoint, Visio, EPS or SVG, 스케치 형식 4가지 종류가 제공된다.


Edit > Perference 창의 'Merge' 탭에서 바꿀 수 있다.
Ohter application을 선택하고 Location 을 TortoiseMerge 실행파일 경로로 바꾸고 Argument 를 '/base:%b /theirs:%1 /mine:%2 /merged:%r' 로 하면 될 것 같으나 안된다.
비싸고 빠른 쓰레기 Perforce 가 파라미터 변환을 안하는 것 같다.

TortoiseMerge 경로에 헬퍼용 배치 파일을 먼저 생성한다.

TortoiseMerge.exe /base:%1 /theirs:%2 /mine:%3 /merged:%4

Location 에서 배치 파일을 선택하고 Arguments는 그대로 둔다.

출처 : https://stackoverflow.com/questions/12637072/how-to-use-tortoisemerge-from-perforce-p4v

.a 나 .so 파일 덤프하기

해본 것/팁과 정보 2018.07.10 00:00 posted by 이밋

.a 파일

7zip 과 같은 압축 프로그램을 사용하면 내부에 txt 파일과 o 파일을 볼 수 있습니다.


txt 파일을 열어보면 어떤 심볼들이 포함되어 있는지 확인할 수 있습니다.

.so 파일

linux 에 nm 이라는 프로그램이 있습니다. 윈도우용 clang 에도 포함되어 있으니 이 프로그램을 사용하면 아래와 같은 형식으로 덤프해서 볼 수 있습니다.


'\n' 으로 될 줄 알았는데 그냥 문자로 취급된다. Enter 키를 누르면 입력이 완성되어 버린다. 결국 마법의 Shift + Enter 로 하니 잘 동작했다.

EC2 인스턴스가 cpu 나 memory 가 부족해 type을 바꾸고 싶을 때는 기존 instance 를 중지 후 콘솔에서 Change Instance Type 메뉴를 선택 후 변경하면 됩니다.

참고 : https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/ec2-instance-resize.html