Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
애니메이션 편집기 사용하기
Godot에는 다양한 기능이 내장되어 있습니다. 이는 편리하지만 바이너리 크기가 예상보다 크다는 의미이기도 합니다. 특히 해당 기능 세트의 작은 부분만 사용하는 프로젝트의 경우 더욱 그렇습니다.
바이너리 크기를 줄이기 위해 특정 기능을 비활성화한 상태에서 사용자 정의 내보내기 템플릿을 컴파일할 수 있습니다. 이에 대해서는 :ref:`doc_optimizing_for_size`에 자세히 설명되어 있습니다. 그러나 어떤 기능을 비활성화해야 하는지 결정하는 것은 지루한 작업이 될 수 있습니다. 엔진 컴파일 구성 편집기는 이러한 기능을 쉽게 보고 관리할 수 있는 인터페이스를 제공하는 동시에 프로젝트에서 현재 사용 중인 기능을 감지할 수 있도록 하여 이 문제를 해결하는 것을 목표로 합니다.
:menu:`프로젝트 > 도구 > 엔진 컴파일 구성 편집기`를 사용하면 Godot 프로젝트에 대한 빌드 프로필을 생성하고 관리할 수 있습니다.
이제부터는 두 가지 가능성이 있습니다.
보기 목록을 확인하고 필요하지 않은 기능을 수동으로 선택 취소하세요.
버튼을 사용하면 현재 프로젝트에서 사용되는 기능을 자동으로 감지하고 사용하지 않는 기능을 비활성화할 수 있습니다. 이는 기존 기능 목록을 재정의하므로 일부 항목을 수동으로 선택 취소한 경우 프로젝트에서 실제로 해당 기능을 사용하는지 여부에 따라 해당 상태가 재설정됩니다.
엔진 컴파일 구성 편집기 열기
:button:`프로젝트에서 감지`를 클릭하면 프로젝트 감지 단계가 실행됩니다. 프로젝트 규모에 따라 몇 초에서 몇 분까지 걸릴 수 있습니다. 감지가 완료되면 일부 기능이 비활성화된 업데이트된 기능 목록이 표시됩니다.
기능 감지를 사용한 후 업데이트된 기능 목록(3D 플랫폼 데모의 예)
경고
이 대화 상자에서 기능을 선택 취소해도 내보내기 시 바이너리 크기가 직접 줄어들지는 않습니다. 실제로 컴파일 시 바이너리에서 기능을 제거하는 것만 가능하므로 엔진 컴파일 구성 편집기의 이점을 실제로 활용하려면 지정된 빌드 프로필을 사용하여 사용자 지정 내보내기 템플릿을 컴파일해야 합니다.
이제 상단의 **다른 이름으로 저장**을 클릭하여 빌드 프로필을 저장할 수 있습니다. 빌드 프로필은 어느 위치에나 저장할 수 있지만 나중에 필요할 때 다시 돌아갈 수 있도록 프로젝트 폴더 어딘가에 저장하고 버전 제어에 추가하는 것이 좋습니다. 또한 버전 제어를 사용하여 빌드 프로필의 변경 사항을 추적할 수도 있습니다.
빌드 프로필은 위 예에서 감지된 후 다음과 같은 JSON 파일(및 .gdbuild 확장자)입니다.
{
"disabled_build_options": {
"disable_navigation_3d": true,
"disable_xr": true,
"module_godot_physics_3d_enabled": false,
"module_msdfgen_enabled": false,
"module_openxr_enabled": false
},
"disabled_classes": [
"AESContext",
...
"ZIPReader"
],
"type": "build_profile"
}
컴파일 템플릿을 내보낼 때 이 파일을 SCons 옵션으로 전달할 수 있습니다.
scons target=template_release build_profile=/path/to/profile.gdbuild
빌드 시스템은 이를 사용하여 사용되지 않는 클래스를 비활성화하고 결과적으로 바이너리 크기를 줄입니다.
제한 사항
기능은 프로젝트 장면과 스크립트 읽기에 의존합니다. 다음 시나리오에서는 사용된 기능을 감지할 수 없습니다.
절차적으로 생성된 후 런타임에 실행되는 GDScript에서 사용되는 기능입니다.
:ref:`GDExtensions <doc_gdextension>`에서 사용되는 기능(언어 바인딩에서 사용된 클래스 정의를 허용하지 않고 확장에서 해당 기능을 사용하지 않는 경우) 자세한 내용은 `GH-104129 <https://github.com/godotengine/godot/pull/104129>`__을 참조하세요.
:ref:`런타임 <doc_exporting_pcks>`에 로드된 외부 PCK에서 사용되는 기능입니다.
특정 극단적인 경우가 있을 수 있습니다. 확실하지 않은 경우 `GitHub <https://github.com/godotengine/godot/issues>`__에서 최소한의 재생산 프로젝트를 첨부하여 문제를 열어주세요.
더 보기
그 밖에서 Android 내보내기 템플릿의 필요한 기능만을 활성화 해 컴파일하는 등으로 용량을 더 줄일 수 있습니다. 자세한 정보는 크기에 따른 빌드 최적화를 참조하세요.