ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

高级开发指南:为Blender Launcher V2添加新Blender Fork支持的11个关键步骤

高级开发指南:为Blender Launcher V2添加新Blender Fork支持的11个关键步骤 高级开发指南为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),仅供参考
返回列表