2023年03月05日

しばらく様子見 (0275)

■ 更新内容
・開発環境をVS2022へ移行
・.NET Frameworkの対応バージョンを4.8へ変更
・必須ランタイム変更 (.NET4.8/VC++2022)
・動作対象環境をWindows10以降へ変更
・標準動作(PmxEditor.exe) を64bit版に復帰 (32bit版は同梱のみ)

■PMXエディタ 0.2.7.5
PmxEditor_0275.zip
※ファイルへの直接リンク禁止!

規約については ダウンロードページ を参照してください。なお上書きによる更新は実行ファイルなどが入れ替わりゴミが残ります(上書き更新禁止)。ご注意ください。

以上



諸般の事情(※) により開発環境の移行を余儀なくされたため、更新版を置いておきます。

※旧開発環境の認証処理が進まなくなった ("認証に失敗" ではなく "処理が進まない")。IE11関連の変更(停止) が原因?...かどうかは解りませんが、サーバー側の問題も考慮して結構な長期間に渡り何度か確認 (及び再インストール、再構築など) を繰り返してみましたが×

仕方なく現行版の VS2022へ引っ越し → 推奨環境である .NET4.8へ変更。あわせて対象OSが Win10以降となるので、64bit動作を標準環境としました。

ある意味 先祖返り ですかね (既に忘れている方も多そうですが、PMXエディタは元々64bit環境専用として始まりました)

32bit版(PmxEditor_x86.exe) も x86フォルダ内からルート側へファイル移動すれば一応使えるようにしてありますが、非推奨動作となります。

必須ランタイムは以下の通り変更が必要です (暫定)
.NET4.0 → .NET4.8
VC++2013 → VC++2022

.NET4.8は最近の Win10や Win11に更新されていれば勝手に入っている?はず。なお VC++2010の方は SlimDXが参照しているためそのままです。

DirectXランタイム(DX9) もいつまで使えるかは不明ですが、そのままで問題ないと思われます。


...といったあたり色々面倒が増えることが予想されるため、こちらで当面様子見配布となります。

機能面については特に変更点もなく多少の不具合修正がある程度。0273で問題ない方は無理に更新する必要はありません。

次回以降の更新があるのか?いつになるのか?...などは全くの未定ですが、いきなり動作対象環境が変更になるよりは多少落ち着いた状況になることを願い、今回の経過措置となりました。
※ダウンロードページは以前(0273) のまましばらく固定しておく予定

正直 (サイレントに)開発終了 にする選択肢も考えましたが 「もう少しだけなんとかなりそう?」 ということで、重い腰を上げて更新作業をおこなってみた次第です。

※現行世代に対応させるにあたり、BulletPhysicsなど古い環境用のものは (一部の警告を握りつぶすなどで) 無理やり動作させているケースもないわけではなく、(潜在的には)あまり安全な状態とはいえない面もあります。長く保守作業を続けることは面倒で難しいのデス...


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


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

2022年07月25日

0273

■ 更新内容

・チェック系UIに対する選択状態の任意色設定 (0257b/c)
・データフォルダ内の配置更新
・テキスト系設定ファイルをUTF8で統一
・OBJファイルロード微修正
・リスト共通操作 [含]ボタン機能
・リスト選択対象の反転
・表示枠-枠内要素リストの名称ジャンプ移動枠
・表示枠-枠内要素移動パターン(Ctrl+X→Ctrl+V)
・表示枠モーフマスクへ材質モーフ他対応
・表示枠-枠内要素の一括登録
・同名ボーンからのJoint位置設定
・仮想軸設定と視点方向の相互変換
・TransformViewのツリー枠表示拡張/枠調整他
・名称一括編集での複数候補による置換方式他
・サイズ変更プラグイン更新
・CSVコピー機能の汎用化/仕様改変/補助編集機能

以上
※設定ファイルの配置などが変更されているため、上書きによる更新禁止


いつの間にやら (こちらも) キリのよい日和になってしまったようですね。機能的な更新内容としては長い期間を空けたほどのものでもありませんが、せっかくなので現在の内部verで更新しておきます。

●チェック系UIに対する選択状態の任意色設定 (0257b/c)

「チェック項目がまともに認識できない?」 というような "Win11問題" への暫定対応として前ver修正版 (2/20~登録) に入れておいた機能です。

といってもフィードバックなどは特に見掛けませんでしたので、十分な対応になっているかどうかは不明です。

自前対応で改善できないとなると こちらとしてはお手上げになります。文句は (無益なUI改悪を続ける) MSの方へどうぞ。
※他にもWin11環境で問題が出るような話はたまに目にしますが、具体性も不足し、個々の環境問題?を普遍的な問題として喧伝するようなものも多いため、対応の仕様がありません (開発環境の Win11への移行予定は当面なし)

