パスワードを忘れた? アカウント作成
7047570 journal
日記

Ledの日記: PMDEditorのCSScript開発に関する覚書2

日記 by Led

問題2.変数名は分かったが、何かのクラスで提供されている。その中身にアクセスする方法が分からない。
解答2.[表示]-[プラグインデータ一覧]をクリックすると(メモ程度ではあるが)情報が得られる。例えばIPXVertex(頂点情報)の中身を知りたい場合、ツリービューのPEPlugin - Pmx - IPXVertexで参照できる。

参考(C#についてまったく知らなかったので)IListはC#で標準で提供されていて、C++で言うところのlistに対応するようだ。使い方はぐぐればいろいろ出てくる。とりあえずすぐに使うのは
vertex.Count が頂点数、 vertex.Add(v)で頂点vを新たに追加など。

問題3.新しい頂点のメモリを確保するにはどうしたらいいか分からない。newでは駄目らしい。
解答3.「ヘッダ」で宣言されている
IPXPmxBuilder bdx = host.Builder.Pmx; // PMXビルダ
を使う。新しい頂点ひとつを確保する場合、
IPXVertex v = bdx.Vertex();
などと書く。頂点以外でも同様にかける。メソッド名称など詳細は「プラグインデータ一覧」の[PEPlugin]-[IPXPmxBuilder] を参照。

問題4.V3とかV4とか、ベクトルらしいが、メンバ名や、どんな関数があるか分からない。
解答4.「プラグインデータ一覧」の[PEPlugin]-[SDX]-[V3]などを参照。

問題5.モーフをスクリプトで作成しようと思ったが、モーフの種別には「グループモーフ」「頂点モーフ」「ボーンモーフ」「材質モーフ」がある。どうやって設定していいか分からない。
解答5.下記参照。

IPXMorph m= bdx.Morph(); // 新規モーフ m 作成
m.Kind = (PEPlugin.Pmx.MorphKind) 0; // グループモーフ
m.Kind = (PEPlugin.Pmx.MorphKind) 1; // 頂点モーフ
m.Kind = (PEPlugin.Pmx.MorphKind) 2; // ボーンモーフ
m.Kind = (PEPlugin.Pmx.MorphKind) 3; // 材質モーフ
// 最後に morph.Add(m); を実行してPmxデータのモーフに追加する

問題6. IPXBornのメンバに親ボーンを表すParentというのがある。親がない場合はどうなっているか?
解答6.親がない場合はnullである。例えば次のコードでボーンの木構造をさかのぼって根に到達するまでのボーン名称を表示できる。
// i を適当なボーンのインデックスとする
for(IPXBone b=bone[i]; b!=null; b=b.Parent){
                MessageBox.Show(b.Name);
}

---
とりあえずこんなところかな。まだまだ分からないことは一杯あるが、この辺が分かればいろいろいじり甲斐が出てくるだろう。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

「毎々お世話になっております。仕様書を頂きたく。」「拝承」 -- ある会社の日常

読み込み中...