UDN
Search public documentation:

ContentBrowserDatabaseKR
English Translation
日本語訳
中国翻译

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 홈 > 언리얼 에디터와 툴 > 콘텐츠 브라우저 데이터베이스
UE3 홈 > 레벨 디자이너/ 테크니컬 아티스트 > 콘텐츠 브라우저 데이터베이스

콘텐츠 브라우저 데이터베이스


문서 변경내역: Mike Fricker 작성. Richard Nalezynski 업데이트.

개요


콘텐츠 브라우저는 애셋, 태그, 콜렉션을 저장하는데 있어 특별한 데이터베이스 백앤드를 사용합니다.

이 시스템을 Game Asset Database (게임 애셋 데이터베이스) (또는 줄여서 GAD )라 호칭하지만 실제로 이것은 journal server (저널 서버), checkpoint file (체크포인트 파일), thumbnail storage (썸네일 스토리지), in-memory database (메모리-내 데이터베이스)와 같은 여러 데이터베이스 컴포넌트 복합체입니다. 또한 checkpoint commandlet (체크포인트 커맨드렛)은 데이터베이스를 업데이트하고 관리하는 데 사용됩니다.

콘텐츠 브라우저에서 작업하는 사용자에게는 보이지 않는 부분이지만, 이와 같은 것들을 통해 멋진 기능이 구현되는 것입니다.

게임 애셋 데이터베이스가 필요한 이유


게임 애셋 데이터베이스로 인해 분명 복합성이 추가되지만 이 시스템이 가져다 주는 중요한 혜택이 있습니다.

  • 로드 여부와 상관없이 모든 콘텐츠를 즉시 검색 가능합니다.
  • 애셋에 태그를 추가하거나 콜렉션에 넣기 위해 패키지를 체크 아웃시킬 필요가 없습니다.
  • 로드되지 않은 애셋을 포함하여 모든 게임 애셋이 썸네일로 표시됩니다.
  • 모든 태그 데이터도 올바르게 소스 콘트롤(, 즉 롤백 등이) 가능합니다.

에디터에서는 로드되지 않은 애셋들과의 가장 일반적인 상호 작용 기능이 지원됩니다. 에디터는 액션이 실행되기 전에 요구에 따라 애셋을 로드합니다. 예를 들면 사용자가 로드되지 않은 스태틱 메시를 끌어 3D 뷰포트에 놓으면 콘텐츠 브라우저는 그 메시를 배치하기 전에 자동으로 로드합니다.

콘텐츠 브라우저 데이터베이스 상호작용


에디터 시동시 우선 모든 애셋의 이름, 태그, 콜렉션을 읽기 전용 checkpoint file 에서 부터 로드합니다. 이 파일은 체크포인트 과정이 마지막으로 실행되었을 때(최소 하루에 한번)의 게임상의 모든 태그의 상태를 나타냅니다. 그 다음에 에디터는 journal server 에 접속하여 최신 적용된 태그를 다운로드 받습니다.

콘텐츠 브라우저는 이제 전체 게임상의 모든 애셋, 패키지, 그룹, 태그, 콜렉션을 알게됩니다. 사용자는 그래픽 인터페이스를 사용하여 모든 게임 애셋(로드 여부와 상관 없이)을 탐색할 수 있습니다. 로드된 애셋의 thumbnails (작은 이미지 미리 보기)는 동적으로 생성되지만 로드되지 않은 애셋의 썸네일은 그 애셋들의 asset package 파일에서 바로, 신속하게 로드됩니다.

사용자가 애셋을 태그하기로 결정하면 콘텐츠 브라우저는 변경 사항을 in-memory database 에 업데이트 하고 즉시 journal server 에 접속하여 태그 명령을 업로드합니다. 에디터는 결코 checkpoint file 을 직접 변경하지 않고 모든 변경 사항은 journal server 를 경유하여 checkpoint commandlet 에 통해 나중에 적용됩니다.

다음 도표는 어떻게 콘텐츠 브라우저가 게임 애셋 데이터베이스와 상호 작용하는지 보여줍니다.

