株式会社デジタル・フロンティア-Digital Frontier

Header

Main

  • TOP
  • DF TALK
  • MayaプラグインにQtを入れよう

MayaプラグインにQtを入れよう

2013/6/10

Tag: ,,

お久しぶりです、ソルです。

近況ですが、20年近くMS社のOSに忠誠心を示してきた僕ですが、この前ついにMacを購入しました。
人生初のMacデビューなので未だに使い方が分からず一々Google先生に質問して使っていますが、
まるでコンピュータを初めて触った時に戻ったようで楽しい日々を送っています。

やはり、Macと言えばUIのデザインがきれいですね。開発者のこだわりと思いやりを感じとても感動しています。
そのため社内のツールもMacスタイルのUIを採用していたりします。

(このツールはLookDev用のHDRイメージを管理するツールです)

CGソフト内で作られるツールは大体シンプルなボタン式のUIが多いと思いますが、たまには少し変わったツールを作るのも新鮮な刺激になると思います。そうして使う人がツールを楽しそうにいじっているのを見るのもなかなかうれしいことです。
(ツールをリリースした後はいつも隠れて後ろから観察しています。じーー)

僕はツール開発する時は主にPySideを使っています。コーディングの手軽さと結果が簡単に確認できる所はやはりPythonの強みですね。

ただたまには他のC++ライブラリとQtを連携したツールを作る時があり、そういう時にはC++のQtを使っています。

(このツールは2DイメージのUV空間から3D空間上の位置を割り出すツールです。)

このツールは初めてのC++Qtの挑戦だったので色々苦労しながら書いていました。
特に会社で開発している際、迷っていたのがこの問題です。

error LNK2001: QMetaObject …… metaObject ……. は未解決です。

「何これ!家では動いていたのに!」

調べてみるとQtのQ_OBJECTマクロを使っているとmocを使ってコンパイルしたSourceが必要ということでした。

(自宅ではQtCreatorを使っています。QtCreatorはこの問題を自動で処理してくれます)

詳しくはWebで!  MOC : Meta-object compile

ちょっと開発室の人の手を借りて分かった方法が以下です。

まず、下記のようなバッチを作り、実行します。

set OUTPUTFILE=moc_hogehoge.cpp
set HEADERFILE=hogehoge.h
set QTDIR=Qtが設置されている場所
set PATH=%QTDIR%\bin;%PATH%
moc -I”%QTDIR%\include” -I”%QTDIR%\include\QtCore” -I”%QTDIR%\include\QtGui” -o%OUTPUTFILE% %HEADERFILE%

そうしてコンパイルされたmoc_hogehoge.cppをソースファイルに追加すると、無事にビルドできるようになると思います。
毎回これを実行するのが面倒だったらバッチファイルを「ビルド前のイベント」の「コマンドライン」に追加します。
 
 
 

そういえば、Maya 2014からはPySideが標準でInstallされるようになりましたね。これから自前のモジュールを用意しなくても良くなったのでとても嬉しいです!

皆さん、今日は普段と違う何か面白いツール書いてみませんか?
それではまた!
 
 
 

Special Thanks to Goto And Hiromu!

Pocket

コメント

コメントはありません

コメントフォーム

コメントは承認制ですので、即時に反映されません。ご了承ください。

*