Metasequoia BBS

| New message | Normal | Tree |
Status
Tag
Keyword
[3900] MQObject->FreezeするとUVが全部ゼロになる / じょい
Not necessary [Bug report] Response
MQObject->Cloneしたものに対しFreezeすると、GetFaceCoordinateArrayで得られるUVが全部ゼロになります。Cloneせずに元のオブジェクトをFreezeするとUVは正しく更新されてます。

例として回転体に対して模様テクスチャを円筒マッピングしたとします。この回転体に対してFreezeしたときはテクスチャは正常ですが、CloneしてからFreezeするとUVが全部ゼロなので、オブジェクトが一色になってしまいます。(多分UV0,0の色)
2013-12-06 15:41
[3951] Re: MQObject->FreezeするとUVが全部ゼロになる / じょい
修正には時間がかかるのでしょうか?このままでは使えないのでとりあえず応急処置として、Clone元のオブジェクトのUVを参照しながら、Clone先のUVを埋めていこうかと思ったのですが、新たな疑問が出てきました。新規作成したオブジェクトのUVが全部ゼロです。

新規に回転体を作成して模様テクスチャを円筒マッピングしても、GetFaceCoordinateArrayが全部ゼロになってます。なぜかファイルに保存すると、正しいUVがセットされるようになります。Compactでは変化がありません。同じ条件でExportプラグインからは、最初から正しいUVになってました。Export=保存だからでしょうか?プラグインの種類によって挙動が変わるのでしょうか。

最初の件ですが、Clone/FreezeしてUVが全部ゼロのオブジェクトも、AddObjectするとUVがセットされることはわかったのですが、これでは使い物にならないので、やはりCloneした時点でUVも更新してほしいです。もしくは別な関数で。

とにかくどの時点でUVが正しくセットされるのか、挙動に統一感がなくてよくわかりません。StationプラグインはUV周りの編集を許可しないとか、そういう暗黙の仕様とかはないですよね?
2013-12-21 17:05
[3955] Re: Re: MQObject->FreezeするとUVが全部ゼロになる / Administrator
こちらは不具合ではありません。
平面・円筒・球による動的なマッピング形式は常にUV値を保持しなくてもよいため、
描画時に必要になるまでは計算を行わない仕様となっています。

今のところAPIとして明示的にマッピングを反映させる関数は提供していないため、
マッピングパラメータから直接計算するかまたは一回は描画が行われないとUV値を取得することはできないということになります。
2013-12-24 10:53
[3956] Re: Re: Re: MQObject->FreezeするとUVが全部ゼロになる / じょい
なるほどそういう仕様になっていたのですか了解です。
2013-12-24 17:08