ContentBrowserDatabase_UserFlowKR.png

그밖에도, 라이브 서버를 사용하지 않고 한정된 기능을 허용하는 “오프라인 모드”로 에디터를 실행하는 것이 가능합니다. 자세한 정보는 이 페이지의 거의 끝부분에 있는 “오프라인 모드” 부분을 참고하십시오.

빌드 시스템 데이터베이스 상호 작용


다음 도표는 빌드 머신에서 실행되는 스크립트가 어떻게 생성되고 애셋 데이터베이스 데이터를 어떻게 관리하는지 보여줍니다. 맨 처음에는 복잡해 보일지라도 실제로 매우 간단하고 유지 관리하기 용이합니다.

ContentBrowserDatabase_UserFlowKR.png

데이터베이스 설정


다음은 Game Asset Database뿐만 아니라 체크포인트 과정을 설정하는데 필요한 절차에 대한 간략한 개요입니다.

  • 여러분 게임에 대한 새로운 Checkpoint 파일을 생성하기 위해 커맨드렛을 실행합니다.

  • 애셋 데이터베이스를 ‘체크포인트’하고 소스 콘트롤에 파일을 업데이트 하기 위해 일반 빌드 과정을 설정합니다. (저희는 이 과정을 자동으로 매일 밤 실행합니다.)

  • journal server 의 설치 및 구성을 실행합니다.

  • 각 게임의 에디터 구성 파일에 있는 데이터베이스/브랜치의 설정 사항을 설정합니다.

  • 선택 사항으로 모든 애셋 패키지를 재저장하여 자동으로 썸네일을 생성하도록 합니다(필요시).

작업 사항이 많아 보임...


콘텐츠 브라우저는 체크포인트 파일 또는 저널 서버 없이도 운영 될 수 있습니다. 권장하는 사항은 아니지만 다음은 이 두가지 경우가 초래하게 될 예상 결과입니다.

체크포인트 파일이 사용되지 않을 경우

  • 사용자는 게임 콘텐츠의 전체를 탐색할 수 없게 됩니다. 로드된 애셋만을 검색할 수 있게 되고 또한 오직 로드된 애셋과 상호 작용할 수 있습니다.
  • 일부 메타 데이터 유형을 사용할 수 없게 됩니다(예. 애셋에 날짜 기록하는 것이 추가됨.)
  • 모든 패키지 및 디렉터리를 볼 수 있게 된다는 것을 제외하고는 Generic Browser에서와 유사한 사용자 경험을 하실 것입니다.

체크포인트 파일은 매우 쉽고 빠르게 작성할 수 있습니다. 로컬로 작성한다고 해도 그렇습니다. 그러므로 여기에 지나치게 의지할 필요는 없습니다.

저널 서버가 없으면:

  • 사용자가 자산을 태그하거나 태그를 사용하여 검색할 수 없게 됩니다 (오프라인 모드에서는 예외).
  • 사용자가 콜렉션에, 심지어 private 콜렉션에도, 자산을 배치할 수 없습니다 (오프라인 모드에서는 예외).
  • 사용자가 태그 및 콜렉션을 다른 사람들과 공유할 수 없습니다.
  • 다양한 “라이브” 기능을 이용할 수 없게 됩니다.

위에서 언급된 모든 기능의 사용을 포기한다는 것은 절대로 있을 수 없는 일 아니겠습니까? 그러므로 체크포인트 파일 및 저널 서버를 사용할 가치가 충분히 있습니다. 계속해서 본 문서를 참조하여 생성 및 실행 방법에 대해 배우시겠습니다.

체크포인트 파일 만들기


첫째로 각 게임에 대한 초기 checkpoint file 을 생성할 필요가 있습니다.

게임은 /MyGame/Content/GameAssetDatabase.checkpoint 로 저장된 단일의 GAD 체크포인트 파일을 가지고 있습니다. 이것은 바이너리 파일로서 전체 게임에 있는 모든 애셋에 대한 메타 데이터를 저장합니다(모든 엔진 애셋을 포함). 에디터는 시작시 이 체크포인트 파일을 메모리로 로드하고 그 곳에서 신속하게 애셋의 위치를 파악하기 위해 콘텐츠 브라우저에 의해 사용됩니다.

