This MotionBuilder plugin provides a convenient search dialog for quickly creating objects in the Relation Constraint.
-
MotionBuilder: 2022 ~ 2027
Note: MotionBuilder 2020 is no longer supported since v3.0.
-
OS: Windows
Caution
This plugin is implemented based on the internal specifications of MotionBuilder, which are not officially supported by the MotionBuilder SDK. It has been developed by leveraging the Qt libraries, based on the assumption that the MotionBuilder UI is built on Qt. However, these internal specifications are subject to change without notice in future updates. Please use this plugin at your own risk.
It is not recommended for use in production environments, such as:
- Live performances or real-time operation
Instead, please use this plugin only for:
- Offline editing or pre-setup tasks
For safety, please remove installed plugin from the plugins folder in your production environment.
-
Download the latest release from the Releases page
-
Extract the downloaded archive
-
Identify the product version of your software
(e.g., use
...-MB2027.dllif you're using MotionBuilder 2027) -
Copy the corresponding
.dllfile into the default plugin folder:MotionBuilder <version>/bin/x64/plugins(Note: You may need administrator privileges to copy files to the
pluginsfolder.)
See the DeepWiki page for detailed documentation: DeepWiki
You can build the documentation locally using Doxygen if you have it installed. Run doxygen <path/to/docs/Doxygen/Doxyfile>, and refer to the generated index.html in the html folder.
-
Tab – Open search dialog / Toggle "Find Option"
(Note: This control only works if the mouse pointer is hovering over the relation view.)
-
Up/Down – Navigate the suggest list
-
Enter / Click – Confirm selection and create object
-
Esc / Click outside – Cancel and close dialog
Tip
Press A while hovering over the relation view if the relation object is not created at the expected position (at the mouse cursor).
Since this plugin monitors mouse interaction with the relation view to determine where to create the object, the calculation will result in an incorrect position if the view is "frozen" (i.e., dragged with the mouse but the view was not moved).
Since v3.0, settings button ( ... ) has been added to the search dialog, allowing you to customize the behavior of the search dialog and open the online help page.
Push the settings button and select "Preferences..." to open the preferences dialog.
The LineEdit on the top of the preferences dialog displays the path of the configuration file. Right click the LineEdit will open the context menu, where you can copy the path to clipboard or open the folder containing the configuration file.
In the preferences dialog, you can customize the following settings:
-
Show Hit Operator First (default) / Show Hit Category First
Whether to search by operator name first or category name first.
If "Show Hit Category First" is enabled and you typeq, the search results will prioritize categories that start withq(e.g., "Quaternion"), while if "Show Hit Operator First" is enabled, the search results will prioritize operators that start withq(e.g., "Converters - Quaternion To Axis Angle"). -
Do not search in namespaces (default: OFF)
Whether to ignore namespaces when searching for models. If enabled, only the model name will be considered for searching, and the namespace name will be ignored.
-
Model Search Filter (default: All filters enabled)
You can choose which types of models to include in the search results. For example, if you disable "Skeletons",
FBModelSkeletonmodels will be excluded from the search results.
Note
These settings are saved in the RelationConstraintDialogConfig.ini file generated in the %USERPROFILE%\Documents\MB\<version>\config directory. You can also edit this file manually to change the settings.
The following online resources are available:
- Relations Reference: Official Help of relation operators
- GitHub Repository: This repository
-
Visual Studio Build Tools & "Desktop development with C++" workload
- MSVC v143 - VS 2022 C++ x64/x86 build tool : MotionBuilder 2024 ~
- MSVC v142 - VS 2019 C++ x64/x86 build tool : MotionBuilder 2022, 2023
-
Qt - qtbase(Required), qttools(Optional)
This plugin depends on qtbase (specifically QtCore, QtGui, and QtWidgets modules), and utilizes the qttools module to design the UI using Qt Widgets Designer.
- Qt 6.8.3: MotionBuilder 2027
- Qt 6.5.3: MotionBuilder 2025, 2026
- Qt 5.15.2: MotionBuilder 2022 ~ 2024
First, create Qt Account on the Qt Group website, and download the Qt Maintenance Tool, then install the required Qt components (Open Source version) with the Maintenance Tool.
-
vcpkg
This project uses vcpkg for project configuration and dependency management. Set up vcpkg with the following command:
git clone https://github.com/microsoft/vcpkg.git cd vcpkg; .\bootstrap-vcpkg.bat
Click version number to see the official resources.
-
Qt Source
Qt Version Visual Studio Version Qt 6.8.3 Visual Studio 2022 Qt 6.5.3 Visual Studio 2019 or 2022 Qt 5.15.2 Visual Studio 2019
-
MotionBuilder Plugin
MotionBuilder Version Visual Studio Version 2024, 2025, 2026, 2027 Visual Studio 2022 2022, 2023 Visual Studio 2019
You can customize the UI of the search dialog and preferences dialog using the Qt Widgets Designer. Open the .ui files with the designer to edit the UI visually.
After you've finished editing the UI, use uic (User Interface Compiler) to convert the .ui file to the header file .h.
path/to/Qt/bin/uic.exe SearchDialog.ui -o ui_SearchDialog.h
Note
This process is not necessary, as the AUTOUIC CMake property automatically generates the header files from .ui files during the build process. Run this command only if you need it for features like code completion in your IDE.
-
Open the terminal as an administrator.
-
Clone this repository.
git clone https://github.com/Ndgt/Relation-Constraint-Dialog.git cd Relation-Constraint-Dialog/src
-
Edit the user-specific variables in CMakePresets.json according to your environment.
You might need to change the following variables:
generator: The CMake generator to useMOBU_ROOT: The installation path of MotionBuilderQT_SOURCE_SEARCH_PATH: The installation path of the Qt source
{ "version": 6, "configurePresets": [ { "name": "base", "hidden": true, "architecture": { "strategy": "set", "value": "x64" }, "binaryDir": "${sourceDir}/build/${presetName}", "generator": "Visual Studio 18 2026", "toolset": { "strategy": "set" }, "cacheVariables": { "CMAKE_AUTOMOC": "ON", "CMAKE_AUTOUIC": "ON", "CMAKE_CXX_STANDARD": "17", "CMAKE_CXX_STANDARD_REQUIRED": "ON", ... { "name": "MotionBuilder2027", "inherits": [ "base" ], "toolset": { "value": "v143" }, "cacheVariables": { "MOBU_ROOT": "C:/Program Files/Autodesk/MotionBuilder 2027", "PRODUCT_VERSION": "2027", "QT_SOURCE_SEARCH_PATH": "C:/Qt/6.8.3/msvc2022_64" } },
-
Build and install plugin
cmake --preset MotionBuilder2027 --fresh cmake --build --preset 2027-RelWithDebInfo --clean-first cmake --install build/MotionBuilder2027 --config RelWithDebInfo
The built plugin.dllfile will be copied to the default folderMotionBuilder <version>/bin/x64/plugins.
Note: If you are using Visual Studio Code, you can use Tasks to run these commands. See tasks.json for reference.
-
This project uses the Qt framework (Community Edition) via dynamic linking.
The Qt components used in this project are licensed under the GNU Lesser General Public License version 3 (LGPLv3). The LGPLv3 license text is included in this repository (LICENSES/Qt/lgpl-3.0.txt). You can also view the original license text on the GNU website here.
For more information about Qt licensing, visit the Qt Company licensing page.
-
This project also uses Microsoft Detours.
Detours is licensed under the MIT License. The MIT license text is included in this repository (LICENSES/Detours/LICENSE.txt)
This project is licensed under the BSD 3-Clause License. See the LICENSE file for full details.
Please note that while this project is BSD-licensed, the use of Qt is subject to LGPLv3 and Microsoft Detours is subject to the MIT License. Redistribution of the binary must comply with the terms of these licenses.








