公司网站用什么系统,金科科技 做网站,杭州的设计网站建设,南宁关键词优化公司目录 准备环境构建官方案例另行构建经验分享附录 准备环境
安装Motion Builder 2024并破解安装Qt 5.15.2 截止至2024年12月19日#xff0c;Qt的在线安装器的默认页面是没有5.15.2版本的。你需要#xff1a;在“选择组件”界面#xff0c;选择“Archive”#xff0c;点击“… 目录 准备环境构建官方案例另行构建经验分享附录 准备环境
安装Motion Builder 2024并破解安装Qt 5.15.2 截止至2024年12月19日Qt的在线安装器的默认页面是没有5.15.2版本的。你需要在“选择组件”界面选择“Archive”点击“筛选”重新加载数据库之后你就可以看到旧版5.15.2了。 勾选Qt 5.15.2 的MSVC 2019 64-bit和Qt WebEngine。我个人比较断舍离我觉得其它组件用不上我就都消选了。点击下一步直到安装完成。 安装cmake 3.17或更高的版本。安装Visual Studio 2022 或更高版本还必须安装“使用 C 进行桌面开发”Visual Studio 组件。 本节参考资料MotionBuilder SDK 要求 构建官方案例 添加环境变量 变量名QTDIR 变量值{Qt5Config.cmake所在的目录} 举例D:\software\Qt\5.15.2\msvc2019_64\lib\cmake\Qt5 修改MB给的cmake文件MotionBuilder 2024\OpenRealitySDK\cmake\OpenReality.cmake的第82行把${QT_VERSION_MAJOR}改成5。 # find_package(Qt${QT_VERSION_MAJOR} ${QtVersion} REQUIRED COMPONENTS Core Gui Widgets Multimedia OpenGL OpenGLExtensions WebEngineWidgets Xml)
find_package(Qt5 ${QtVersion} REQUIRED COMPONENTS Core Gui Widgets Multimedia OpenGL OpenGLExtensions WebEngineWidgets Xml)在{你的MB安装目录}\MotionBuilder 2024\OpenRealitySDK下输入cmake指令 cmake . -DCMAKE_BUILD_TYPEDebug可选的build type还有RelWithDebInfo。 如果成功构建打开OpenReality.sln。默认当前启动项目是ALL_BUILD如果你直接编全部大概率遇到各种警告编不过。建议按需编译选择你需要的项目右键点击”设为启动项目“然后右键点击”生成“。 如果成功编译那么编译出来的.lib会放在D:\software\MotionBuilder 2024\bin\x64\plugins\Debug。 要想使用插件你需要手动启动MB点击顶部菜单栏的SettingsPreferenceSDKAdd选择上述目录确定Ok重启MB即可使用。 快速启动选读 如果直接点击运行是运行不了的因为编译的结果是生成一个DLL而不是一个exe。我们需要把这个dll绑给MB。 右键当前项目点击最下面的“属性”选择“调试” 填写“命令”为你本地的MB的exe文件。例如我的是D:\software\MotionBuilder 2024\bin\x64\motionbuilder.exe。这一步的作用是在我们编译好之后有.exe能直接启动。 填写“环境”为MOTIONBUILDER_PLUGIN_PATHC:\Program Files\Autodesk\MotionBuilder 2023\bin\x64\plugins\Debug。这一步的作用是让MB能找到插件在哪里。 如此启动之后MB就能启动咱们编出来的样例插件并且我们能在vs里打断点调试了。
另行构建
请先确保官方构建环节能够跑通。
我的基本思路照搬官方构建的cmake文件按需小改。
创建项目文件夹以myplugin为例。从OpenRealitySDK文件夹内拷贝以下3个内容到myplugin文件夹 修改myplugin\CMakeLists.txt的第10行把MOBU_ROOT设为你的MB根目录例如我的是# Mandatory path to MotionBuilder Root folder.
set(MOBU_ROOT D:/software/MotionBuilder 2024)修改myplugin\CMakeLists.txt的第16行子目录改为Srcadd_subdirectory( Src )在myplugin文件夹下创建文件夹命名为Src用于放置源文件。在myplugin\Src\创建以下4个文件拷贝我提供的内容详见附录 ① CMakeLists.txt ② mytool_tool.h ③ mytool_tool.cpp ④ mytool_lib.cpp在myplugin文件夹下cmake构建解决方案。创建脚本双击更方便。 Build.batmkdir build
cd build
cmake ..打开解决方案myplugin\build\myplugin.sln把MyTool设为启动项目运行启动你会得到
再次总结构建好的文件目录应该是这样的被选中的是必需 之后就是圈地自嗨时间啦~Enjoy
经验分享
编译MB的插件可能会把破解好的许可证弄坏此时需要重新破解。祝大家心平气和官方示例插件个数大约有80并不是每个插件都放在Tools列表里而是藏在各种边边角角的下拉框。 当你找不到想学习的插件的入口时请打开MotionBuilder 2024\OpenRealitySDK\Samples{插件的系列名}{插件的系列名}.txt这个txt文本里面会标注这个系列下的每个插件是怎么使用的。 另外每个插件的头文件可能也会说明这个插件的功能作用。官方文档是个好东西。 https://help.autodesk.com/view/MOBPRO/2024/ENU/?guidGUID-0AEB6C9E-3A7D-4427-86DA-30E03D65E1C3 附录
① CMakeLists.txt 你可以从每个官方示例插件下找到cmake模板例如OpenRealitySDK\Samples\boxes\box_template\CMakeLists.txt。不同的是我对它进行了按需修改。
# 第1处修改 设置我自己的项目名称
project(MyTool LANGUAGES CXX)# 第2处修改 从罗列每个源文件改成自动识别
file(GLOB HEADER_FILES ${PROJECT_SOURCE_DIR}/*.h)
file(GLOB SOURCE_FILE ${PROJECT_SOURCE_DIR}/*.cpp) # 注意官方用的是cxx我用的是cppsource_group(TREE ${CMAKE_SOURCE_DIR} FILES ${HEADER_FILES})
source_group(TREE ${CMAKE_SOURCE_DIR} FILES ${SOURCE_FILE})add_library(${PROJECT_NAME} SHARED${HEADER_FILES}${SOURCE_FILE}
)# 第3处修改添加调试选项参数这样就可以直接启动MB并绑定调试
set_property(TARGET ${PROJECT_NAME} PROPERTY VS_DEBUGGER_COMMAND ${MOBU_ROOT}/bin/${BIN_PATH}/motionbuilder.exe)
set_property(TARGET ${PROJECT_NAME} PROPERTY VS_DEBUGGER_COMMAND_ARGUMENTS -console)
set_property(TARGET ${PROJECT_NAME} PROPERTY VS_DEBUGGER_ENVIRONMENT MOTIONBUILDER_PLUGIN_PATH${MOBU_ROOT}/bin/${BIN_PATH}/plugins/$(Configuration))target_compile_definitions(${PROJECT_NAME} PRIVATE FBXSDK_SHARED FBXSDK_NEW_API)
target_link_libraries(${PROJECT_NAME} PRIVATE fbsdk fbxsdk OpenGL::GL OpenGL::GLU)mobu_target_finalize(${PROJECT_NAME} plugins)② mytool_tool.h 这是插件的UI入口类的头文件。
#ifndef __MYTOOL_H__
#define __MYTOOL_H__
//
// Copyright 2017 Autodesk, Inc. All rights reserved.
//
// Use of this software is subject to the terms of the Autodesk license
// agreement provided at the time of installation or download, or which
// otherwise accompanies this software in either electronic or hard copy form.
// //--- SDK include
#include fbsdk/fbsdk.h//--- Registration define
#define ORTOOLTEMPLATE__CLASSNAME MyTool
#define ORTOOLTEMPLATE__CLASSSTR MyToolclass FbxScene;/** Tool template.
*/
class MyTool : public FBTool
{//--- Tool declaration.FBToolDeclare( MyTool, FBTool );public://--- Construction/Destruction,virtual bool FBCreate(); //! Creation function.virtual void FBDestroy(); //! Destruction function.private:FBLabel mLabel;FBButton mButton;
};#endif③ mytool_tool.cpp 这是插件的UI入口类的.cpp文件
//
// Copyright 2017 Autodesk, Inc. All rights reserved.
//
// Use of this software is subject to the terms of the Autodesk license
// agreement provided at the time of installation or download, or which
// otherwise accompanies this software in either electronic or hard copy form.
// /** \file mytool_tool.cxx
*/
#include fbsdk/fbsdk.h//--- Class declaration
#include mytool_tool.h//--- Registration defines
#define ORTOOLTEMPLATE__CLASS ORTOOLTEMPLATE__CLASSNAME
#define ORTOOLTEMPLATE__LABEL MyTool
#define ORTOOLTEMPLATE__DESC MAY - Tool Description//--- Implementation and registration
FBToolImplementation( ORTOOLTEMPLATE__CLASS );
FBRegisterTool ( ORTOOLTEMPLATE__CLASS,ORTOOLTEMPLATE__LABEL,ORTOOLTEMPLATE__DESC,FB_DEFAULT_SDK_ICON ); // Icon filename (defaultOpen Reality icon)using namespace FBXSDK_NAMESPACE;/************************************************* Constructor.************************************************/
bool MyTool::FBCreate()
{// Tool optionsStartSize[0] 800;StartSize[1] 500;int lB 10;//int lS 4;int lW 200;int lH 18;// Configure layoutAddRegion(Label, Label,lB, kFBAttachLeft, , 1.0,lB, kFBAttachTop, , 1.0,lW, kFBAttachNone, , 1.0,lH, kFBAttachNone, , 1.0);SetControl(Label, mLabel);mLabel.Caption Label;AddRegion(Button, Button,lB, kFBAttachLeft, , 1.0,30, kFBAttachTop, , 1.0,lW, kFBAttachNone, , 1.0,lH, kFBAttachNone, , 1.0);SetControl(Button, mButton);mButton.Caption Button;return true;
}/************************************************* Destruction function.************************************************/
void MyTool::FBDestroy()
{}
④ mytool_lib.cpp 这是dll文件的注册信息。每个MB插件都是一个绑给MB的dll。
//
// Copyright 2017 Autodesk, Inc. All rights reserved.
//
// Use of this software is subject to the terms of the Autodesk license
// agreement provided at the time of installation or download, or which
// otherwise accompanies this software in either electronic or hard copy form.
// /** \file MyToolcxx
* Library declarations.
* Contains the basic routines to declare the DLL as a loadable
* library.
*///--- SDK include
#include fbsdk/fbsdk.h#ifdef KARCH_ENV_WIN#include windows.h
#endif//--- Library declaration.
FBLibraryDeclare(MyTool)
{FBLibraryRegister(MyTool);
}
FBLibraryDeclareEnd;/************************************************* Library functions.************************************************/
bool FBLibrary::LibInit() { return true; }
bool FBLibrary::LibOpen() { return true; }
bool FBLibrary::LibReady() { return true; }
bool FBLibrary::LibClose() { return true; }
bool FBLibrary::LibRelease() { return true; }