체크포인트 파일을 생성하는 것은 쉽습니다.

  • 최신 게임 콘텐츠로 동기화됨을 확인합니다.
  • 다음 checkpoint commandlet을 실행합니다.
    • MyGame.exe CheckpointGameAssetDatabase
  • (전 게임 콘텐츠를 다루는데 시간이 걸릴 수 있습니다.)
  • 이게 전부입니다! 이제 이 게임에 유효한 checkpoint file을 완성하였습니다.
    • 에디터를 로드하면 이제 콘텐츠 브라우저 를 사용하여 게임의 모든 애셋을 탐색할 수 있게됩니다.
  • 일반적으로 이 파일을 소스 콘트롤로 체크하여야 합니다. 이것에 대한 자세한 정보는 다음 섹션에서 좀 더 알아보도록 하겠습니다.

Checkpoint commandlet은 일반적으로 다른 추가 파라미터를 필요로 하지 않지만 때때로 사용할 필요가 있는 몇 가지 옵션이 있습니다. 그것에 대한 자세한 정보는 아래를 참조해 주십시오.

게임 콘텐츠에 정규적으로 체크포인트 하기


이 부분을 다루는 것과 관련된 몇 가지 유연성 방법이 있습니다. 다음은 Epic에서 설정한 방식입니다.

  • 매일 새벽 3시경 저희 빌드 시스템(Controller)을 실행하는 컴퓨터는 다음을 수행하는 빌드 스크립트(CheckpointGAD.build)를 실행합니다.
    • 각 게임당(또는 게임 브랜치):
      • 최종 성공적인 엔진 빌드 (바이너리 포함)로 동기화 합니다. 종종 최종 성공적인 빌드는 바로 직전에 완성됩니다.
      • 헤드 리비전으로 모든 게임 콘텐츠를 동기화 (오직 게임 콘텐츠만)합니다. 이렇게 하는 이유는 약간 오랜된 엔진 빌드를 실행할지라도 asset checkpoint가 가능한 최신이 되게 하기 위함입니다.
      • 게임의 GAD checkpoint file (GameAssetDatabase.checkpoint) 체크 아웃 함.
      • Checkpoint file을 업데이트 하기 위해 checkpoint commandlet 실행하기.
        • MyGame.exe CheckpointGameAssetDatabase
        • 빌드 시스템 엔진에 의해 커맨드렛의 출력에 있을 수 있는 철자 오류가 검사됩니다. 만약 무언가 잘못되면 체크포인트는 실패로 돌아가고 파일은 원 상태로 복귀되고 해당 담당자에게 이메일이 발송됩니다.
      • 업데이트된 GAD checkpoint file*(GameAssetDatabase.checkpoint) *제출하기.

이제 팀원들은 매일 나머지 게임 콘텐츠와 더불어 파일을 동기화하게 되고 체크포인트된 상태의 전체 게임 애셋들을 액세스할 수 있게 됩니다. 만약 필요하다면 이 과정을 하루에 한번 이상 하는 것에는 아무 문제가 없습니다. (때때로 하루 중 저희 빌드 시스템에서 GAD 체크포인트를 수동으로 합니다.)

저널 서버 설정하기


이 과정은 여러분의 개발자들이 SQL 서버에 읽기 및 쓰기 권한을 가질 수 있게 SQL 서버 설치 및 구성 설정을 다루고 있습니다.

콘텐츠 브라우저에 있어 요구되는 SQL의 수준은 상당히 낮기때문에 Microsoft SQL Server의 무료 버전인 'Express Edition' 의 사용을 권장하지만 만약 MS SQL의 전체 버전을 이미 사용하고 있으시다면 그것도 괜챦습니다. 서버는 새로 태그된 애셋들에 대한 스크래치패드로의 용도로만 사용되고 일반적인 일시에 몇 천 이하의 행만 포함합니다. 실제 GAD 데이터의 대부분은 디스크에 있는 'Checkpoint File' 에 저장됩니다.

