トップページへ戻る
価格表と購入手順
オンラインヘルプ
ソフトウェア使用許諾契約書
モノになるポリゴン!!「MoNoGon」

MoNoGon 既知のバグ

【情報】64bit OS の場合、MoNoGon終了時に警告が出ることがある

現象・発生条件

64bit OS で MoNoGon を起動し、ヘルプタブから動画が載っているページを開くと、アプリケーション終了時に下記のエラーメッセージが表示されます。

エラーダイアログ

原因

動画コンテンツの再生には Flash が必要となります。しかし現時点で 64bit の Flash プレーヤーがリリースされていないため、このようなエラーが表示されてしまいます。

対策

動画が視聴できないこと以外には特に問題は発生しません。

上記エラーダイアログの「このプログラムは正常に動作しました」を押すと次回から表示されなくなります。

[改善した] Magicsでエラーゼロと判定されたSTLがMoNoGonではエラーと判定される場合がある

原因

STLデータは三角形の集合であり、三角形の頂点同士は明示的には共有されていません。 従って座標値が一致している頂点を探し出し、一点にマージする処理が必要となります。

この頂点マージ処理に原因がありました。

従来は、三角形の頂点が一致しているかどうかの判定を行う際に、ある程度の余裕を織り込んでいました。 つまり、2点の距離がある基準値(トレランスといいます)より近いものは同一点とみなし、一点にマージしていました。 (正確には少し違うのですが、詳細は割愛します)

しかし微小エッジを含むメッシュにおいては、望ましくないマージ処理が発生してしまうケースがあることが分かりました。 この場合、マージ処理が原因でエラーが生成されてしまう場合があります。

対策

開発版 Ver1.2.1 において頂点のマージ処理を次の二段構成に変更しました。

  1. まず座標値が完全に一致している頂点をマージ
  2. 次に距離の近い頂点をマージ

これにより実行結果に改善が見られました。

しかしMagicsは他社様のソフトウェアですので、こういったマージ処理の基準を完全に一致させることは難しいと思われます。 まずは改善したものをリリースし、今後も検証は継続していきたいと考えております。 本件について何かお気づきの情報がおありでしたら、是非弊社までご意見頂ければと思います。

[修正済] エラー修正済みデータをSTL出力して再度開くと、エラーが検出されることがある

ぴったりと一致する複数の三角形面が重複して存在するときに、このような不具合が発生することがあります。

CAD系のデータよりもCG系のデータで発生率が高いと思われます。

最も単純なバグ発生手順

  1. 三角形が一枚だけのSTLデータをインポートします → 三角形の輪郭がオープンループとして検出されます
  2. 穴埋めコマンド(Fキー)を適用すると、2枚の三角形が重複して重なった状態となり、エラーが消えます
  3. STLに保存して再度読み込むと、自動で重複面除去の処理が適用され、再び三角形の輪郭がオープンループとして検出されてしまいます

実際のもっと複雑なデータにおいても、穴埋めコマンドによって重複面が生成されてしまう場合があり、そのような場合にはこのバグが発生する可能性があります。

原因

重複面はインポート時に自動除去しているので、MoNoGon上ではそのような不具合は無いことになっているにも関わらず、 MoNoGon自身が重複面を生成してしまっていることが原因です。

お客様による対策

STL保存の前後でエラー状態が変わってしまうのはソフトウェアのバグであり修正すべきものですが、 ここでは現行のバージョンでお客様の手によって本不具合を回避する方法について説明します。

上記の例においては、三角形一枚だけの面は本来は削除するか厚みづけを行うのが妥当なデータです。 しかし安易に全要素選択して穴埋めコマンドを起動しますと、このように本来穴埋めによる修正が妥当ではないパーツにも 穴埋め処理を行ってしまい、不具合の原因となってしまいます。

パーツやオープンループの形状を一つ一つ目で確認し、穴埋めとして処理するのが妥当かどうかご確認頂いた上でご利用頂ければ このような問題は比較的回避できるのではないかと思います。 特にオープンループの中に非多様体エッジ(3枚以上の面が接続しているエッジ)が存在している場合には、まずそちらを解消してから穴埋め コマンドを適用する方がトラブルが少ないと思われます。

お手数をお掛けして恐縮ではございますが、修正版がリリースされるまでは上記方法でご対応頂きますよう宜しくお願い致します。

修正報告(Ver1.2.0)

幾つかの修正を組み合わせてこの問題に対処しました。下記に行った修正内容を列挙します。

三角形一枚のみのパーツは穴埋め不可とした

三角形一枚の外周ループを穴埋めしますと、三角形が2枚合わさった重複面が生成されてしまいます。 これを防ぐために、そのような穴埋め処理は行わず警告メッセージを表示するようにしました。

非多様体エッジを含むオープンループは穴埋め不可とした

オープンループに非多様体エッジが含まれる場合は、まず先に非多様体エッジを解消するべきです。 しかし従来の仕様ではそのようなオープンループでも穴埋め処理を行うことが可能でした。

調査を進めた結果、非多様体エッジを含むオープンループを強引に穴埋めした場合にはここで報告されているトラブルを引き起こしやすいことが分かりました。 従って非多様体エッジを含むオープンループは穴埋め不可とし、先に非多様体エッジの解消を促すように変更しました。

ポリゴン編集で重複面が発生しないようにした

ポリゴン編集タブにあるコマンドで重複面が発生する場合がありましたので、これを回避するように修正しました。

STL出力時に重複面の有無をチェックするようにした

ごく稀にですが、上記の対応をすり抜けて重複面が生成されてしまう場合があります。 このような場合にもSTLがそのまま出力されてしまうことがないよう、STL主力前に重複面の有無をチェックするようにしました。

もし重複面が検出された場合にはこれらを自動で除去し、STL出力を中断する仕様となっております。 このような場合には改めてデータを確認し、問題なければ再度STLを出力してください。

重複面の自動除去処理について

以前よりSTL/OBJインポート時に重複面の自動除去処理が行われていたのですが、従来は何もメッセージを表示しなかったためこのような処理が行われていることがユーザーには分からない状態でした。 Ver1.2.0からは、重複面の自動除去処理が発生した場合にはその旨をメッセージボックスで通知するように修正しました。

また、従来行っていた重複面の自動除去は、重複する面を検出した場合にはその片方のみを除去するという仕様でした。 しかし調査の結果、面の向きが互いに逆向きの重複面は両方とも削除してしまう方が良い結果が得られることが多いことが分かってきたため、そのような仕様に修正しました。

© QuaTouch Inc.