なお変更色や有効状態については _dataフォルダ以下の "ExCtrlColor.txt" で設定可能です。前ver修正版とは配置場所及び設定内容が異なるため、そのまま上書きしないようご注意ください。

Win10環境でも初期有効状態になっていますが、(有効行)先頭の Enable,1 を Enable,0 へ変更すると無効化され、無駄な処理が少しだけ減ります。といっても負荷的にはほぼ変わらないので気にするほどのことでもありませんが。

●データフォルダ内の配置更新

テンプレート関係など配置が変更されています。過去verへの上書き更新にご注意ください (3回目)

●テキスト系設定ファイルをUTF8で統一

旧環境(PMDエディタ) の開発が始まった頃はまだまだ Shift-JIS(ANSI) が優勢な頃でしたが、現在はほぼ UTF8での置き換えが完了しているため、古い設定ファイルなどを UTF8に変更して統一しました。

※"和英変換.txt" や "IK制限角.txt" を自作している場合 (そのままファイルコピーしないよう) ご注意ください

ちなみにプログラムの内部的には UTF16が主流のため、UTF8での記述により不都合が生じるケースも稀に?あるかもしれません (変な絵文字とか使わないように)

●OBJファイルロード微修正

やたらと面数が増える OBJファイルへの一部対応です。すべてのケースに対応できているわけでないと思われます (開発環境では確認できませんので)

材質の非透過度(何故か 0で出力する環境があるらしい) や面/軸向き、UV方向などはそれぞれで修正してください。関連編集機能はエディタ本体内にだいたい揃っています。

●リスト共通操作 [含]ボタン機能

Pmx編集の (名称持ちオブジェクトの) 各リスト上部に [含] というボタンが新規配置されています。左隣の名称ジャンプ移動枠に設定された文字列を "名称内に含む" 対象を選択状態にします。

また Shift+で含ボタンを押した場合は、正規表現で判定されます。例えば "(左|右)髪" にすると左右の髪 (左髪??と右髪??) がすべて選択されます。

※正規表現の詳細については "C# 正規表現" などで検索すれば色々出てきます...が、専門系の解説は非常に解り難いため正直オススメはしません

●リスト選択対象の反転

リストメニュー内に "選択状態の反転" が増えています。View側の同名機能と同じ効果を持ちます。なお Ctrl+R は名称の一括編集に (先に) 押さえられているため、こちらは未設定になっています (メニュー呼び出しのみ)

●表示枠-枠内要素リストの名称ジャンプ移動枠

表示枠の枠内要素に名称ジャンプ移動枠及び含ボタンが配置されました。

ただし内部処理的に多少無理をしているため、ボーンやモーフの要素数が莫大な数になると動作効率が著しく悪くなるかもしれません。まあそもそもそんな PMXモデルは作成自体が非推奨ですが...

●表示枠-枠内要素移動パターン (Ctrl+X→Ctrl+V)

表示枠の枠内要素を別の枠へ移動する場合、Indexコピー(Ctrl+X) → 削除 → 移動先で追加(Ctrl+V) という動作手順になっていました (または一旦削除して右側の操作枠から新規で追加)

今verでは、削除操作は不要になり Indexコピー(Ctrl+X) → 移動先で追加/移動(Ctrl+V) だけで移動ができるようになっています。

※Ctrl+の場合は確認が出ない (メニュー処理も同様)

ちなみに表示枠の枠内要素は重複登録をさせないように、他の項目とは異なる操作系に (わざと) なっています。後述の CSV関連も共通操作は適用されていません。

●表示枠モーフマスクへ材質モーフ他対応

右側のモーフ種類マスクに入れ忘れていたようなので追加。まあ (MMDの表情枠の仕様上) 使うことはなさそうですが。

●表示枠-枠内要素の一括登録

枠内要素のリストメニューに "未登録分の一括登録" が増えています。一応過去verでも右側操作枠から一括登録は可能でしたが、追加キータイプの操作はまず忘れられる機能なので、リストメニューの方に明示配置しました。

●同名ボーンからのJoint位置設定

Jointのリストメニューに "同名ボーンから位置設定" が追加されています。右側操作内の ボーン選択→ボーン位置設定 を名称からショートカットできる機能です。

注意点として 標準モデルなどでは 左髪"1" と 左髪"1" など全角半角が混在になっているケースがあり、この場合は正常に動作しません。

モーション流用のためなど (後発のモデルでも) そのままの名称設定を継承している場合等、ご注意ください。

●仮想軸設定と視点方向の相互変換

片側変換から双方向への変換ができるようになりました。対応のメニュー名も変更されています。

※逆側はプラグイン(スクリプト) 経由でいいかな?という判断でしたが、やはり機能配置的にバランスが悪いので