주의: 만약 애셋 태그, 콜렉션, 애셋 메타 데이터의 특정 유형(예. Date Added)의 사용이 여러분 팀에게 필요 없다면 저널 서버 설정을 건너뛰고 여러분 애셋 테이터베이스를 새롭게 하고 싶으실 때마다 체크포인트 파일을 새롭게 다시 리빌드할 수 있습니다. 모든 것은 여러분의 선택에 달려 있습니다.

MS SQL Server 설치하기


(참고: 여러분의 저널 서버를 호스트할 컴퓨터에 MS SQL Server의 버전이 이미 설치되어 있으면 이 절차를 건너뛸 수 있습니다. 예를 들면 만약 여러분이 팀이 MS SQL Server의 무제한 버전을 이미 구입 하셨다면 그 버전을 대신 사용하십시오.)

MS SQL Server Express Edition의 무료 버전의 설치를 권장드립니다. (저희는 2008 버전을 사용했습니다만 2005 버전도 괜찮습니다.)

  • 설치 프로그램이 반드시 미리 설치해야 하는 몇가지 요구사양에 대해 알려드릴 것입니다(예. Windows Installer, Windows Powershell.) 안내시 그 프로그램들을 먼저 설치하십시오.

  • MS SQL Server Express 2008의 경우 기본 설치 설정을 사용하여 설치하실 수 있습니다. 응용 프로그램의 다른 버전을 사용하신다면 서버와 설치와 함께 MS SQL Server Management Studio도 설치하셔서 설정 사항을 손 쉽게 편집/감사할 수 있게 하십시오.

  • Server Admin 이름을 입력하라고 하면 여러분 고유의 사용자 이름을 사용하거나 어떤 이름을 사용해야 할지 여러분의 IT 부서에 문의하십시오.

  • 데이터베이스의 이름은 여러분이 원하는시는 대로 명명할 수 있으나 나중에 언리얼 에디터 구성시 필요하기 때문에 명명한 이름을 메모해 두십시오.
    • 본 예제에서는 SQLEXPRESS 라는 기본 데이터베이스 이름을 사용하겠습니다.

자동 저널 서버 설정 (권장)


  • 저널 서버 인스턴스를 생성하려면 CreateContentJournal.sql 스크립트를 사용하십시오.
    • 본 스크립트는 다음의 UE3 소스 드롭에서 찾으실 수 있습니다. /Development/Src/Engine/SQL/CreateContentJournal.sql
    • sqlcmd.exe 커맨드 라인 응용프로그램을 사용하여서 스크립트를 실행하십시오.
      • 서버를 실행하고 있는 컴퓨터의 이름과 더불어 서버의 이름도 전달하셔야 합니다(기본 서버 인스턴스인 경우를 제외하고)
      • 또한 UDN으로 부터 CreateContentJournal.sql 파일의 경로 및 파일 이름을 전달해야 합니다.
      • 예를 들면 sqlcmd -S Computer_Name\Server_Name -i CreateContentJournal.sql
    • 모든 것이 순조롭게 진행되면 오류 메시지를 발견하시지 않을 것이고 저널 서버의 준비가 완성될 것입니다.

  • 주의: 일반 Windows의 인증 과정이 기본으로 여러분의 새 서버에 의해 활성화되지만 여러분 IT 부서와 협의하여 여러분 팀원의 컴퓨터가 직접 연결될 수 있게 모든 사항이 구성 되었는지를 확인하십시오.

  • 만약 수동으로 서버 인스턴스를 생성할 필요가 있는 경우 다음 섹션에 나와 있는 절차를 따라 주십시오.

수동 저널 서버 설정(필요할 시)


