
高級開發指南為Blender Launcher V2添加新Blender Fork支持的11個關鍵步驟【免費下載鏈接】Blender-Launcher-V2Standalone client for managing official builds of Blender 3D and its popular forks項目地址: https://gitcode.com/gh_mirrors/bl/Blender-Launcher-V2Blender Launcher V2 是一款可獨立運行的客戶端用于管理官方 Blender 3D 構建及其熱門 Fork如 Bforartists、UPBGE的下載、安裝與更新。本文為開發者提供完整指南按照 11 個關鍵步驟從零為 Blender Launcher V2 添加一個新 Blender Fork 支持覆蓋爬蟲、設置、界面、構建處理與解壓五大層。為什么需要“Fork 支持”所謂Fork就是基于 Blender 源碼二次開發的衍生版本。要在啟動器中支持一個新 Fork需要打通 5 個層次層次職責核心目錄1. 抓取Scraping從 Fork 官網/API 獲取構建信息source/threads/scraping/2. 設置Settings提供可見性與更新行為開關source/modules/settings.py3. 界面UI創建 Library / Downloads 頁面source/windows/main_window/4. 構建處理處理可執行文件名、版本號、目錄結構source/modules/build_info.py5. 解壓Extraction處理特殊壓縮包格式與目錄source/threads/extractor.py官方文檔中對這一步驟有完整記錄可直接對照閱讀implementing_new_fork.md。第 1 步創建爬蟲Scraper在source/threads/scraping/下新建fork_name.py繼承基類BuildScraper重寫scrape()生成器為每個構建yield一個BuildInfo對象含下載地址、版本號、commit 哈希、時間、分支名、可執行文件名。基類定義見 base.py參考現成實現bfa.pyNextcloud 源、upbge.pyGitHub Releases 源版本號解析復用 build_info.py 中的parse_blender_ver()第 2 步添加設置項Settings在 settings.py 中為新 Fork 增加三組函數Library 可見性get_show_xxx_builds()/set_show_xxx_builds()Downloads 抓取開關get_scrape_xxx_builds()/set_scrape_xxx_builds()更新按鈕行為get_xxx_update_behavior()等同時把新 Fork 注冊進三個字典/列表library_pages、downloads_pages現有入口可參考 settings.py#L49-L68與minimum_version_table值為下一個可用索引。第 3 步接入更新管理器修改 blender_update_manager.py 中的_branch_visibility()與_get_update_behavior()讓新分支命中后返回 Fork 專屬的可見性與更新行為替換 or 雙版本并存。第 4 步注冊到總爬蟲在 scraper.py 中完成三處改動實例化你的爬蟲如self.scraper_upbge_stable ...參考 scraper.py#L64-L71在scrapers()方法中按設置開關將其加入列表參考 scraper.py#L85-L99若 Windows 下需要按鏈接關鍵字過濾架構在get_download_links()的 amd64 分支中補上fork in build.link.lower()判斷第 5 步登記 Library 掃描目錄在 library_drawer.py 的DrawLibraryTask.folders元組中加入 Fork 的庫目錄名并在get_blender_builds()中增加該 Fork 可執行文件.exe/.app的識別判斷否則已安裝的構建無法被識別。第 6 步創建主窗口 UI 頁面在source/windows/main_window/的窗口繪制邏輯中用BasePageWidget為 Library 和 Downloads 各創建一個Fork Name標簽頁add_tab可傳folder或branch過濾條件語義見 version_matcher.py在start_scraper()中接受新的scrape_xxx參數在update_visible_lists()中根據第 2 步的設置刷新標簽頁可見性第 7 步擴展設置界面blender_builds_tab.py連接新 Fork 的library_changed/download_changed信號并添加“顯示更新按鈕”復選框與更新行為下拉框repo_group.py新增一個RepoUserView條目并加入self.repos列表第 8 步處理下載與解壓在 download_widget.py 的init_extractor()中為新分支指定庫目錄dist library_folder / fork-branch。若 Fork 使用非標準壓縮包結構嵌套目錄、bin/Release等在 extractor.py 中新增一個_fix_xxx_structure()修正函數并在ExtractTask.run()末尾調用。第 9 步處理版本映射若 Fork 使用自己的版本號體系如 UPBGE 0.40 基于 Blender 4.0在 build_info.py 中編寫一個版本映射函數把 Fork 版本映射到對應的 Blender 配置版本并暴露為BuildInfo的屬性供 .blend 文件版本匹配使用。第 10 步注冊配置文件夾路徑Fork 專屬的配置路徑集中在 build_info.py 的FORK_CONFIG_PATHS字典中現有條目見 build_info.py#L38-L51結構為fork-branch: { config_folder: 組織名, # 僅 Windows%APPDATA% 下 config_subfolder: 子目錄, # 或按平臺區分的字典 }若該 Fork 支持便攜模式還需在 library_widget.py 的make_portable_path()中補充邏輯。第 11 步從 Fork 源碼中定位真實配置路徑這一步是第 10 步的依據。打開 Fork 倉庫的三份平臺系統路徑文件intern/ghost/intern/GHOST_SystemPathsUnix.ccLinuxintern/ghost/intern/GHOST_SystemPathsWin32.ccWindowsintern/ghost/intern/GHOST_SystemPathsCocoa.mmmacOS在每份文件中查找getUserDir()函數提取平臺提取內容示例LinuxXDG_CONFIG_HOME回退路徑中的目錄名~/.config/upbge/0.40/Windows%APPDATA%下的組織名 應用子目錄%APPDATA%\UPBGE\Blender\0.40\macOSGetApplicationSupportDir()中的目錄名~/Library/Application Support/UPBGE/0.40/驗收清單如何確認 Fork 支持完成? 設置窗口中可獨立開關 Library / Downloads 可見性? Downloads 頁能列出該 Fork 的構建Windows 下按架構正確過濾? 下載完成后自動解壓到獨立目錄并出現在 Library? 雙擊可正常啟動可執行文件名識別正確? 已安裝構建的 .blend 文件版本匹配走正確配置版本? 更新按鈕行為替換/并存按設置生效關鍵文件速查表組件文件路徑爬蟲source/threads/scraping/設置source/modules/settings.py更新管理source/modules/blender_update_manager.py構建信息與配置路徑source/modules/build_info.py庫掃描source/threads/library_drawer.py主窗口頁面source/windows/main_window/設置 UIsource/windows/settings_window/blender_builds_tab.py倉庫組控件source/widgets/repo_group.py下載/解壓source/widgets/download_widget.py、source/threads/extractor.py更多 Fork 背景資料可參考 blender_forks.md 與開發手冊 development.md。【免費下載鏈接】Blender-Launcher-V2Standalone client for managing official builds of Blender 3D and its popular forks項目地址: https://gitcode.com/gh_mirrors/bl/Blender-Launcher-V2創作聲明:本文部分內容由AI輔助生成(AIGC),僅供參考