●TransformViewのツリー枠表示拡張/枠調整

ボーンのツリー(階層) 表示は PMXとしてはさほど重要な位置付けではないため、TransformView内で (ひっそりと) 確認だけできるような機能配置になっています。

ただ全体像の確認にはウィンドウの枠幅変更が一々必要になり、操作的にも諸々面倒なので、1ボタンで解決できるようにした次第です。

※TransformView右側操作枠メニュー [表示枠/ツリー]-[枠幅拡大] で全体(横) が見えるよう窓枠を調整

また枠幅変更後に元へ戻すのも同様に 無駄に面倒な操作 になるため、こちらも TransformViewメニュー [表示]-[窓サイズを初期状態へ戻す] で初期化できるようになっています。

両者の配置場所が異なる点にはご注意ください。他にモーション再生の開始位置設定や VMDリストへの現在ポーズモーション登録などの機能も追加されていたりします。

●名称一括編集での複数候補による置換方式他

名称一括編集窓のメニュー内に [複数候補による置換編集] が増えています。古いバージョンの経験者は 「どこかで見たような気が?」 という感想を持たれるかもしれませんが、まあそういう機能です。

とりあえず変換したい対象の名称を CSV形式(対象名,変更名) で左右に並べておけば置換対象として変更名へ設定します。

また先んじて CSV形式のテキストファイル(UTF8/*.txt|*.csv) に内容をまとめておけば、そのファイルをドロップすることでも機能します。ファイルドロップは名称一括編集窓の方でもよいので、わざわざ置換編集を開く必要もありません。

変更名設定後は 確定 で変更完了です。ぽいっと放り込んで (OKして) 確定押すだけ。簡単ですね。

●サイズ変更プラグイン更新

大きさや範囲からのサイズ設定により、倍率が自動で調整される機能が追加されています (頭頂高が一般的な身長設定)

単位系としては座標(実値) と標準モデル基準でのcm(センチメートル)、他に物理演算の重力設定によるcm単位(暫定値) を選択できるようになっています。

●CSVコピー機能の汎用化/仕様改変/補助編集機能

詳細については readme.txt の "●CSVコピー" を参照してください。要約すると 「従来の CSVコピペ機能を通常編集機能として使いやすくした」 というものです。

関連で CSVの仕様を変えており過去verとの互換性が失われています。

※元々 CSVテキストについては、その場限りで使うことを前提としており、再利用については考慮していません。PMX-CSVについての予告なき改変は今後もあるかもしれませんし、当然ながら CSVをverで管理することもありません

また CSVテキストを流用した一部のデータ形式の互換性も失われています。といっても対象はスケルトンファイル(*.psk) と SoftBodyプリセットなので、実害についてはさほどないものと思われます (とりあえず各キーの値に接頭文字"Pmx"を付ければ使えるようになります)

正直無駄に作り込み過ぎた感もあり、テストが行き届いていない可能性もあるかも?しれません。

※「Jointの制限パラメータのコピペ面倒だなぁ」→「なんか専用機能付けとくか」→「既存機能流用した方が楽じゃね?」→「CSVコピペとかいけそう?」→「どうせだから他のCSVも一新しとくか」→「これなら汎用的な編集機能として利用できるっぽい?」→「補助(サポート) 機能も用意しようぜ」→→「アカン対応機能全部作り直しじゃねーか」...とまあ、当初の目的とは大幅に異なる着地点となりました (よくあること)

なおこの機能更新により (旧環境から受け継がれた) 材質コピー用の専用パラメータテキストは完全に不要なものになりました。現在は互換性のため残されていますが、今後は "いつ消えてもおかしくない機能" という扱いになります。


■ まとめ
・「もっと細かく更新してくれ」
長いこと間が空くと 「少しの変更点で一々更新するのもなぁ...」 という心理が強く働くようになります。他にも機能作成中に別の機能を思いつくことが多いため 「中断状態での放置期間が長くなりやすい」 というのも一因です。

なにより 説明書(readme.txt) の修正と、こういった更新用の記事を作成する作業の負担がね...

どれだけ長く続けていても、こればかりは変わることのない面倒さ、厄介さです。

※加えて 「あって当たり前」 という状況が長く続くと、世間的には企業ベースのお仕事(=商用品) と区別の付かない扱いをされるようになっていきます(特に開発経緯を知らない方たちには)。そんな中で配布まで含めての開発モチベをまともに維持していくのは、非常に困難と言わざるえません (SNS等も確認しない方が健康的なのは理解していますが、情報が全く集まらない昨今ではそういうわけにもいきませんから)


ということで 「長く続けるのも楽ではない」 みたいな話を、キリ番ならぬキリ日のまとめにでもしておこうかと思います。

では、今回はこんなところで。

以上

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

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 | 更新情報をチェックする