Poly to Poly
Main/History
GraphiX
LScript
Plugin
Knowledge
Blog

 [ 仕様面 八苦 9.2対策 9.3対策 9.3.1対策 ]

◇Lightwave9.2のバグや問題点と対応策を思いつくままだらだらとメモしとく(07/10/08更新)。
 W2K、ATI RADEON 800GT/Catalyst6.2での話。

 Catmull-Clarkが色々問題抱えてるのは相変わらず。 何も改善されてないと言っても過言では無い状態。

○モデラ

●BGConform
 モデルファイルを跨いで実行すると落ちる。
 同一ファイル内であれば大丈夫。(ファイルを跨いでても8.5では問題なく処理され、9.0では落ちないが処理は行われない。)
 モデルA(1Layer)を作成&保存。 そのままモデルB(1Layer)として別名保存。 Aを読み込み。
 A,BをFG/BGに配してBGConformを実行すると無言で即落ち。
 モデルA,Bを読み込み。 同様に配して実行するとWindowsのアプリケーションエラーダイアログを出して落ち。
 モデルA,Bを新規に作成(未保存)。 同様に配して実行するとWindowsのアプリケーションエラーダイアログを出して落ち。
 対応策はファイルを跨ぐな。 使うな?(゜д゜)
 運用スタイルにもよるけど、レイヤ内データの有無変化に対応出来てないHUBによるアイテム無限増殖問題と衝突するから、数珠繋ぎにコレへの対策も必要。
(9.3でもそのまま。)

●頂点選択状態とRevertCurrentObject(再読込み)
 前回保存以降に新規作成された頂点が選択状態にある時にRevertすると落ちる。
 平気に見える時もあるけど次は無いから禁じ手。 その状態で保存も危険な気がする。 要モデラ再起動。
 回避手段としては頂点選択解除をする癖を付けるか、頂点選択解除してからRevertを呼ぶスクリプトを組む、辺り。
(9.3では落ちなくなった。IDズレによる気持ち悪い選択状態が残るのはご愛嬌?)

●ユーザコマンド
 相変わらずLW9から壊れたまま放置。
 モデラのSaveCommandListで取れるリストの各項目のパラメータ部は文字化けしてる。レイアウトは問題無し。
 対応策無し。 無い物と思うしかなさげ。
 LScriptのCommandInputで使えるのはリスト内の上からclose_all(aboutの上)迄(多分メニューのExecuteCommandでも同じ)。
 メニューのUserCommandは外部プラグイン+meshedit迄しか出ない。
(9.3でもそのまま。)

●全フォントリスト強制取得
 LW9からOSにインストールされてるフォントのリストを起動毎に取得するようになった。
 従来の「必要なフォントだけ登録しておく」という事は出来ない。
 LW上のフォント登録/管理機能が無意味な状態。 弊害はLW起動速度の低下、コンフィグファイルの膨張。
 対応策無し。
(9.3でフォントの全走査は仕様化。際して設定ファイルへの書き出しは省略されるようになった。)

