Metasequoia BBS

| New message | Normal | Tree |
Status
Tag
Keyword
[4125] 穴埋めで多角形を使用するとフリーズする / まじかる☆しげぽん
[Bug report,Ver4.1] Response
穴埋めで多角形を使用するとフリーズします。
手順
1.円柱を作成
2.円柱の上部の面を削除
3.穴埋めの多角形で面を作成しようとするとフリーズ

Metasequoia Ver4.1.0 (32bit) is running.
Windows version : 6.1  (Windows 7)
Number of CPU : 8
Physical memory : 16360 MB
Direct3D11 Driver: NVIDIA GeForce GTX 570
    DeviceID: 4225
    SubsysID: 0
    Revision: 161
2014-01-27 16:37
[4130] Re: 穴埋めで多角形を使用するとフリーズする / Administrator
色々試してみましたがどうにも起こらないようです。
何か発生条件のようなものはないでしょうか?
2014-01-29 17:33
[4131] Re: Re: 穴埋めで多角形を使用するとフリーズする / まじかる☆しげぽん
64bit版ではフリーズしないようです。
Windows7環境の32bit版で上記手順を行うと「Metasequoiaは動作を停止しました」と出てフリーズします。

・円柱以外でも同じで形状は特に関係ない模様
・中心、三角分割では問題なく穴が埋まる
・対称編集のオンオフも影響無し

取り敢えずこんな感じです。
帰ったら自宅のPCでも試してみます。
2014-01-29 17:49
[4134] Re: Re: Re: 穴埋めで多角形を使用するとフリーズする / まじかる☆しげぽん
自宅のPCで検証したところ原因が分かりました、N-Moveという頂点を法線方向に移動するコマンドプラグインが入っていることが原因だったようです。
実行していないコマンドプラグインが標準機能を実行する際に影響を与えることはあるのでしょうか?

法線方向に移動自体は移動で対応されたので特にこのプラグインに固執する必要はないのですが、このプラグイン以外でも同様の問題が起きる可能性があるので一応対策を行っていただけるでしょうか。

プラグインは、こちらからダウンロードできます。
https://github.com/kataho/N-Move-Metasequoia-Plugin
2014-01-30 09:26
[4139] Re: Re: Re: Re: 穴埋めで多角形を使用するとフリーズする / Administrator
コマンドがアクティブでないときもオブジェクトが変更されたなどの通知はされるので、
その際に多角形にアクセスしてエラーが起こっているのではないかと考えられます。
エラーが起こるだけでなく何か変更があるたびに常に何らかの処理をしているため、速度面のボトルネックになり作りが良くないように思います。

本体側の対処も
・副作用があるかもしれないことを承知の上で変更通知を行わない
 (本来必要な処理が行われないので不整合が生じて別のエラーが起こる可能性が高い)
・プラグイン自体を使わせないよう無効化
くらいしかなく、特定のプラグインだけについて考えれば問題なくても、同様のエラーが起こるものについては汎用的な対策法がないので、
根本的にはプラグイン側が多角形対応することが必要になるのではないかと思います。
ソースも公開されているようなので数行程度変えるだけで対応できるような気がしますが
ライセンスについての記載が見当たらないのでなんともという感じです。

2014-01-31 11:45
[4140] Re: Re: Re: Re: Re: 穴埋めで多角形を使用するとフリーズする / まじかる☆しげぽん
ご返答有難うございます。

プラグインにSDKのバージョン情報は無いのでしょうか?
Ver4以前のSDKで作成されたコマンドプラグインに多角形の情報が通知されると今回のようにエラーが起きる可能性が多いので変更通知を行わないというのもひとつかなと思います。

あとはステーションプラグインは常にシーン中の変更通知を受け取る必要がありますが、コマンドは特に必要ないかなと思うのですが標準のコマンドで非実行の際に変更通知を受け取って何かに利用している機能はあるのでしょうか?

>(本来必要な処理が行われないので不整合が生じて別のエラーが起こる可能性が高い)
これについては確かにその通りですね。
N-Move自体は代替プラグインもあるのでなんとかなりますが、なかなか難しいですね…。
2014-01-31 20:13
[4141] Re: Re: Re: Re: Re: Re: 穴埋めで多角形を使用するとフリーズする / まじかる☆しげぽん
ちょっと文字が抜けました。

