Metasequoia BBS

ページ 1 2 3 4 5     
/ 8
| 新規投稿 | 通常表示 | ツリー表示 |
状態
タグ
キーワード
[2424] Ver3.1 Beta3 / O.Mizno
対応済み [SDK] 返信
Beta3での変更点ですが、インポートプラグインから利用できるよう変更点がいくつかあります。

Create***UserData()のプラグインIDに常駐型・コマンドプラグイン以外のものを指定した場合、
プラグインがアンロードされた後もユーザーデータが保持されるようになりました。
ドキュメントが破棄されるか、明示的にDelete***UserData()を呼ぶまでは削除されません。
例えばインポートプラグインからCreate***UserData()を呼び出す場合、
ホストとなる常駐型プラグインのIDを指定して管理を委ねるか、
自身のIDを指定して管理者がいない状態で使用するかのどちらかとなります。

また、Create***UserData()に識別子として任意文字列も指定するようになりました。
実際にはプラグインIDとセットで判別されるので、例えば"Weight"のようなありがちな識別子を指定しても
他のプラグインとはIDが異なるので、重複ではなく別データ扱いになります。
同じIDと識別子で呼び出された場合は、新規作成ではなく既存のユーザーデータIDを返すように変更になりました。
生成せずに既に存在するかだけを調べるFind***UserData()も追加されたので、
これでインポートプラグイン・常駐プラグインのどちらでCreate***UserData()を呼びだしても、
同じように扱うことが出来ると思います。
インポートプラグインでユーザーデータを先に用意しておき、常駐プラグインのOnNewDocumentが呼ばれたら
ユーザーデータがあるかどうか調べて適切に処理することができるかと思います。
2012-06-15 17:15

途中の11件のメッセージを表示

[2784] Re: Re: Re: Re: Re: Ver3.1 Beta3 / mqdl
>Beta7でalloc時にゼロクリアされるようにしました。
>SDK自体は変更ありません。

確認させていただきました。
ゼロクリアされている様でした。
ご対応ありがとうございました。
2012-10-17 21:17
[2637] GetVertexRelatedFacesのバグ? / とーや
対応済み [SDK] 返信
こんにちは。バグがありましたので報告します。

SDK Rev3.00
Metasequoia Ver3.0.4以降

● バグ発生手順

1:オブジェクトパネルの「複製」で
面を含むオブジェクトを複製します。

2:複製したオブジェクトで「GetVertexRelatedFaces」を実行すると、
必ず面数0を返してきます。

※…GetVertexRelatedFacesの挙動を表示する「Station Spy」を添付
しましたので参考にしてください。
ファイル [T20120916203949.zip]
2012-09-16 20:39

途中の2件のメッセージを表示

[2674] ありがとうございます / とーや
修正お疲れ様でした。ありがとうございます。
2012-09-23 18:29
[2558] バグでしょうか? / とーや
対応済み [SDK] 返信
こんにちは。Rev3.00でプラグインを作成しています。

MQScene::SetCameraAngleで「bank」だけセットされないバグがあるようです。
(追記:GetCameraAngleでもbankは常に0になります)

あと、三面図ウィンドウで視点の移動(マウスの中ボタンドラッグあるいは十字アイコンで操作)した場合、
MQStationPlugin::OnUpdateSceneを呼び出しますが、
直接動かした三面図ウィンドウの「MQScene scene」の情報が得られません(呼び出していない?)。
連動して動く他の二つの三面図ウィンドウのsceneは得られます。
(三面図ウィンドウのsceneの扱いが良く分かりません。。。。)

プラグイン作成は初めてなので自信がありませんが確認お願いします。
2012-08-14 15:00

途中の2件のメッセージを表示

[2658] Re: バグでしょうか? / O.Mizno
Ver3.0.5でOnUpdateScene()には実際に操作が行われたシーンが渡されるようにしました。
Ver3.1 Betaでは既に修正済みです。
2012-09-19 10:13
[2457] 面のUV頂点が全て選択されているか / mirim
対応不要 [SDK] 返信
お世話になります。
以下のプログラムである面のUV頂点が全て選択されているかうまく識別できません。
すべてのUV頂点を選択していても基本失敗します。
頂点が共有されているとだめなのでしょうか?
よろしくお願いします。

// カレントオブジェクトを取得
MQSelectFace sf;
sf.object = doc->GetCurrentObjectIndex();
MQObject obj = doc->GetObject(sf.object);
if (obj == NULL) return false;

