Visual Studio 2015を使ったMaya Qtの始め方
今回はQtを使ってmaya pluginを作成するやり方を自分自身いろいろな方法を試してみたのですがなかなかうまくいかなかったり、うまくいったけどスマートじゃなかったりなど試行錯誤した結果 一番やりやすいなと思ったvisual studio 2015で完結できる方法を紹介したいと思います
作業環境
Software
visual studio2015
Qt 5.6.1
maya2019 update2
事前に必要なもの
Qt Package
Qt Visual Studio Tools
Qt Test Adapter Extension
visual studio2015にExtensions and updatesから上記をインストールしている必要があります
Qt5.6.1
Qtのarchiveから環境に合わせて必要なものをDLしてきます
今回はvs2015でしたのでDLしたものはqt-opensource-windows-x86-msvc2015_64-5.6.1-1.exeをC:\qt\Qt5.6.1
にインストールしました
更新日: 2022年7月8日
リンクが変わりました
qt-opensource-windows-x86-msvc2015_64-5.6.1.exe
Maya Developer Kit
バージョンに合わせ任意のpathに解凍します
今回はC:\mayaSDK\win\2019\
に解凍しました
Set environment variable
以下の環境変数の設定を行ってください
variable name | variable value |
---|---|
DEVKIT_LOCATION | C:\mayaSDK\win\2019 |
QT561MSVC2015 | C:\qt\Qt5.6.1\5.6\msvc2015_64 |
Visual Studioのセットアップ
必要なデータがそろいましたのでprojectを作成していきましょう
ソリューションを作成する
Visual Studioを開き、Empty Project
を作成します
Solution Explorerで右クリックし、Propertiesを選択し、Configuration Managerから
Debug、Releaseともにplatformをx64に変更します
Projectのセットアップ
Configuration Properties>
General>
General\Target Extension: .mll
Project Defaults\Configuration Type: Dynamic Library(.dll)
VC++ Directories>
General\Include Directories: $(DEVKIT_LOCATION)\include
General\Library WinRT Directories:$(DEVKIT_LOCATION)\lib
$(QT561MSVC2015)\lib
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\amd64
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib\x64
Configuration Properties> C/C++>
General>
Additional Invlude Directories: $(DEVKIT_LOCATION)\include
Language>
Enable Run-time Type information: yes(/GR)
Preprocessor>_ALLOW_ITERATOR_DEBUG_LEVEL_MISMATCH
;WIN32
;NDEBUG
;_WINDOWS
;NT_PLUGIN
;REQUIRE_IOSTREAM
Configuration Properties> Linker>
General>$(DEVKIT_LOCATION)\lib
$(QT561MSVC2015)\lib
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\amd64
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib\x64
必要なライブラリーを入れてください
全部入れる必要はないですが今回はめんどくさかったのですべて入れました
Input>
awxml2.lib
cg.lib
cgGL.lib
clew.lib
Foundation.lib
Image.lib
IMFbase.lib
MetaData.lib
OpenMaya.lib
OpenMayaAnim.lib
OpenMayaFX.lib
OpenMayaRender.lib
OpenMayaUI.lib
Qt5AxBase.lib
Qt5AxContainer.lib
Qt5AxServer.lib
Qt5CLucene.lib
Qt5Concurrent.lib
Qt5Core.lib
Qt5DBus.lib
Qt5Designer.lib
Qt5DesignerComponents.lib
Qt5Gui.lib
Qt5Help.lib
Qt5Location.lib
Qt5Multimedia.lib
Qt5MultimediaQuick_p.lib
Qt5MultimediaWidgets.lib
Qt5Network.lib
Qt5Nfc.lib
Qt5OpenGL.lib
Qt5OpenGLExtensions.lib
Qt5Positioning.lib
Qt5PrintSupport.lib
Qt5Qml.lib
Qt5Quick.lib
Qt5QuickParticles.lib
Qt5QuickTest.lib
Qt5QuickWidgets.lib
Qt5Script.lib
Qt5ScriptTools.lib
Qt5Sensors.lib
Qt5Sql.lib
Qt5Svg.lib
Qt5Test.lib
Qt5UiTools.lib
Qt5WebChannel.lib
Qt5WebEngine.lib
Qt5WebEngineCore.lib
Qt5WebEngineWidgets.lib
Qt5WebKit.lib
Qt5WebKitWidgets.lib
Qt5WebSockets.lib
Qt5WebView.lib
Qt5Widgets.lib
Qt5WinExtras.lib
Qt5Xml.lib
Qt5XmlPatterns.lib
qtmain.lib
tbb.lib
zlib.lib
Command Line>
Additional Options: /export:initializePlugin /export:uninitializePlugin
ソースファイルを用意する
プロジェクトの設定がおわったので以下のソースファイルを作成してください
Source Files>qtPlugin.cpp
Header Files>helixQtCmd.h
それぞれのコードはdevkitにありますので該当するデータをコピペしてください
Source Files>qtPlugin.cpp: ..\devkit\plug-ins\helixQtCmd.cpp
Header Files>helixQtCmd.h: ..\devkit\plug-ins\helixQtCmd.h
ファイル自体もコピーしても問題ないです
.proファイルを作成します
.pro
はQtプロジェクトのビルドに使われるプロジェクトファイルになっていますqtPlugin.pro
を作成し.h
や.cpp
と同じ場所に配置します
中身は以下のように記述します
| ------------ | ------------ |
| HEADERS | headerファイル |
| SOURCES | cppファイル |
| TARGET | ターゲットファイルの名前を指定。デフォルトでは、プロジェクトファイルのベース名が含まれています |
詳しくは公式サイトにいろいろまとまっています
.proを読み込む
Qt Vs Tools>Open Qt Project File(.pro)...から先ほど作成したqtPlugin.pro
を開きます
開き終わった後にBuildすると.mll
が作成され、その.mll
をmaya上で読み込みhelixQt;
を実行するとwindowが表示されbuttonを押すとカーブが作成されるはずです
今回ここまでたどり着くのにいろいろな方に助けていもらいました
この記事が広く役に立つとうれしいです
参考
Maya 2017 devkit - Building Qt plug-ins instructions
Using Qt in Plug-ins
ディスカッション
コメント一覧
まだ、コメントがありません