>変更通知を行わないというのもひとつかなと思います。

Ver4以前のSDKで作成されたプラグインに対しては変更通知を行わないというのもひとつかなと思います。
2014-01-31 20:14
[4145] Re: Re: Re: Re: Re: Re: Re: 穴埋めで多角形を使用するとフリーズする / Tark
>Ver4以前のSDKで作成されたプラグインに対しては変更通知を行わないというのもひとつかなと思います。
そんなことしたらV3のStation/Commandプラグインはほとんど全滅してしまうんじゃないかと。
変更通知と言っても単なるイベントの一つであって、ポリゴンにアクセスするかどうかはイベントの種類と関係なく、プラグイン側の処理内容次第ですし、単にそれだけ通知しないというのに意味はないかと思います。

アクティブでないときに通知しないという意味であれば、非アクティブ時は意図してない動きである可能性も高いので、影響は少ないかもしれません。
ただOnNewDocumentやOnSaveDocumentあたりでは何かやっているものがないとも限らないでしょう。
動作させつつ回避するには三角形ポリゴン分割でしょうけれど、Select系のようにユーザが意図して起動するプラグインとは違うので、ちょっと問題が大きそうです。

なお、法線方向移動のプラグインは代替を用意されたようですが、よろしければ拙作もあります。
http://bowlroll.net/up/dl27735
別スレッドの話ですが、標準機能で実装されるのならそれはそれで結構なことですが。
2014-02-01 02:05
[4146] Re: Re: Re: Re: Re: Re: Re: Re: 穴埋めで多角形を使用するとフリーズする / まじかる☆しげぽん
>そんなことしたらV3のStation/Commandプラグインはほとんど全滅してしまうんじゃないかと。
言葉が足らず誤解させてしまいすみません、勿論コマンドプラグインが非アクティブ時にVer4以前のSDKで作成されたプラグインでということです。

コマンドは基本的にユーザが意図して起動するものなので、それ以外のタイミングでデータにアクセスすることは基本的に無いと思うのですがそういったケースが標準コマンドであるか一応Miznoさんに確認した次第です。

環境設定で、プラグインの設定として「Ver3.1.5プラグインのエラーを抑制する」みたいな形で上記のような処理をするかしないか選択できるようにするのもありかなと思いました。


法線移動プラグインは、NAL3さんの法線移動 - NormalMoveCmd -を代替として使用していて、仰られてるように基本機能であっていいと思うので別スレで要望上げました。
Tarkさんのプラグインの方はVer4対応の様で知らなかったので使ってみます。
情報ありがとうございます。
2014-02-01 04:38
[4151] Re: Re: Re: Re: Re: Re: Re: Re: Re: 穴埋めで多角形を使用するとフリーズする / Administrator
>コマンドは基本的にユーザが意図して起動するものなので、それ以外のタイミングでデータにアクセスすることは基本的に無いと思うのですがそういったケースが標準コマンドであるか一応Miznoさんに確認した次第です。

100万超のポリゴンを扱うには無駄なアクセスが一切許されないので、標準機能ではそういったことはありません。
ただ、そういった認識がないままボトルネックになるプラグインが他にも存在している可能性はあると思います。
(確認したわけではなくあくまで可能性の話なので、実際にはないかもしれません)

>環境設定で、プラグインの設定として「Ver3.1.5プラグインのエラーを抑制する」みたいな形で上記のような処理をするかしないか選択できるようにするのもありかなと思いました。

このプラグインだけについていえば対処可能かもしれませんが、
他に同様の問題を抱えているプラグインがあるとすれば、副作用でエラーが発生する可能性が高いかもしれません。

本質的には本体側で回避するものではなくプラグイン側で根本対処しないとエラーを防げない問題なので、
問題のあるものを無理に使おうとするよりも代替策を考えていくほうが賢明だと思います。
2014-02-03 10:31
[4153] Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: 穴埋めで多角形を使用するとフリーズする / まじかる☆しげぽん
コマンドプラグインが非実行時に変更通知を受ける必要はなさそうだと思いましたが、色々不安要素もありそうなので難しそうですね。

今は32bitプラグインがそのまま使えるので32bit版を使っていますが、64bit版に移行していきたいとも思っているので、使用頻度が高いプラグイン等は本家実装要望等出していきたいと思います。

本要望はこれで対応不要で大丈夫です。
2014-02-03 14:30