Metasequoia BBS

| New message | Normal | Tree |
Status
Tag
Keyword
[7983] SDK に関する質問数点 / i-saint
[Request,SDK,MQWidget] Response
モーフターゲットの取得/設定を行う API はありますでしょうか。
それと、親オブジェクトの設定を行う API はありますでしょうか。(MQDoc_GetParentObject の対)
もしないのであれば、今後のバージョンで追加していただけるとありがたいです。
よろしくお願いいたします。
2019-01-09 23:13
[7984] Re: SDK に関する質問数点 / Administrator
モーフ関連のアクセスについては次期バージョン(4.7?)にて対応予定です。

親オブジェクトの設定は、まだドキュメントに登録されていないオブジェクトであれば、MQDocument::InsertObjectで親または兄弟の後ろに来るよう追加してから、SetDepthで親の1つ下の階層を指定することで可能です。
ただ、既にドキュメントに追加済みなら、順序の入れ替えを行うAPIがないので、親の設定し直しもできないということになりますね。
2019-01-10 11:54
[7986] Re: SDK に関する質問数点 / i-saint
返信ありがとうございます。
了解いたしました。4.7 のリリースをお待ちしております。
親オブジェクト設定や順序の入れ替えを行う API も追加を検討していただけると幸いです。
2019-01-10 13:09
[8213] Re: SDK に関する質問数点 / i-saint
4.70 でモーフの情報にもアクセスできるようになったのを確認できました。ありがとうございました。
2019-04-26 16:16
[8214] Re: SDK に関する質問数点 / Administrator
モーフのAPIについては純正の入出力プラグインで必要な分の機能しか用意していないので、〇〇ができないとかあるかもしれません。不足している機能がありましたら要望としてお寄せください。
(順序入れ替えのAPIもまだ用意していませんでしたね・・・)
2019-04-26 17:22
[8216] Re: SDK に関する質問数点 / i-saint
了解です。いい機会なので、これまでに欲しいと思った機能などを列挙しておきます。
前提として、私はメタセコイアのモデルをリアルタイムに Unity にインポートするプラグインを作っています。(MeshSync: https://github.com/unity3d-jp/MeshSync ) SDK の用途としてはやや特殊かもしれません。

- モーフのターゲット毎のウェイト値を取りたい
  リアルタイムにプレビューするのが目的なので、これができるとなお嬉しいです。その上でウェイト値変更の時に MQStationPlugin の OnUpdateUndo() や OnObjectModified() で通知があるとさらにありがたいです。

- MQStationPlugin の OnUpdateUndo() や OnObjectModified() で、変更があったオブジェクト/マテリアルを取得したい
  現状 MeshSync では OnUpdateUndo() が呼ばれたら無条件で全オブジェクト舐めているのですが、実際に変更があったオブジェクトに絞れると大きく無駄を省けます。
  (余談ですが、OnObjectModified() はマテリアル編集時には呼ばれないので OnUpdateUndo() で処理を行っています)

- SDK のサンプルに MQDockFrame & MQDockWindow の使用例が欲しい
  自作のウィンドウを、オブジェクトパネルやマテリアルパネルのようにメインウィンドウにドッキング可能にしたかったのですが、やり方が分からなかったので断念しています。自作の MQDockFrame にしかドッキングできなそうな気がしたので早々に諦めたというのもあります。いずれにせよ、サンプルを用意すべきだと感じました。
  また、もしメインウィンドウにはドッキングできないのであれば、ドキュメントにその旨明記しておいた方がいいように思います。( 私に限らず、MQDockWindow という名前を見てやりたくなるのはまずそれだと思われるので)
2019-04-27 06:20
[8237] Re: SDK に関する質問数点 / sss
Tag has been changed from [Question,SDK] to [Request,SDK,MQWidget].
便乗ですいませんが、MQWidgetはドキュメントやサンプル(WidgetTest)だけでは動作がよく分かりません。現状はトライアンドエラーで各Widgetの動作を調べるしかなく、とても効率が悪いです。
MQWidgetの部分だけでもいいからソースを公開してもらえないでしょうか?
それができないのならば、ドキュメントをもっと細かく書くか、サンプルをもっと増やして欲しいです。

あとSDK4.7からEnumStringの戻り値がconst char *からconst wchar_t *になっています。ためしにwchar_tで返すと文字化けします。SDK4.7bataまではconst char *なのでSDK4.7が間違っているのはなでしょうか?
2019-05-09 15:09
[8239] Re: SDK に関する質問数点 / Administrator
>便乗ですいませんが、
元メッセージと直接関係ない別の内容の場合は新規投稿でお願いできますか。書く側はその時限りかもしれませんが、こちらとしては後で対応済みかそうでないかがわかりづらくなって管理が困難になってしまいますので。

>MQWidgetはドキュメントやサンプル(WidgetTest)だけでは動作がよく分かりません。
どの関数がわかりづらいかがわからないと、やみくもに細かく説明しないといけなくきりがなく、工数上の問題もありますので、説明は必要最小限にしています。
分からない点があれば積極的に質問してください。そのほうが早く解決できます。

>あとSDK4.7からEnumStringの戻り値がconst char *からconst wchar_t *になっています。ためしにwchar_tで返すと文字化けします。SDK4.7bataまではconst char *なのでSDK4.7が間違っているのはなでしょうか?
国際化対応の強化の一環としてBeta4の後で正式版では仕様を変更し、wchar_t型を扱うMQEnumStringW()の定義が追加され、MQEnumStringW()があればこちらを優先し、なければ互換性のために従来通りのMQEnumString()が使用されます。
また、これに合わせてMQBasePluginベースのクラスではEnumString()の戻り値はconst wchar_t*型に変更されました。overrideキーワードを付けていればコンパイラレベルでエラーや警告が表示されると思いますが、いずれにせよ既存のコードは戻り値の型を変更する必要があり、当然ながら返す文字列も「L"文字列"」のように記述されたワイド文字列でないといけません。
サンプルプラグインのコードもすべて変更済みなので、試しにサンプルが返している文字列を日本語に変えてみるなどして試してみてください。
2019-05-09 16:21