CreateContentJournal.sql 스크립트가 예상치 않게 작동하지 않는 경우에만 이 절차를 따라 주십시오. 스크립트를 성공적으로 실행했다면 데이터베이스가 이미 생성되었으므로 이 전체 섹션을 건너뛸 수 있습니다!

  • MS SQL Server Management를 로드 하고 여러분 데이터베이스에 연결하십시오.

  • 왼쪽 Object Explorer에서 "Databases" 를 오른쪽 클릭 하고 "New Database..." 를 클릭하십시오. "New Database" 대화창이 나타날 것입니다.
    • "Database name" 을 ContentJournal 로 설정합니다.
    • "OK" 를 눌러 대화상자를 닫고 새로운 데이터베이스를 저장합니다.

  • Object Explorer의 "Databases" 하에 있는 "ContentJournal" 를 확장하여 구성 요소를 확인합니다(Tables, Views, 등등.).

  • Object Explorer의 "ContentJournal" 하에 있는 "Tables" 를 오른쪽 클릭하여 "New Table..." 을 클릭합니다. 응용 프로그램의 콘텐츠 지역으로 테이블 디자이너가 열립니다.
    • 테이블의 열을 다음과 같이 구성합니다.
      • 첫째 열:
        • "Column Name" 을 DatabaseIndex 로 설정.
        • "Data Type" 을 int 로 설정.
        • "Allow Nulls" 를 No (선택 안함)로 설정.
      • 첫째 열의 속성:
        • "Identity Specification -> (Is Identity)" 를 Yes 로 설정.
      • 첫째 열의 ("DatabaseIndex")를 오른쪽 클릭하여 "Set Primary Key" 를 클릭합니다.
      • 두번째 열:
        • "Column Name" 을 Text 로 설정.
        • "Data Type" 을 nvarchar(MAX) 로 설정.
        • "Allow Nulls" 를 No (선택 안함)로 설정.
    • 새로운 테이블을 저장하려면 Ctrl+S 를 누릅니다. 저장 대화상자가 열립니다.
      • 새로운 테이블을 Entries 라는 이름으로 저장합니다.

  • 저널 서버 설치가 완성되었고 이제 작동하게 됩니다.

  • 주의: 일반 Windows의 인증 과정이 기본으로 여러분의 새 서버에 의해 활성화되지만 여러분 IT 부서와 협의하여 여러분 팀원의 컴퓨터가 직접 연결될 수 있게 모든 사항이 구성 되었는지를 확인하십시오.

언리얼 에디터 구성하기


이제 거의 끝났습니다.

저널 서버 설정을 마친 후 언리얼 에디터에게 찾을 수 있는 위치를 알려주어야 합니다. 또한 에디터가 실행되고 있는 게임의 특정 소스 콘트롤 브랜치의 "branch name" 을 설정해야 합니다.

  • 텍스트 에디터에서 BaseEditor.ini 을 엽니다. (/Engine/Config/BaseEditor.ini)
    • 특정 게임에 대한 구체적인 설정이 필요한 경우, 해당 변경 사항을 /MyGame/Config/DefaultEditor.ini 에서 하실 수 있습니다.

  • .ini 파일의 [GameAssetDatabase] 섹션의 위치를 찾습니다. 존재하지 않는다면 본 섹션에서 만드십시오.

  • JournalServer 를 저널 SQL 서버의 경로로 설정합니다(Computer_Name\SQL_Server_Name)
    • 예를 들면 JournalServer=ServerComputer\MYSERVERNAME
    • 만약 여러분의 서버가 원격 컴퓨터에 있는 _기본 SQL 서버 인스턴스_인 경우 서버 이름을 입력하지 않아도 됩니다.
      • 예를 들면 JournalServer=ServerComputer

  • BranchName 여러분 게임의 디폿 경로 에 적절하게 설정합니다.
    • 예를 들면 BranchName=Main
    • 브랜치 이름은 여러분 생각에 적절하다고 생각되는 이름을 사용할 수 있지만 반드시 알파벳과 숫자만 사용해야 합니다.
    • 브랜치 이름은 모든 저널 엔트리에 부착되므로 어느 정도 간략한 길이로 유지합니다.

  • 대상의 .ini 설정을 하는 동안 콘텐츠 브라우저의 태그와 콜렉션의 생성과 삭제 허용 여부를 설정할 수 있는 몇 가지 사용자 선택 사항이 있습니다. 다음을 설정하여 여러분의 아트 개발자 및 기술 아티시트들이 태그 생성을 할 수 있게 하여야 합니다.
    • MyGameEditorUserSettings.ini 에서 [ContentBrowserSecurity] 에 대한 섹션을 추가합니다.
    • 이 섹션하에 bIsUserTagAdmin=True 로 설정하고 bIsUserCollectionsAdmin=true 로 설정합니다.
    • 이것은 진정한 안전 시스템의 구축이 아니라 사용자들의 우발적인 데이터 삭제를 방지해 줍니다.

