2020年03月12日

0257

■更新内容

・内部構造の更新(不具合修正)
・選択範囲の隣接拡張及び縮小
・高解像度環境関連(非)対応
・TransformViewのUI更新(IK一括ON/OFFなど)
・内部エフェクトコンパイル仕様(/fxc)破棄

以上


お久しぶりの更新です。といっても不具合修正関連がメインですが。

結構重めの不具合 (円形選択範囲=ウェイト描画範囲が一部正常に機能しない/ハンドル編集が一部カクつく) が長いこと残っていたようなので、その対応と、あとおまけでちょっとした機能追加でも。

※おまけのはずだったんだけどなぁ...むぅ剛体め...

●選択範囲の隣接拡張及び縮小

選択対象を隣へ拡張したり縮小したり、といった機能です。[+](正確には[;]) や [-] キー (非テンキー) にマッピングされています。簡単にできるだろう...と、軽い扱いで作成し始めたものでしたが、無駄に手の込んだ有様に(ry

一応リドミの当該部分を貼っておきますね。
----
〇隣接対象への拡張/縮小について
頂点/面/ボーン/剛体/Joint において、それぞれ隣接対象へ選択対象を拡大または縮小します。
[+]([;])キー / [-]キー にそれぞれショートカットされており(非テンキー)、Shift+/Ctrl+ でさらに異なる動作をおこないます。

・頂点/面
面選択(△)時は面単位で拡張/縮小をおこないます。辺(2頂点)を共有している面を隣接対象とみなします。
Shift+の場合は頂点単位(1頂点共有)で面の拡張をおこないますが、縮小は対応していません(常に面単位で判断)
なお頂点単位(Shift+)での拡張は四角面単位で拡張されていくような動作になります。

△以外では、面が選択有効になっていない場合(=頂点のみ選択有効)は頂点の接続単位、
つまり辺として頂点が繋がっている対象へ拡張及び縮小をおこないます。

頂点/面ともに選択有効の場合は面選択(△)と同様に拡張をおこないます(△と同じく縮小には対応していません)
例外として△以外で面が選択有効の状態でも Ctrl+で頂点接続単位の拡張に強制が可能です。

全体的な注意点として拡張のあとに縮小をおこなっても同じ状態には戻るとは限りません。

また立体的な構造として選択面に対して端(はし)のない状態になると縮小は機能しなくなります。
例としては球形のようなすべての面がつながっている形状が該当します。
それらの面(頂点)を全部選択してしまうと、端が判断できない状態となり=縮小対象が存在しない、とみなされます。
単純な箱形状でも同様の状態になりやすいので注意が必要です。

・ボーン
通常時は子側(=親として指定されている対象)へ選択対象の拡張/縮小をおこないます。
Shift+:親側 / Ctrl+:両方 へ対象が切り替わります。
その他の選択機能と同様に、非表示属性ボーンも内部的には選択対象になっていますが、
絞込みで非表示になっているボーンは対象外となります。両者は非常に混同しやすいのでご注意ください。

・剛体/Joint
ボーンと同様に、通常時は子側 / Shift+:親側 / Ctrl+:両方 へ対象が切り替わります。
剛体には親子関係を指定するパラメータが存在しないので、便宜上以下の仕様に従います。

Jointで指定された [剛体A] → [剛体B] を 親→子 の剛体関係とみなす
非物理剛体の場合は上記に加え関連ボーンの直接の親子ボーンに関連する剛体も 親/子 の剛体とみなす

これらの対象に対して選択対象の拡張/縮小をおこないます。
実際は非物理剛体において系列内で離れたボーンに関連する剛体、要するに途中に何か挟まっている親子関係のボーンが対象
といった状態もあるので、すべての剛体に対して正常に動作するものではありません。

当然ながら条件が複雑なこともあり、拡張からの縮小で同じ状態に戻るとも限りません。

----

※「なるほどわからん」

なお剛体関連はパターンが複雑で対応しきれませんでした。双方向Jointとかだと正常に機能しないかもしれません。

他にも物量が増えると極端に重くなるかもしれないのでご注意を (下手に負荷軽減をやりすぎると今度は全体動作の方にそのコストが回ってしまい結局本末転倒に...)

●高解像度環境関連

あいかわらず "壊れたUI" のまま使い続けているスクショなどもたまに見受けられますが、環境対応自体については Win10側の OS機能において既に解決済みの案件です。

一応今回色々手を尽くしてみましたが、やはり "通常対応すること自体が無駄" なことがよく解ったので、最低限の初期設定のみであとは OS側へ投げることにしました。

※途中で開発環境内が壊れすぎて 「あ、コレ終わりだわ...」 と、あやうく完全終了状態になるところでした。

詳しい設定方法については、別途 "高解像度対応" の記事に記載したので、そちらを閲覧してください。

●TransformViewのUI更新

・IK欄のON/OFF → リスト上の ON / OFF のラベル部分をクリックで一括設定可能
・同IK欄に [Key] 項目追加 ([モーションキーによるIK有効切り替え]メニューへのショートカット)
・操作パネルの開閉を画面右下ボタンからメニュー操作(F12)へ移行
・操作パネル開閉時の画面サイズ調整
・スケール欄に [SDEF対応] 配置 (同機能メニューへのショートカット)

といったあたりの修正がおこなわれています。

●内部エフェクトコンパイル仕様(/fxc)破棄

誰も知らない機能の一つですね。特に問題になったという話もきかないので基本仕様から外しました。


以上、今回の更新内容でした。

いつの間にやら干支も一周していたようで 「まだ続けてるのか?」 と自分でもたまに思いますが、といってこれほど手軽に、またなにより気軽に遊べる創作系の環境も、そうそう替わりがないようですからね。

最近はツール類よりもむしろ wikiや掲示板に代表されるような情報集積や情報交換の場の老朽化、使い難さが目立つように感じます。

何か解らないことがあっても直接人に訊くのはなかなか難易度の高いミッションです。ネットの向こうの知らない人相手であれば尚更ですね。

※海千山千の MMD熟練者たちに直接話しかけるなんて、自分には怖くてとてもできませんわ><

結局 「誰かがやっている(いた)ことを見て学ぶ」 のが一番楽なわけで、そういうものが非常に見え難くなった、探すことに多くのコストがかかるようになった、というのが特に新しく始めようと思う方たちにとっての しんどいこと のように思います。

まあ流行り廃りといえばそれまでの話ですが、自分たちはあまりに恵まれ過ぎていた状況だっただけに、そんなことを頓に感じる昨今です。

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

高解像度対応

PMXエディタの高解像度環境への対応方法について記載しておきます。
対象環境は Windows10を想定しています (画像は Win10-1903)

■対応手順
1. ディスプレイ設定を開く ※背景の右クリックメニュー
2. 表示スケールの詳細設定の修正項目を "オフ" にする
3. ディスプレイ設定のサイズを変更する
0157.png


2.が オンのまま拡大すると下記のようにフォントの大きさが変更され、いくつかの UIが不正な状態になります。
0158.png


※全体環境を オン (ボケにくい設定=実際はXP時代の従来方式に戻しているだけ) で使いたい場合は以下の手順を試してみるとよいでしょう。

ex. 実行ファイル(*.exe) のプロパティから 互換性 → 高DPI設定の変更 → "システム" で上書き
0159.png



対応手段はいくつか検討しましたが、

・標準コントロール (OS側の基本UI) に解決できない問題が残る
・開発環境においても重篤な不具合?が出てしまう

というあたりで、やはり古い規格の標準UIを使っている限り、完全な対応は難しいように思います。


以上

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

2019年12月04日

小ネタ2 (PMXエディタ)

大半の内容については、説明書(readme.txt) や以前のブログ記事などでも触れているものですが、まあ復習がてらということで。

過去の小ネタなどは DLページ からどうぞ。


■ 繋がったパーツの選択方法

0118.png

0119.png



■ 重心と中央の違い

0120.png

0121.png

図説の通り、見た目が同じでも選択頂点の状態によっては、重心と中央の値に違いが出ることがあります。

なお "中央" と呼称していますが、分布 (統計) の中央値 (順番に並べたときの真ん中の対象) とは本質的に異なるので注意しておきましょう (以前は 重2 でしたが解り難いので 範囲の中央→中央 へ改名)

その他、用語関係が気になる方もいるかもしれないので、一応書いておきますが...

加算平均は一般(数学)的には相加平均や算術平均と呼ばれます。いわゆる普通の平均のことです。字面的に解りやすいので個人的によく使っています (同リドミ)

また "最大最小平均" はここでの勝手な造語(説明用) です。一般的な名称ではないので勘違いされないように (画像や UI関係などではよく使う割に適切な呼び方がない?)

ちなみに平均には 加重平均 というのもあります (算数や数学でやりましたね?)。アレがすなわち頂点のウェイト計算そのものだったりします。ウェイト=重み とか 合計が何故 1.0 (100) なのか とか色々繋がりますね。



■ 複数の値を一度にコピペ
●コピー
0122.png

●ペースト
0123.png

●クリップボード経由
0124.png



■ 任意の値をベクトルコピー状態にするには?
視点の回転中心位置の直接設定など、一部のベクトルコピー関連でクリップボード経由が使えない場合の対処方法。
0125.png



■ 座標の簡単コピペ

0126.png

0127.png

実際は ベクトルコピー → クリップボードへ貼り付け → (クリップボードから) 位置のペースト というルートで処理が進んでいます。要するに "テキストコピーからでも位置のペースト設定は可能" ということです。


■ 座標のX/Y/Zを個別に設定

0128.png


現在 (PMXエディタ以降) は以下の手順の方が早かったりします。

0129.png



■ 位置揃え

0130.png



■ パーツ単位での位置合わせ

0131.png

特に互いに頂点モーフを持っているパーツ同士を組み合わせるような場合は TransformViewでの編集を推奨します。なお位置ペースト機能は通常モデルの回転ボーンなどでも強権的に発動可能なので、利用にはご注意を。



■ 形状更新で注意すること
●余計な変形状態が入らないよう、まず初期状態にしてから必要な変形を加える
0132.png

●頂点モーフ正規化による違いを理解する
0133.png

●頂点モーフ正規化って実際なんなん?
正規化をしない場合は変形した状態をそのまま PmxView側のモデルデータ (同本体データ) に上書きします。図説にあるように、頂点モーフ自体は更新前のモデル状態からのオフセット (差分) のままなので、破綻してしまうケースが出てきます。

正規化処理の内実は、現在の変形状態に対して、
1. A:頂点モーフなし / B:頂点モーフあり の 2つの変形状態を作る
2. B - A の頂点差分から頂点モーフを再度作り直す
ということを全頂点モーフに渡って繰り返しています。

要するに 「裏で大量の変形とモーフの再作成処理をおこなっている」 わけですね (故に負荷が高くなりやすい)



■ ミラー操作

0134.png

あまり知られていないようですが、PMXにはミラー (鏡像) オブジェクトを記憶する手段はありません。エディタに こんな編集機能 があること自体が本来おかしなことなんですね...



■ ナイフの使い方

0135.png

ナイフを使うときは一つの辺ごとに切断していくのがコツです。といっても、そもそも PMX的には (△面しか扱えないので) ナイフはできる限り使用しない方がよいですが... (どうしてもの時用)



■ Del と Shift+Del の違い
●Del (ボーン/剛体/Joint 対象)
0136.png

●Shift+Del (頂点 対象)
0137.png

ということで 同じ削除処理 といってもその仕組みは全く異なるので、別の処理として分けられているわけです。特に Shift+Del の場合は意図しない対象にも影響が及んでしまうケースが多く注意が必要です。

なお、どちらでも表示枠内の対象は参照先がなくなると自動的に削除されています。



■ らくらくポーズ作成
●従来方式との比較
0138.png

●キャンセル系変形 (Shift+でのボーン操作)
0139.png

これらの変形操作を組み合わせることで、面倒なポーズ設計が多少楽になるようになっています (無理な改造不要/まあ何事も最初は慣れが必要ですが...)

操作方法の詳細は異なるかもしれませんが、一応 MMMにおいて同系方式のポーズ作成機能が実装されているかと思います。

※多段ボーンとか連動IKを駆使した自動操作とか (一般3DCGでは専用Rigとか果てはFullBodyIKとかね...)、そういう互換性を犠牲にする局所進化に頼るだけでは、全体的な底上げからは遠ざかるばかり...もっと根本的な部分での改善をなぁ...特に MMDで培われたような 「みんなで前に進みましょう」 的な環境では...

みたいなことは昔からよく考えます。まあ今更な話ですが。



■ 変形画面の枠内サイズ変更

0140.png



■ 特別なモーフ操作

0141.png



■ モーション再生/物理演算ベイク(固定化)
●TransformView で確認
0142.png

●VMDView
0143.png

モーションによる変形確認にさらに踏み込みたい場合は VMDViewを使うとよいでしょう。

※元々こっちが (PMDエディタ時代では) メインで、PMXエディタになったときに TransformViewに再生機能が付いたんですけどね。



■ 自動バックアップ

0144.png



■ HSV(色相)で材質色設定

0145.png



■ 色合いの確認

0146.png

多用されている MME用のエフェクトは大半そのままでは使えません。エフェクト機能は、あくまで確認用途としての役割が主です。



■ "E" の付く数値

0147.png

ということで不具合ではなく仕様です。

他に NaN(非数) とか Infinity? とかの表記を見掛けることがあるかもしれませんが、そちらの場合は値として壊れているので、見付け次第すみやかに初期化 (0を入力など) してやる必要があります。



■ 視点の回転中心表示 (PmxViewのみ)

0148.png



■ カメラ操作(テンキー)
※ MMDとは若干キー配置が異なります。
0149.png

0150.png



■ 実物長(仮想距離)の測り方

0151.png



■ 簡単板ポリ作成

0152.png



■ 本体編集時に反応が悪いときは?

0153.png



■ ファイルダイアログとパスの関係
ファイルダイアログは数多のアプリケーションで共通部品として使われていることもあり、本来ならここでわざわざ採り上げるような内容ではないはずなんですが...
0154.png

ファイルダイアログは案外よくできているので、コマンドラインの頃の知識が多少あれば 一々マウスでポチポチ移動するとかの必要はなかったりします。

なお (図説内との繰り返しになりますが...) 上書き保存 (Ctrl+S) の初回時は事故防止のためにダイアログを一旦開く仕様になっていますが、ダイアログの表示フォルダがモデルの格納場所と異なっていても、そのまま Enterを押すだけで問題ないように設定されています (理由はもう解りますね?)

下手にフォルダの方をマウスで触ったりすると余計な手間が増えて大変なことに...なるのでご注意ください。



■ インポート時のテクスチャフォルダの注意点

0155.png

モデルオープン (開く) と (追加) インポートの最も大きな違いは、テクスチャフォルダの設定更新にあります。

追加時は変更されないので、例えば 「インポートしたら真っ白になってしまった」 みたいな経験のある方は案外多いのではないでしょうか。テクスチャの参照パス (フォルダ) を意識すると、そのあたりの問題は解決が早くなるかと思います。

なお余談ですが、テクスチャの再ロードは PmxViewの [更新] でおこなうことができます。加えて更新監視機能なんてのもあったりしますが、その辺の詳細はリドミを参照してください。



■ とりあえず確認

0156.png




やっぱり キリガナイ ですな...

他にも個別記憶や仮想軸なんて機能も増えていたりしますが、まだまだ活用どころか機能実装すら知られていない気も(ry

ではちょっと長くなりましたが、今回はこんなところで。


以上

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