int numFace = obj->GetFaceCount();
// 全ての面
for (sf.face = 0; sf.face < numFace; sf.face++)
{
bool faceSelectFlg = true;
int numFacePoint = obj->GetFacePointCount(sf.face);
int vertex[4];
// 頂点取得
obj->GetFacePointArray(sf.face\x2c vertex);
// 面の全ての頂点がUV選択されているか
for (int i = 0; i < numFacePoint; i++)
{
if (!doc->IsSelectUVVertex(sf.object\x2c sf.face\x2c vertex[i]))
{
faceSelectFlg = false;
break;
}
}

// 選択されている場合
if (faceSelectFlg)
{
2012-06-27 17:12

途中の1件のメッセージを表示

[2459] Re: Re: 面のUV頂点が全て選択されているか / O.Mizno
頂点カラーもそうですが、ドキュメントに面内頂点のインデックスと記載されているものは0から角数-1を指定します。
面が持つ頂点数を超える値を指定した場合の動作は保証されませんので注意してください。
2012-06-27 20:29
[2355] VertexUserDataについて / Jama
[SDK] 返信
SDK 310_beta1で対応して頂いたVertexUserDataについて質問です。
機能的にはまさに望んでいたものなのでどちらかというとコンセプト寄りな
確認なのですが・・・。

・CreateVertexUserDataの引数について
プロダクトID、プラグインIDを与える形になっていますが複数プラグインが
1つのユーザデータを扱う場合何か一つのプラグインがユーザデータ管理を
一任する事になります。例えばボーンプラグインで、ボーンプラグイン本体、
ボーンウエイトペイントプラグイン、多数フォーマットへのボーンデータ
インポーター/エクスポータのように複数の方がボーン編集に関わるプラグインを
作る事が考えられます。。
この時、ユーザデータアクセスが最初のボーンプラグインに依存してしまうと
作者さんが開発凍結された場合に困った事になりそうです。

こういった複数プラグインからの同一ユーザデータアクセスではどういった
使われ方を想定されていますか?

・保存について
VertexUserDataの保存は各プラグインがOnSaveDocumentでXMLElementに
書き込む形になるのでしょうか?ほぼ全てのプラグインが保存に関するコードを
書くのも勿体無いというのもあるのですが上記の件のように複数のプラグインが
同一ユーザデータを扱う場合、保存/読み込みのバッティングに気を配る必要が
あります。
今回、データの実態をメタセコイア本体で把握できるようになったのでMQOに
保存されてもいいかなぁと思ったり。

・頂点の追加/挿入について
これは少し厄介ですね。Copy/Pastについてはほぼ面倒を見て貰えるので
実装は大変楽なのですがナイフツール等で挿入された頂点については前に話を
したようにユニークIDを用いた総当りかユーザデータにダーティフラグを入れる等
の対策しかなさそうです。この辺りはプラグイン側でどのような実装をする事を
想定されていますか?


とりあえずこんなところです。この機能はまだ実験実装段階だと思いますので
将来的な構想などでもいいのでお答えいただければと思います。
2012-05-31 01:26

途中の13件のメッセージを表示

[2406] Re: Re: Re: Re: Re: Re: Re: Re: Re: VertexUserDataについて / O.Mizno
>インポータプラグインの読み込み(SendUserMessage)→OnEndDocument→OnNewDocumentとなり初期化フラグをクリアするタイミングがないのですが…

そういえばEndDocumentのほうが後ですね。
SendUserMessageのときにEndとNewの処理を行うという手もありますが、そうすると今後はファイルの読み込みと挿入の区別がつかなくて困るかも。
やはり何かしら仕様を拡張するなりしないと駄目という気がしました。
インポート周りは一度こちらでも試しにテスト実装してみたほうが良さそうですね。
2012-06-10 19:57
[2029] 面の表示・非表示の取得 / Cool0707
対応済み [SDK] 返信
Rev2.49cを使っています。
現在オブジェクトごとの表示・非表示状態を取得する関数はありますが、
面や頂点ごとの表示・非表示状態を取得する関数がないので、追加していただけないでしょうか。

あとオブジェクト・マテリアルをUniqueIDをもとに取得する関数(GetObjectIndexFromUniqueID的なもの)がないのでできれば追加していただけないでしょうか。
2011-05-22 00:05

途中の2件のメッセージを表示

[2192] Re: Re: Re: 面の表示・非表示の取得 / O.Mizno
Rev3.00ではGet/SetFaceVisibleで面が隠されたかどうかも取得できるようになりました。
2012-01-14 10:27
[2046] 外部のウィンドウツールキットと併用すると落ちませんか? / tueda
[SDK] 返信

エクスポーターに外部のウィンドウツールキットを使ってGUIによるオプション選択画面を実装すると、
2回目以降の呼び出しで不定期に落ちます(症状はいろいろ。アクセス違反やxpsp2.dllやadbshellで落ちたり...)。
1回目は大丈夫です。出るとしたら2回目以降。
ウィンドウツールキットの部分だけコメントアウトすると正常に動作します。
また単に0からツールキットを使ってウィンドウを作るだけのエクスポーターを作っても同様の症状で落ちます。
ツールキットにはFLTK-1.3\x2c FLTK-2.0\x2c gtmm-2.6で試しましたが、3つとも同じ症状です。
開発はVisualStudio 2010 Expressで基本ランタイムは基本的にマルチスレッドもしくはマルチスレッドDLLです。
私の感触ではメタセコイア側のプラグインDLLの起動処理もしくは終了処理が良くないと思っていますが、
同様の症状もしくは何らかの情報があれば教えてください。
こちら(エクスポーター側)ではウィンドウを作るだけでアウトなのでどうしようもありません。
他の人はWin32APIを直叩きしているから大丈夫なんだろうか...(が、それはやりたくない)
2011-07-15 13:04
[2047] Re: 外部のウィンドウツールキットと併用すると落ちませんか? / tueda
念のため現象が再現するミニマムの完全なコードを張っておきます。
VisualStduio 2010用。
http://dl.dropbox.com/u/32901747/Metasequoia/Workspace.ExportError.zip
エクスポート(.err)->別のmqoを開く->エクスポート(.err)
でエラーが出ると思います。出なかったら何回か同じ手順を繰り返す。
エクスポーターの中でやっていることはウィンドウを開いて閉じるだけです。
2011-07-15 15:53
[2039] GetGlobalDirectionalLight()の返す値がおかしい / tueda
[SDK] 返信
MQScene::GetGlobalDirectionalLight()の返してくるライトの方向がおかしい(気がする)ので教えてください。
添付したmqoファイルのようにY軸正の方向から負の方向に照らしているはずが、
MQScene::GetGlobalDirectionalLight()の返してくる値は(-0.57\x2c 0.44\x2c 0.68)と下から上に照らしている事になっています。
GetGlobalDirectionalLight()の返す値がおかしいと思っていますが、
こちらの勘違いかもしれません。
何かヒントをいただけると幸いです。

dropboxの方にもmqoファイルとスクリーンショットを置いておきます。
http://dl.dropbox.com/u/32901747/Metasequoia/capture-metasequoia.jpg
http://dl.dropbox.com/u/32901747/Metasequoia/capture-visualstudio.jpg
http://dl.dropbox.com/u/32901747/Metasequoia/illegal-GetGlobalDirectionalLight.mqo
ファイル [T20110620160931.mqo]
2011-06-20 16:09
[1963] 「辺」に属する頂点を導き出したい / GOKU
[SDK] 返信
お世話になっております。要望があります。

「面」に属する頂点は簡単に引っ張り出せるのですが、
「辺」に属する頂点を出したいのです。
これもインデックスで引っ張り出せるようになりませんか?
選択の確認は MQDocumentクラスの「IsSelectLine」で簡単にできるのですが。

やり方があるのに、私が理解していないだけかもしれません。
その場合は、やり方を教えていただきたいのです。

お願いします。
2010-12-09 20:41

途中の3件のメッセージを表示

[1967] Re: 「辺」に属する頂点を導き出したい / GOKU
>lineは面の中の頂点のインデックスを示すもので、
>lineとline+1が両端の頂点にあたるものです。

そうでした。以前、疑問に自分で思い調べた覚えがあります。
一度も使わなかったので、完全に忘れてました。

あえてワザと口語で返しましたが、頭にきませんでしたか?

こちらの非礼に関しては、謝罪致します。
それと、返信ありがとうございました。

ミスなのかワザとなのか、分かりませんが、
上のルーチンは、ループの条件部分が抜けているので、
見た方は注意して下さい。
2010-12-13 17:23
[1799] UV頂点の区別 / mkj
[SDK] 返信
UV頂点には、複数の面の頂点が単一化されたものと、本当に単体のものとがあります。
プラグインでUV頂点を操作する際に単一化されたものを一つとして認識したいのですが、どのようにその情報を取得すればよいでしょうか?
具体的には選択されたUV頂点をすべて取得する際、単一化された頂点はあくまで一つとして認識したいのですが、IsSelectUVVertexで面の3D頂点から選択済UV頂点を取得すると、単一化された頂点同士も別のUV頂点として扱ってしまうことになってしまうと思います。これを解決したいと考えております。

SDKマニュアルやデータファイルも読んでもわからず、申し訳ないのですが
教えていただけるとありがたいです。
2009-12-16 21:28

途中の2件のメッセージを表示

[1901] Re: Re: UV頂点の区別 / mkj
おかげさまでやっと成果物をリリースしました。
UV頂点の端点を結ぶ直線に整列です。
ありがとうございました。
2010-08-09 11:00
最新 前のページ 次のページ