중요: 게임의 모든 소스 콘트롤 브랜치에서 브랜치 이름이 올바르게 설정되야 서로 다른 브랜치간에 있는 애셋과 태그 데이터가 충돌하지 않습니다(충돌은 반드시 피해야 합니다). 게임을 브랜치화 하고 아티스트/LD가 어느 브랜치에서 작업하고 있는 경우 새로운 브랜치의 BranchName을 업데이트하는 것은 매우 중요합니다.

작은 애셋에 대한 썸네일 생성하기


콘텐츠 브라우저가 현재 로드되지 않은 애셋에 대한 썸네일을 표시해야 할 때 애셋의 패키지를 검사하여 썸네일을 가지고 있나 확인하고 신속히 로드해서 표시합니다. 이것은 애셋의 패키지 또는 데이터를 실제 로드하지 않고 이루어집니다.

대부분의 애셋 유형에 대한 썸네일은 언리얼 에디터에 의해 자동으로 생성됩니다. 여러분께서는 단지 로드하고 패키지를 저장하면 에디터는 썸네일이 모든 지원되는 애셋 유형에 따라 렌더되도록 확인하여 줍니다.

콘텐츠 브라우저의 많은 애셋들에서 _썸네일이 없는_경우 패키지는 다시 언리얼 에디터에 저장되어야 합니다. 사용자 지정 썸네일을 지원하지 않는 애셋 유형이 많다는 것에 유의하십시오(예. Sounds, CameraAnims, 등등). 썸네일을 업데이트 하려면 반드시 에디터에서 패키지를 저장해야 한다는 점에 유의하십시오. ResavePackages와 같은 코맨들릿은 렌더가 필요하기 때문에 썸네일을 생성할 수 없습니다.

에디터는 로드된 애셋의 썸네일을 실시간으로 생성합니다(패키지 파일에서 로드하지 않습니다).

성능을 개선하는 동안 모든 이미지 미리보기는 메모리에 잠시 캐시되어집니다만 대부분은 메모리에서 신속하게 방출되어 메모리 사용량을 줄여 최적으로 유지하십시오.

고급 토픽


오프라인 모드

콘텐츠 브라우저를 SQL 접속이 필요없지만 태깅이나 콜렉션은 계속 사용할 수 있는 “Offline Mode(오프라인 모드)”로 실행할 수도 있습니다.

오프라인 모드를 사용하려면 EditorUserSetings.ini 파일에서 다음과 같이 설정하십시오:

[GameAssetDatabase] OfflineMode=true

이제 에디터는 시작시 SQL 접속을 시도하지 않게 됩니다. 그 대신 태깅 및 콜렉션이 보존될 저널 파일을 디스크에 작성합니다.

서로 다른 PC에서 태깅 및 콜렉션으로 작업할 때는, 여러분의 사용자 이름이 일치하도록 확실히 해야 합니다. 예를 들어 집에서 VPN 접속을 통해 작업할 때 직장에서 작성한 개인 콜렉션과 상호작용을 하고 싶다면, preferences 파일에서 "override user name" 을 설정해야 합니다.

"override user name" 을 설정하려면, EditorUserSettings.ini 를 열어 다음을 설정하십시오:

[GameAssetDatabase] OverrideUserName=MyUserName

오프라인 모드에서는 태그나 콜렉션을 다른 사용자들과 공유할 수 없게 됩니다. 그렇지만 나중에 SQL 데이터베이스를 이용할 수 있게 된 후에 오프라인 모드를 무효화하면, 에디터는 자동으로 그동안 축적된 태깅에 대한 변경을 업로드합니다.