●マスタープラグイン/WindowConfigure
 アタッチした段階でLSがエラー吐く。 一応動きはする模様。
 コンフィグのディレクトリ(置き場)を「−c」オプションで%user%以外にしてる場合の症状との事。
 起動時の状態を保持せず0から設定し直すような動作をするのが基本動作なのか、↑でコンフィグを読み損ねてるせいなのかどうかは普段使った事無いから知らない(w
(9.3で確認する気なし。)

●表示オプション/レガシーGL表示のON/OFF
 デフォルトは新GL表示であり、従来型の表示にするにはこのオプションをONにする必要がある。
 でも、設定を記録しないので毎回パネルを開いて設定し直さないといけない。
 対応策無し。
(9.3でもそのまま。)

●新GL表示
 論外。 透明度を使ったサーフェス/ポリゴンの表示は特に悲惨。
 透明体表示に関する設定でソート方法をObject/Polygonで選択出来るが殆ど意味をなさない。
 Objectソートがファイル単位なのかレイヤー単位なのかは不明。
 レイヤー順、ポリゴン作成順等、で一貫性無く表示内容が変わる。 また、近傍するポリゴンは正常な表示を期待出来ない。
 ATI系固有の問題というわけでもなくnVidia系でも同様ぽい。
 対応策無し。 その上、従来表示のON/OFFスイッチが記憶されないので以下略。
(9.3でも差はなし)

●新GL表示&SortByPolygon?
 テクスチャ表示時にファイルを跨いだレイヤ選択をすると落ち事がある(ATI X800GT/Cata6.2)。
 条件不明。
(9.3でも落ちた。)

●モーフ表示(新GL表示)
 同一モーフを持つレイヤ/ファイルが複数あり、いずれかのレイヤを表示中にモーフ選択状態(右下やVMapWindow)を変更した場合、非表示だったレイヤを表示対象にした際に不正な表示になる。
 対応策は、まともな表示になるまでモーフ選択のOn/Offを繰り返す。
 レイヤの複数選択等を駆使してパズルを解く。
(9.3でも不正表示になる。)

●InsertLayer/DeleteLayer( LSC )
 英語版(β)添付の物は何かしらの問題を抱えてる。
 日本語パッケージはLW9.0と同様にDStormのInsertLayer.pに差し変わってるの問題は無し。
 でも、パッケージングの問題でDeleteLayer.lscが混入してるので、AutoScanPluginがON(デフォルト)の時どうなるかは不定。

●TextureGuide(?)
 サーフェスで空っぽのUVマップを参照してるオブジェクトを対象にして実行すると落ちる。
 対応策はUVマップに何かしらのデータ(0 Fill等)を入れてから使うか、適宜参照を外してから使う。
(この事自体は9.3で解消された模様。)

●UV FreeMove
 不連続UVの値が 値n<=0.0 や 値n=>1.0 の個所等に対して、ポリゴン選択とFreeMove+Dragを使い頂点に触ると、VMAD側頂点がVMAP側頂点座標に強制的にスナップされる。
 発生条件に多少の御幣あり。 シリンダ/スフィアでUV作成した時などによく問題になる。
 △分割の球を作り、円柱でUV作成する。上の方の△の羅列をポリゴン選択し、UVの-X側にはみ出てる三角の左端頂点をクリックすると+X(右側)にすっ飛んでいく。
 対応策は「そうするな」って感じか。 やっちゃっても取り返しはつくから我慢してね、と。
(9.3でもそのまま。)

 ポリゴン選択で選択した状態でFreeMove ONで編集すると、選択範囲と非選択の境界部が不連続UV化される。
 FreeMove+ポリ選択は禁じ手。 ポイント選択で凌げ。
(9.3でもそのまま。)

●Transform UV(UV値変換)
 UVマップが選択されていないとオブジェクト形状自体が変形される。
 対応策はUVマップを選択し忘れないで下さい、ってとこか。
 UVマップが空であっても選択さえされてれば形状に干渉はしない模様。
(9.3でもそのまま。)

●LScript2.9
 既存の非サポートコマンドがあったりなかったり。 互換性名目でバグを放置したり別の理由だったり。
 もはや趣味のインタプリタ作成に何言っても無駄って感じ?。

●LScriptの擬似ノンモーダルパネル(随時処理/プレビュー動作)
 reqbegin()とreqend()の隙間で実処理をさせる事で擬似的な随時処理/プレビューが出来ていたのが出来なくなった。
 reqend()して初めて表示の更新が行われる状態なんだと思う。
 対応策無し。
(9.3で解消?)

●LScriptのweldaverage()。情報元Tama-tama氏のブログ
 基本的に機能しない。 機能する場合もあるみたい。
 weld系は個人的に禁じ手だったので気づかなかった(;・з・)
(9.3でもそのまま。)

●内部コマンド selhide
 selhide()で局所的にポリゴンを隠す処理をするとポリゴンは隠れるが選択マーカーが出たままになる(対称モードでの選択問題と同様)。
 ポリゴン選択では非表示ポリゴンを対象に出来ないので選択状態を解く事は出来ない。
 move等の別ツールでビューポート上をクリックすると不正なマーカーを消せる(表示の適正化のみを目的とする場合は何も無い所をクリックしないと駄目)。
 この状態はLScriptやプラグイン/コマンドに選択有りとして渡される模様。
 LScriptでは選択として認識されるが(不可視属性ゆえに?)存在しないとしてエラーになるみたい( selhide(SELECTED); selpolygon(CLEAR)の二行CodeでNG )。
 選択状態のみを見てる機能は隠れているポリゴンに対して通常の処理を行うっぽい(Deleteとかetc)
 モデラ自体のコマンドHide Selectedであれば上記現象は出ない。 LW9/2.8でも問題ない。
 LScriptのselhide()、CommandInput(〜selhide〜)、コマンドシーケンスプラグイン(DLL)でのexecute(〜SEL_HIDE〜)全てでNG。
 LScriptの場合、問題が発症している状態でmove()等を捨て実行(移動量0等)する事で回復出来るが、Undoバッファを消費する。
 バッファを消費させない為にselhide→move→undo→終了とすると、不正な状態に戻してから終了するので意味がない。バッファ消費は妥協するしかなさげ。
(9.3でもそのまま。)

●UV補間とUVビューの描画
 UV補間モードがLinear以外の時、UVビュー上でクリック(Mouse Down)を受けている間は全ビューでLinear補間として表示される。
 ドラッグ中は曲線補間の描画(UV線画、プレビュ)を見る事が出来ない。 また、表示が逐次切り替わる為に操作しづらい上、クリック頻度によっては脈動してるみたい見えて気持ち悪い。
 これにより補間モードを変更している場合は実質的に役に立たない状態。
 対応策無し。
(9.3でもそのまま。)

●対称モードでの選択
 隠しているポリゴンも選択される。
 左右対称の箱作って片方を隠して、残った片方を選択すると、隠してる方も選択される、と。
 LScriptのselhide()と似た状態が出来る。 但しこちらは選択状態を変更しなければ選択解除用機能で解除は可能。
 それ以外ではselhide()と同じ。
(9.3でもそのまま。)

●LWSを直接参照する機能/プラグイン
 Lightwave 9.2 ネイティブのLWS4を扱えない物。 LWS3としてエクスポートした物は可能。
 VertexPaint(vtxPaint.p)のVertexLoader(3.5.6)。
 DStormのLoadBones.p(対応Ver発行済み)。
 MMRenamer.p。


○レイアウト

●TargetItem時のRotate
 アイテムを任意目標にターゲットした後、アイテムを移動させた直後はRotate値が適切に取得されず正しいキーが打てない。
 ターゲット→直後のRotate値更新(*1)→移動(RefreshするまでRotate値は*1のまま)→強制Refresh(*2)
 Rotateを正しく取得出来るのは(*1、*2)の時。
 PiviotRotateに対応してないのもそのまま。 対応する気があるのかは謎。
 対応策はショートカットキーにRefreshNow()を割り当てて連打(w。
(9.3でもそのまま。)

●新シーンエディタとポップアップメニュー
 リストマネージャとのカップリング限定かは判らないけど、主にポップアップメニューへの操作を困難にする結果を招く。
 LWを再起動させれば元に戻るけどね。 でも、終了させる過程で↑の影響を受けて致命的な結果になる可能性(誤保存や破棄)もあり。
 無難な対応としては新シーンエディタを常用しない。
 リストマネージャと旧シーンエディタの組み合わせでは問題は出ない/低確率ぽい。
(9.3で解消してるっぽい)

●サブパッチケージ
 ソリッド表示にしか適用されない上に、水色の破線の下に黒の実線が書かれて汚い。
 LW9でソリッド表示オブジェクトにしか表示されなくなったのは仕様じゃなくてバグだと思うのだが。
 個人的にはソリッドのみって段階で意味が無くなった機能だから無視するしかなさげ。
(9.3でラインの汚さは解消されたみたい。)

●ボーン参照とRedraw/Refresh
 外部のボーンを参照している場合で、AutoKey/OFF等でキーが未確定な時、枝葉になるボーンによる変形がリアルタイムにされない。
 対応策はAutoKey/ONにして常にキーが確定されるようにする。

●RenderGlobalのMultiplier(解像度の倍数)指定
 Multiplierを変更してもパネル上のWidth/Height値に反映されない。
 resolution(解像度)プルダウンに触る事で再描画される。
 見た目だけの問題でレンダリングには影響無し(レンダリング後のUI再描画で適切な値になる)。
(9.3でもそのまま。)

●GL表示
 頂点カラーが効かなくなった。 頂点カラーを使う人には致命的劣化。
 それ以外の点に関しては良くも悪くもないってない模様。
 Transparencyにイメージや基本値以外の動的な値を使ってる場合は基本値に0以上(0.0001等)が必要(ATI/nVidia)
 Specular+Transparencyのサーフェスに他サーフェスのパラメータが干渉する(ATI)。
(9.3でもそのまま。)

●プリファレンス/GLライト数
 スライダの感度設定がかなり低く設定されてる。 バグというより作成者の気遣いの問題だけど。

●FullTime IK オプション
 ON/OFFが無視され常にONとして扱われる。
 対応策無し。
(9.3で解消)

●Replace by layer
 存在しないレイヤ番号を指定すると置き換え対象が根こそぎ消される。 Undoも効かない。
 置き換えする時は事前セーブを怠らないように。
 その際にLWが落ちなくなっただけでもマシと言えばマシだけど、取り返しのつかない状態になるんじゃリロードするしか無いんだから意味無いよ。
(9.3でプルダウン式の選択になり存在しないレイヤを指定出来なくなった。)

●グラフエディター
 Track Item Selections(トラックアイテム選択)はSelectItemコマンドしか捕捉しない。
 標準で矢印キーに割り当てられてるのはnext/Pre〜だから捕捉されない、新シーンエディタはAdd&Removeなんていう変な事やってるから捕捉されない、と。
 仕様と言えば仕様だけど、仕様バグというか開発者の思考バグ。

●NodeとMaterialとサーフェスプレビュ
 NodeでMaterial使用時にサーフェスエディタのプレビュー背景設定が無視される(強制的にレイアウト背景になる)。
 条件にもっと幅があるかも知れないけど、基本的にはこんな感じだと思う。
 対応策無し。
 まぁサーフェスエディタのプレビュ枠にどれだけ意義があるか微妙だけど。

●Blur Length
 9.2で与えるべき値がプラスでなくマイナスになった?(従来はプラス)
 うやむや。

●カメラビュー時の常時MotionBlur
 カメラビュー使用時にビュー枠のプルダウンからMotionBlurの常時プレビューが選択出来るようになった。
 但し、常にRefreshを掛けつづけるので、その間はAutoKey OFFによる未確定型(要キー打ち)のモーション編集が出来ない。
 移動/回転操作→Refreshが掛かってキャンセルの無限ループとなる。
 対応策はAutoKey ONで使え。
(9.3でもそのまま。)

●ボーンツール/Tip Mover
 子を持つボーンに適用した場合、確定後のRefreshがされない為、不適切な描画になる。
 対応策は適宜Refesh/RefreshNowする(redraw/RedrawNowでは無意味)。
 それ以前にローカルのXYがどんどんずれていくから使い物にならないと思う。
 蛇足として、IKBを弄った後にこれを弄ってたら落ちた。
(9.3で解消? 9.3でもIKB>boneMode ON>TipMove>boneMode OFF後にClearSceneしたら落ちた)

●IKブースター
 配下の一連のボーンの先端をfixすると、IKBoostToolで根のオブジェクトをドラッグで移動出来ない(8.5等ではドラッグ出来る)。
 対応策はドラッグではなくクリックで弾くように(点描する気で)連打する。
(9.3で解消? 9.3でもIKB>boneMode ON>TipMove>boneMode OFF後にClearSceneしたら落ちた)

●プレビュー作成
 1フレーム目が適切に処理されずゴミデータになる。
 バッファをOpenGLのバックサーフェスにしている場合、1フレーム目でジオメトリが描画されない(サブパッチケージは表示される)。
 フロントの場合、表示されていた物(現在時の状態)が1フレーム目としてキャプチャされる。
 別項目をDirectDrawにする事でバッファにDirectDrawを指定する事も出来るが論外な結果になった(GPUやOS、ドライバに依存する可能性はある)。
 対応策はバッファをフロントにし、プレビュー作成を開始する際に現在時をその先頭フレームにしておく事で擬似的に正常な状態を得る。
 左右にゴミが残ったりするけどね。
(9.3でもそのまま。)

●ClothFX/SoftFXとnonefxポイントセット
 FXの計算対象外フラグとして、8のマニュアルに書いてあるポイントセットnonefx。
 8.5ではMDDデータの書き出しを失敗させる問題があるらしいけど、公式には非公開の内容なので以下略。 9.xでどうなってるかは不明。
 nonefx/pointsetがあるとvmap等のリストアップされる内容が変わるけど、nonefxで(擬似的に)削除される頂点にのみ付いてるvmap類はリストアップされないから、っぽい。
 9.0のマニュアルからはnonefxの記述が抹消されてるみたい。

●MotionMixerとExtendedChannel(MorphMixer)
 LW9〜LW9.3ではCreateMotionでMorphMixerのChannelのキーを適切に取得/操作出来ない。 また不正終了のトリガーにもなる。
 LW8.5では問題なし。
 例として、1)モーフ付きオブジェを読み込む。 2)MorphMixerを適用。 3)そのチャンネルの10フレームにキーを打つ 4)MotionMixerを適用。 5)CreateActor>ActiveActor OFF 6)CreateMotion(0-10frame、DelKey) 7)AddMotion>ActiveActor ON。
 LW9〜9.3では(6)において10フレームだけではなく0フレームのキーも消える。 LW8.5では0フレームのキーは残る。
 LW9〜9.3ではモーフチャンネルのキーが取得出来ていないので(7)迄済ませても適切なアニメーションを得られない。 LW8.5では問題無し。
 ClearSceneした後、同じ工程を繰り返すと、LW9〜9.3では(6)の段階で不正落ちする。 LW8.5では問題無し。
 既存のシーンを読み込む分にはLW9.0でも使えるらしい(再生のみ?未確認)。
 対応策は(6)でDeleteKeyをOFFにし、キーをそのまま残す(どうせ上書きされる)か別途手動で消す。
 但し、不正終了のトリガーがDeleteKey動作に依るものなのか、MotionMixer全体に依るものなのか不明なので、使う時は覚悟して使う必要がありそう。
(9.3でもそのまま。)

●Render Frame(レンダリング)
 現在時刻でなく現在+1フレームがレンダリングされる可能性がある。
 スライダが10フレームの時、実際にレンダリングされるのは11フレーム、と。
 何がトリガーになってるのかは未確認。 LWS3を対象にした時、モーションブラー使用時、辺りか・・・。

●アドバンスカメラとか
 標準のセルエッジが出ないのは仕様。
(9.3でアドバンスドカメラ以外のカメラにおいて可能になった)


○スクリーマネット

●保存先ディレクトリ指定
 ドライブ直下&第一階層を出力先にすると結果データが保存されない。
 対応策はディレクトリを深く掘れ。 だそうです。


○その他
●メニュー編集
 メニュー編集でのタブ選択時の表示切替や、追加/削除時に即時的な反映がされない。
 8の頃にも同じ事があった。
 対応策は・・・完成像を想像しながら気合で編集しろ。
(9.3で解消)