2016年04月21日

トラブルシューティングなど

ここ最近は したらば板の PMX関係も静かなものなので 「みなさん十分こなれてきたかな?」「いやいやもう誰も使ってないだけだろ(ワラ」 みたいに考えてましたが、

ツイッター少し覗いてみたら...全然そんなことはありませんでしたね(アイカワラズデシタ


■「起動すると変なエラーが一杯表示されるよ><」

ZIPやDLLのブロック解除忘れですね。よくあります。
DLした ZIPファイルを解凍する前に、ファイルのプロパティから "ブロック解除" を行っておきましょう。

自分は古い?Lhaz とかで解凍してるので、解除の必要はなかったりしますが(解凍ツールによってはセキュリティ関係に対応してない=勝手に解除される)


■「起動しねぇぞ!」

起動に失敗する主な理由 をよく読みましょう。
ランタイムは全部入っていますか?一度 readme.txt の冒頭に目を通してみましょう。OSによっては .NETフレームワークが入っていたりいなかったりします(3.5と4.0は多分必須/64bit版を使用する場合は.NET4.6以上推奨)

DirectX関係はグラボのドライバもよく忘れられるポイントです。またエディタや MMDで使っている DirectXは最新のものではないので(要DX9) 「最新版だから大丈夫」 というわけにはいきません。

※DirectX9も前期/中期/後期タイプなどバージョンが色々あったりします。

たまに OSが駄々をこねてインストールに失敗していることもあります(見掛け上は成功)...古いシステムを使い続けるのはホント面倒ですね。



■ UIが滅茶苦茶で使いものにならない

高解像度対応 を参照してください。
画面の解像度設定などで大きさや文字を拡大してると壊れます(win8以降は初期設定で拡大している環境も多いです)。対応面倒なので仕様です。

一応 EXEのプロパティから 「高DPIでは〜無視する」 で多少の軽減もできないことはありませんが、基本的に焼け石に水なのは変わりません。100%(拡大なし)に戻しての利用を推奨します。

スケーリングは新しいUI(WPF関連)にまかせて、古い仕様(WinForms)では無視できるようにすればいいのに...などと OSの設計思想に辟易するのでした(ホント古いシステムを(ry

※Win10の場合は、
1. ディスプレイ設定 (背景部分で右クリックなど)
2. 表示スケールの詳細設定 → アプリの表示スケールの修正 が "オフ" になっていることを確認
3. 拡大縮小とレイアウト の拡大率を変更
により UIを壊すことなく表示画面の拡大が可能です。

表示スケール修正 "オン" の場合は旧来の自動レイアウト挙動に戻るだけのようなので、こちらでは諸問題が潜在化しないよう予め壊れる設定になっています。その他 Win10の利用においても基本フォントやフォントサイズ(9pt)、各場所毎の個別のサイズ変更などをおこなわないようご注意ください。



■ 使ってると落ちる

十中八九メモリ周りが原因です。

Undo関係で本体メモリはどんどん消費されます。特に頂点数の莫大なモデルなどを編集するときは 64bit版を選択するなり、こまめなバッファの掃除(本体[編集]-[Undo用バッファのクリア] [Undoバッファ管理]からクリア)なりが重要です。

またもう一つ VRAM=グラボのメモリ という厄介なメモリもよく問題になります。PMDエディタは大丈夫だけど PMXエディタはよく落ちる、というケースはVRAMやグラボ関係(ドライバ)が怪しいです。

グラボがオンボード(CPUとかに付属してる奴)だと、メモリ管理の問題や DirectXへの対応状況など、さらにややこしいことになります。

他にも物理演算(bullet)の内部処理にも色々と問題があるようで、PMXエディタでは 32bit版と64bit版では最適化オプションが異なっていたりします(変えないと落ちまくり)

不意に落ちても大丈夫なよう、編集作業では無意識のうちに Ctrl+S を押せるようにしておきましょう(ソフトウェア作成関係者は大抵体得済み)。

一応、自動バックアップ機能は標準プラグインで用意されています(標準では OFFなので注意)


■ 帰ってこない/反応(応答)がない

処理数が多すぎるなど無茶なことをするか、なんらかの理由で内部ループに陥っているかなどで発生します(無限ループの場合は大抵スタックオーバーフローですぐに落ちますが)

※編集中にOSのロック画面を出すなど、DirectX側に負担をかけると復帰に少々時間がかかる場合があります。

しばらく放置しておけば復帰することもよくありますが、なんにせよ困ったときはタスクマネージャ(タスクバーの右クリメニューから起動可)から落としてしまえば問題ありません。

そのためにエディタは自身の環境保存を一切おこなわない設計思想になっていますので(最近使ったファイルがなかったり、表示設定などが個別保存の理由)


■ 起動したら一部のウィンドウが表示されない/どこにあるか不明

「終了時View状態保存」 という標準プラグインでウィンドウ位置を保存できますが、最小化やらなんやらの影響で値がよく壊れます(OS付属のソフトですらよく出る問題)

プラグインを一旦無効化して再起動するか、プラグインフォルダ内の当該データファイル(ViewStateSave.dat)を削除すれば治ります。

修正もできないことはありませんが、PMDエディタ時代に作成したプラグインは移植やらテストがもう面倒なのデス。


■ Xが読めない

Xのロードは DirectX側に投げているだけですが、それでもうまく読み込めないデータを吐き出すツールは多いです。

スキンメッシュも一応対応はしていますが、色々な理由から失敗することが多いです。インポートは OBJの方が多少マシですが... ↓


■ OBJが読めない

元々インポート/エクスポートプラグインのテスト用に作成しただけなので(ImportObj.txtにも書いてありますが)、あまり真面目に作ってあるわけではありません。

そもそもうちにはまともに OBJを吐き出すモデリングツールすらないので、実質的にエディタの作成(エクスポート)した OBJを読めれば OKという程度のものだったりします。

※データによっては頂点や面とかが、やたらと増えることがありますが詳細は不明です。


■「MMDと色とか違うじゃん!」

とりあえず PmxViewの右上の方に [Fx] というのがあるので押しておきましょう。これで大体同じような色合いになります。

※厳密には MMEの標準状態と同じ色計算になります。MMEと MMDの相違についての苦情は 舞Pの方へどうぞ(ぉぃ

ちなみに [Fx]状態だと地面影が MMDと同じオブジェクト影になっていたりします(標準は地面影もセルフシャドウ仕様)


■「変形階層ってなんぞ?」

「IKは 1にしないといけない」...なんてことは別にないです。そもそもにおいて"変形階層"は PMXでは全く不要なパラメータだったりします。

ではなぜこんなものがあるのか、という話は PMD/PMX両対応の PMDエディタの時代までさかのぼります。

当時は PMX(2.0)を作ったばかりで PMXモデルの存在なんてものは皆無でした。当たり前ですが。

当然ながら当時の PMDエディタは名前の通り "PMD" のための編集ツールだったわけで、内部的には PMX化していても......とまあ、この話は長くなるのでいずれまたの機会として、

現在の PMXでは特に気にする必要はありません。未だに律儀に変形階層を設定しているモデルも多いかと思いますが、

本体メニュー [編集]-[ボーン]-[同一階層化] で簡単にチャラにできますので(変形順序は守られます)、以降はボーンの順番を気にするだけでよくなります。

※少々経緯は異なりますが、外部親フラグも現在はほぼ不要なパラメータとなっています(MMMでの外部親利用ではフラグを設定しておきましょう)

※MMDでは実装の問題から IKや連動構造を組み合わせる場合など階層の調整が必要なケースがあるようです(PMX本来の変形仕様とは異なります)


■「MMDだと物理後変形にしなくても動くんだけど?」

物理後変形は同フレームでの変形を保障します。

MMDでは前のフレームからの継続で物理演算結果を引き継ぐことができるので、問題がないように見えているだけです(実際は 1F遅れています)

PMXエディタの変形は 「単一フレームでの変形を確実におこなえるかどうか」 を最重要視しています。そのため内部的には(毎フレーム)完全な初期状態からの変形を適用しています。

単体テスト重視の環境か、それとも実用重視の環境か、その違いが仕様の差異となってあらわれているわけです。

物理演算の他にも IKなどでもフレームをまたいだ結果の違いが出てきます。


■ verUPでプラグインのコピー

一々新環境に全部コピーとかしなくても、プラグインフォルダ内の "user.path" をメモ帳などで開いて中に元のプラグインフォルダパスを書けば、そのまま参照してくれます。

※書き換えた"user.path" を保存しておけば、それを新環境に放り込むだけで OK

同じように、実行ファイル(PmxEditor.exe) と同じ場所に "_data.path" を作っておいておくと、"_data"フォルダ(表示設定などが保存されています)を外部参照することもできます。


■「表情(頂点モーフ)の作成つらい...」

頂点モーフ(旧表情)編集ウィンドウは 「とりあえず作っただけ」 のシロモノですので、編集が苦しいのはある意味当然だったりします。
基本的に表情ファイル(形状データ)をまとめて放り込んでモーフにするぐらいしか想定されてません。
0.2.5.1で機能は改変されましたが、基本的な評価は変わりません。

造形はモデリングツールでできるだけ行い、PMX化の後はモデリング側へ戻らないような作業工程が望ましいです。

※後から(外部から)モーフを追加や変更したりする場合は、頂点にID振ってモデリング側へ戻し、IDを参照して変更した頂点の位置などをモーフ適用するような仕掛けを作ればいいだけですが、各モデリングツールへの引き戻しは形式がそれぞれ異なるので PMXエディタとしてそういう共通機能を持たせることは困難です(インポート/エクスポートプラグインなどをうまく活用すれば、技術的にはそう難しい話ではありません)


■ PmxViewで選択している頂点を本体側で一括数値編集

1. PmxViewで頂点選択
2. 頂点タブを開いて、本体メニュー [編集]-[リスト関係]-[現在のView対象をリスト選択] (または本体アクティブで Ctrl+L)
3. 頂点データを設定(入力部分だけ一括変更されます)

※選択対象は適宜ガイドなどに一旦保存しておくと操作を誤った場合にも復帰が容易です。

頂点や面は選択対象が大量になるケースが多く 2.の選択がとても重くなるので手動でリスト選択する仕組みになっています。自動選択にすることもできますが、まず使い物にはなりません。

他にも PMXエディタでは複数選択状態で特定のデータ部分のみを一括で設定変更することが可能です。PMDエディタではできなかった仕様なので、そもそも知らない方も多いかもしれませんね。


■ 特定のボーンだけ表示したい(絞込み)
0.2.5.1で対応しました。
とりあえずそういう機能はありませんが、

1. 絞込み表示したいボーン"以外"のボーンを選択(全部選んで絞込み対象だけCtrl+で排除した方が早い)
2. 選択ガイドなどに保存
3. ボーンの属性から[表示]をOFF
4. 絞込み状態で編集
5. 保存したボーンを選択し表示状態へ戻す

というような手順で一応できないことはありません。保存し忘れたり、戻す前に保存分が消えたりすると悲惨ですが。

剛体や Jointの絞込み表示もわざわざプラグインからしかできないようになっていたりと、その辺は色々大変なんだなぁ...と察していただけるとありがたいです(ボーンは非表示属性が元からあるし...さらに設定のために UI増やすとね...)



■「位置とかXYZで3回もコピペするの面倒なんですけどぉ」

ベクトルコピー という単語でリドミを検索してみましょう。


■「UV展開の実装はまだですか?」

ラップして貼る程度の UV展開だけなら別に難しくはありませんが、UV展開は頂点が重複複製されてしまうケースが多いので(切れ目の部分が大抵増える)、PMXのように編集頂点=描画頂点のモデルデータとは絶望的に相性がよくありません。

UV展開は PMX化の前に済ませておくのが定石です。

他にも UV展開は展開後の編集をテクスチャと組み合わせていかに効率よく行うかなど、総合力の問われる機能です。まともに関係する機能を構築していったら、それだけで高機能モデリングソフトが作れてしまうぐらいになってしまいます。

そういうわけで餅は餅屋にまかせておきましょう。


■ モデリング機能の強化希望

一度この辺の記事 よくある誤解 を熟読してみるとよいでしょう。


■「重い...」

開発環境は未だに 5年前水準の PC(※)ですが(i7-2600K/GTX460) サクサク動いております(PCの進化が止まっているせいでもありますが)

※このエントリ記載時(PMX策定以降からここまでの PMD/PMXエディタの作成は全て上記 PC環境)

重厚モデルの編集では仕方ありませんが、MMD標準モデルぐらいでも動作に支障が出るようであれば、グラフィック関係や OS環境自体を一度見直された方がよいかもしれませんね。


■ Win10で(ry

MSだから仕方ない...というのは冗談にしても、グラフィックドライバやハードウェア関係を一度洗ってみるとよいでしょう(まさか実際にPCを洗濯機に突っ込む方はいないと思いますが、一応ソフトウェア的な話ですので念のため)

他にも基本フォントが変更になっていることから、なにかしらの問題を引き起こしているケースもあるようですね。

※OSのアップデートはゴミが残ったりと様々な問題を抱えます。強制アップデート後にもう一度クリーンインストールし直すのも一つの方法です。

開発環境を Win10に移行しましたが、特に問題はないようです。なお Win10は標準で.NET4.6が入っているので、64bit版の利用が多少快適になります(起動がとても速い)


■「わからんなんとかしろ」

1. リドミ(readme.txt) を上から読み進めます。

2. PMXの各データ(情報→頂点→面→(中略)→剛体→Joint(→SoftBody))の説明が、本体(Pmx編集)のタブ順に出てくるので、実際に一つ一つのデータの値を変えてみてモデル側がどう変化するのか観察します。

3. 2.の工程で PmxViewや TransformViewを取り扱う知識が必要になるので、もう一つリドミを開いて当該項目をよく読みます(マウス操作/表示の切り替え/モデルの変形の仕方など)

4. 2.でやった作業を大量のオブジェクトに行う面倒さを想像しながら、PmxViewの各編集機能を眺めます。

5. これでだいたい PMXマスターになれます。おめでとう。

※ぶっちゃけ PMXエディタの扱いは PMXの構造や仕組みを正しく理解していれば簡単なものです。エディタの各編集機能はすべて PMXデータを入力するためのショートカットでしかありませんので。




とりあえずこんなとこでしょうか。

以上、なんか困っている方がいたら、このページを思い出して頂けると助かります。

posted by - at 22:07| PMX | 更新情報をチェックする