오프라인 저널 경보

에디터가 최초로 실행되면, date 필드인 "UserJournalUpdateAlarm" 이 UTEditorUserSettings.ini 에 추가되어 향후 7일로 값이 설정됩니다. 이것은 다음 번에 경보가 발령되게 되는 일시를 나타냅니다(주 – 어플리케이션을 종료하면 이 값이 저장됩니다).

이것을 테스트하는 방법은 다음과 같습니다:

  • 경보가 확실히 울리도록 해당 엔트리의 시간을 다음 번 집행 시간 이전으로 설정합니다.
  • 에디터를 다시 시작합니다.
  • 에디터가 시작되면 다음과 같은 대화상자가 나타날 것입니다:
JournalUpdateAlarm.png

  • "Check Now" 는 체크 포인트의 업데이트 과정을 실행하여, 저널 파일의 백업을 만들고, 원래의 저널 파일을 삭제하며, 경보를 향후 7일로 설정합니다.
  • "Next Run" 은 다음 실행때 경보가 울리도록 시간이 미리 적절하게 설정되어 있으므로, 아무 일도 하지 않습니다.
  • "Wait a Day" 와 "Wait a Week" 은 경보가 현재로부터 예상 시간 만큼 나중에 울리도록 시간을 설정합니다.

온라인 빌드에서 이것이 유효화되도록 하려면 UTEditor.ini 에서 "[GameAssetDatabase]OfflineMode" 를 TRUE 로 설정하고, "[GameAssetDatabase]UseJournalUpdateAlarm" 이 TRUE (기본 설정 값) 가 되도록 하면 됩니다. Epic 및 라이센스 사용자들은 콘텐츠 서버를 사용해야 하므로 이것은 테스트를 위해서만 사용되어야 합니다. 마찬가지로, "[GameAssetDatabase]UseJournalUpdateAlarm" 을 FALSE 로 설정하면 Asset Database Maintenance (자산 데이터베이스 관리) 기능이 무효화 됩니다.

체크포인트 코맨들릿 옵션

코맨들릿은 문제점을 디버깅하는 경우를 제외하고는 사용하지 말아야 할 몇가지 추가 옵션을 가지고 있습니다.

  • -NoDeletes 는 코맨들릿이 SQL 서버에서 만기된 저널 엔트리를 삭제하지 않도록 알려줍니다. 빌드 인 임계값 보다 오래된 엔트리는 데이터베이스에 남게 됩니다. 항상 이 옵션을 사용하게 되면 여러분 SQL 데이터베이스는 매우 거대하게 되어 에디터의 시작 성능은 줄어들게 됩니다. 다음번에 이 인수 없이 체크포인트 과정을 실행하면 예상했던 것과 같이 만료된 애셋들이 삭제됩니다.
  • -ImportOldTags (2009년 5월 QA 빌드에서 삭제됨, 변경목록 33172) 모든 패키지에서 레거시 Content Tag 데이터를 가져오고 가져온 정보를 게임 애셋 데이터베이스로 병합합니다. 좀 더 자세한 사항은 아래의 레거시 콘텐츠 태그 가져오기 섹션을 참조해 주십시오.
  • -PurgeGhosts 는 코맨들릿이 데이터베이스에서의 Ghost 애셋 엔트리를 강제로 만료(삭제)하게 합니다. 일반적으로 고스트 애셋은 그 전에 애셋이 패키지에서 소재로 사용하는 경우를 제외하고 미리 지정된 일수 후에 자동으로 만료됩니다.
  • -Repair 는 데이터베이스의 모든 오류의 복구를 시도합니다. 오류 사항에 관해 복구 과정은 문제가 있는 엔트리를 데이터베이스에서 완전히 제거합니다.
  • -Reset 은 새롭게 체크포인트 파일을 빌드합니다. 이 과정은 모든 기존의 태그, 콜렉션, 저널 서버 데이터 및 메타 데이터를 무시하고 슬레이트를 깨끗하게 지웁니다. 이 옵션은 여러분께서 무엇을 하는지 확실히 아는 경우를 제외하고는 사용하지 마십시오.
  • -Verify 는 테이터베이스의 상태를 검사하고 경고 사항을 리포트합니다. 이 옵션은 실제로 아무것도 변경하지 않고 상태도 저장하지 않습니다.
  • -DeleteCollections public 및 private 콜렉션들을 모두 삭제합니다.

