エクスポートするモデルの頂点数をカウントするメタセコイア用スクリプト実験版(Keynote対応)
閉じる
閉じる

新しい記事を投稿しました。シェアして読者に伝えましょう

×

エクスポートするモデルの頂点数をカウントするメタセコイア用スクリプト実験版(Keynote対応)

2014-06-14 23:34
    メタセコイアで作成中のモデルをPMDなどにエクスポートしたときの頂点数を表示するスクリプトの話です。

    メタセコイアではメニューの表示―ドキュメント設定を選択して表示されるウィンドウで総頂点数、総面数などを知ることができますが、その中にはKeynote用に作成したボーンやウェイト、モーフなどのためのオブジェクトのものもカウントされているため、PMDなどにエクスポートするモデルの頂点数がわかりにくい状況です。知りたいのは、普通、エクスポートするモデルの情報のほうですよね。

    そこで次のようなスクリプトを作ってみました。名前が「#」で始まるもの(Keynoteが無視するオブジェクト)、名前が「bone」で始まるもの(ボーン設定用のオブジェクト)、名前が「anchor」で始まるもの(アンカー用のオブジェクト)、名前が「elem:」で始まるもの(モーフ用のオブジェクト)、名前が「MCS:」で始まるもの(これはKeynoteとは関係ありません。CelsViewというアプリケーションで使うオブジェクトです)を除外して頂点数を計算します。

    poly_count.py
    # Count Polygons
    MQSystem.clearLog()
    doc = MQSystem.getDocument()
    v = 0
    f = 0
    for obj in doc.object:
    on = obj.name
    if not on.startswith('#'):
    if not on.startswith('bone'):
    if not on.startswith('anchor'):
    if not on.startswith('elem:'):
    if not on.startswith('MCS:'):
    v += obj.numVertex
    f += obj.numFace
    MQSystem.println('頂点数: ' + str(v))
    MQSystem.println('面数: ' + str(f))
    このスクリプトを実行すると、ログに頂点数と面数が出力されます。

    これでうまくいったように思っていたのですが、エクスポートしたPMDファイルをPMDエディタで読み込んで状態検証を実行してみると、そこで表示される頂点数とスクリプトの実行結果とが一致しません・・・。私が作成したモデルではPMDエディタの状態検証のほうが頂点数が多かったです。

    何が間違っているのか未だにわかりません。なので上記のスクリプトの実行結果はあくまで参考程度のものと思ってください。


    広告
    コメントを書く
    コメントをするには、
    ログインして下さい。