Ledの日記: PMDEditorのCSScript開発に関する覚書1
PMDEditorのCSScriptの開発について、様子が分かってきた。C#で出来ることは何でも出来るということなので、ほかに興味を持った人のために自分がつまづいたポイントとその解決についてメモをしておく。
ちなみに、.pmdファイルに対する操作は、インストールフォルダ配下の _plugin\CSScript\SampleScript 配下にサンプルがたくさんある。ここを見れば大体分かるはず。
問題は.pmxファイルを編集するときの手がかりがなかなか見つからないこと。以下に手がかりと、PMDEditor上での参考情報の位置をメモ。以下、Pmx編集のウィンドウから[編集]-[プラグイン]-[CSScript]-[C#スクリプト]をクリックして出てくる「CSScript」というタイトルのついたウィンドウ上での操作。
問題1.モデルを扱う上での変数名が分からないので一歩も踏み出せない。
回答1.以下の「ヘッダ」参照。
// ホスト配下
IPEPluginHost host = args.Host;
IPEBuilder builder = host.Builder;
IPEShortBuilder bd = host.Builder.SC; // 短絡系ビルダ
IPXPmxBuilder bdx = host.Builder.Pmx; // PMXビルダ
IPEConnector connect = host.Connector;
IPEPMDViewConnector view = host.Connector.View.PMDView;
// PMX関連
IPXPmx pmx = connect.Pmx.GetCurrentState(); // PMX取得
IPXHeader header = pmx.Header; // header :ヘッダ
IPXModelInfo info = pmx.ModelInfo; // info :モデル情報
IList vertex = pmx.Vertex; // vertex :頂点 | リスト
IList material = pmx.Material; // material :材質 | リスト
IList bone = pmx.Bone; // bone :ボーン | リスト
IList morph = pmx.Morph; // morph :モーフ | リスト
IList node = pmx.Node; // node :表示枠 | リスト
IList body = pmx.Body; // body :剛体 | リスト
IList joint = pmx.Joint; // joint :Joint | リスト
情報の取得方法
[編集]-[ヘッダコード編集]で見つかる。ちなみに、「簡易形式」でスクリプトを作成・保存したものをテキストエディタで確認すると「ヘッダ」と呼ばれる部分と「フッタ」と呼ばれるコードが入る位置が分かる(それぞれ、「ここへ処理を追加してください.」の直前と直後に入る。)「一般形式」の場合は、該当する位置に自分で「ヘッダ」と「フッタ」をコピーしておく。
PMDEditorのCCScript開発に関する覚書1 More ログイン