레거시 콘텐츠 태크 가져오기

오래된 Content Tag Browser와 패키지 파일의 데이터를 포함한 모든 관련 기능은 UE3의 2009년 5월 QA 빌드에서 삭제되었습니다(변경목록 # 333172). 여러분의 애셋에 이미 상당한 콘텐츠 태그가 설정되어 있고 이것들을 새로운 시스템으로 변환하고 싶으면 아래의 절차를 따라 주십시오.

  • 2009년 5월 QA 빌드(changelist 333172) 또는 이후의 빌드를 사용하여 콘텐츠 패키지를 재저장하지 않도록 주의하십시오. 패키지를 재저장하는 것은 여러분 콘텐츠 태그를 파괴하게 됩니다.
  • Either sync to the 2009년 4월 QA 빌드로 동기화 하거나 변경목록 333172를 제외한 2009년 5월 QA 빌드로 동기화 하십시오.
  • 각 게임에 GAD 코맨들릿을 실행하여 오래된 콘텐츠 태크를 다음으로 변환하십시오.
    • MyGame.exe CheckpointGameAssetDatabase -ImportOldTags
  • 이것은 모든 여러분의 태그를 포함한 파일(GameAssetDatabase.checkpoint)을 생성합니다.
    • 콘텐츠 브라우저는 항상 태그 데이터를 이 파일에서 로드합니다.
  • 이제 최신 QA 빌드(모든 변경목록)까지 동기화 할 수 모든 절차가 다 되었습니다.

검증되지 않은 애셋 및 Ghosts

때때로 콘텐츠 브라우저에서 애셋이 Unverified 로 표시되어 있는 것을 보실 수 있습니다. 이것은 애셋의 정보가 저널 서버에서 다운로드 되었지만 아직 체크포인트 코맨들릿에 의해 아직 “검증” 되지 않았음을 의미합니다.

체크포인트 과정이 실행되면 unverified 애셋을 저널 서버에서 다운로드 하고 이 애셋들이 실제 게임 콘텐츠에서 존재하는지 검사합니다. (일반적으로 여러분의 빌드 시스템이 체크포인트를 실행하므로 이것은 즉 애셋이 소스 콘트롤에 제출되었음을 의미합니다.)

애셋이 체크포인트 코맨들릿에 의해 발견되었다는 것을 가정하면 다음번에 사용자가 최신 체크포인트 파일로 동기화 하면 애셋은 더이상 unverified 로 표시되지 않습니다.

그러나 애셋이 발견되지 않으면(아마도 사용자가 새롭게 생성된 애셋을 확인하지 않았거나 저장되지 않았기 때문에) 체크포인트 도구는 그 애셋을 Ghost 로 표시합니다. Ghost 애셋은 디스크에 존재하지 않으므로 콘텐츠 브라우저에 결코 표시되지 않습니다. 그러므로 대부분의 사용자는 이 기능에 대해 알지 못합니다.

사용자가 나중에 애셋에서 검사할 경우를 대비해서 Ghost 애셋은 미리 고정된 일 수 동안 데이터베이스에 보관 되어집니다. 애셋은 아직 소스 콘트롤에 제출되지 않아도 이미 태그를 가지고 있거나 기타 메타데이터가 지정되어 있을 수 있으므로 이점은 매우 중요합니다. 결국에 고스트는 만료되고 데이터베이스에서 삭제됩니다.

에디터에서 다른 사용자의 Unverified 애셋을 보고 싶지 않을 경우 여러분이 생성한 애셋 정보만 다운로드하게 에디터에게 말하는 -NoLiveTags 커맨드 라인 파라미터를 사용하십시오.