ブログ移転しました

色々あってブログ移転しました。

移転先: http://mayatech.blog.jp/

移転に合わせてファイルを色々整理したので、こちらのブログからはリンク切れしてるファイルがあるかもしれません。

リンク切れしたファイルは移転先のブログでは繋がってるはずなので、そちらからダウンロードしてください。
スポンサーサイト

Mayaスクリプト: 改造版Eclipse接続

大分放ったらかしにしてましたが、久しぶりに更新します。

いつかに記事にしたEclipseとMayaの連携方法について、Maya側のコマンドポートスクリプトの改良版を作りましたので公開しておきます。
と言ってもあまり大した機能はありませんが・・・。

出来る事
  1. Eclipseと接続する為のコマンドポートを開く。
  2. PyDevプロジェクトを調べてソースフォルダを自動的にsys.pathに追加する。
  3. 既に読み込まれたPyDevプロジェクト内のモジュールを再ロードする。

これだけです。
3つの処理は、それぞれ必要な時だけ実行するようにしていますので、Maya起動後何度実行しても問題ありません。 特にモジュールの再ロードは、Pythonの仕様上importで一度読み込んでしまったモジュールを再ロードするのが面倒なため、作業中何度もリロード出来ようにしておくと便利です。

というわけでここに置いておきます。
Connect Eclipse

即時実行する系のスクリプトなので、中身をそのままシェルフに登録すればすぐに使えます。
が、一箇所だけ設定項目がありますので、登録前にそこだけ書き換えておいてください。

# -*- coding: utf-8 -*-
import sys
import re
import os
import os.path as ospath
import xml.etree.ElementTree as xml
import maya.cmds as cmds


# Settings.
eclipseWorkspace = "C:/Users/username/Documents/Eclipse/"
cmdPort = 7720

# ~ 以下略 ~ 

マークアップした11行目のeclipseWorkspaceの部分を、各自使用しているパスに変更してください。
12行目のcmdPortは特に変更がなければそのままでいいです。

EclipseにXMindを追加する

Eclipseにマインドマップ作成ツールのXMindを追加する方法です。

PyDevでプログラム書き中にマインドマップ使いたいなーと思い、折角なのでEclipseで使えるやつ無いかな、と探していたら普通にありました。

というか実はXMindは昔から度々利用していたのですが、Eclipseベースだと言うのは完全に失念していました。

マインドマップは言ってみれば、思考やデータを視覚的な図として書き出すツールです。

マインドマップ


図の中心部にトピックの中心となる単語を置き、そのトピックに関連する様々なデータを周囲にツリー状に配置していきます。そうすると、頭のなかにあった情報を視覚的に整理する事ができたり、あるいは膨大なデータを分かりやすく整頓することができます。

後は使い方によってはUML(クラス図)的な使い方もできるので、プログラミングでは中々有用なツールの1つだと思います。

マインドマップツールとしては、XMindは最も人気のあるツールの1つで、この分野で草分け的存在であったFreeMindと人気を二分しています。
個人的にはデザインも洗練されたXMindの方が使いやすいかなと思っています。

というわけで、実際にEclipseXMindを追加してみます。

インストール環境はWindows7x64 + Pleiades Eclipse4.3(Kepler)x64 + XMind 2012を使用します。

  1. まずEclipseにGEF(Graphical Editor Framework)を追加します。
    GEFはPleiadesでPlatformパッケージを選択していると追加されていないので個別に追加する必要があります。
    (Platform以外は全て追加されています。)
    GEFの追加方法は既にそこら中のサイトで紹介されているので、ここでは省略します。
    詳しくは以下のサイト等を参考にしてください。
    外部サイト: 金子邦彦研究室EclipseにGEFプラグインをインストール

  2. 次にXMind本体をダウンロードします。
    こちらのダウンロードページからXMindポータブル版をダウンロードします。
    ポータブル版以外でも同じようにプラグイン化する事は可能ですが、ポータブル版だとインストールの必要が無いので今回はポータブル版を使います。
    ダウンロードしたZIPファイルを適当なフォルダに解凍しておいてください。

  3. Eclipseにプラグインを適応します。
    Eclipseインストールフォルダ直下のdropinsフォルダ内にxmindフォルダを新規に作成します。
    ダウンロードしたXMindのフォルダ内にあるCommonsフォルダ内にpluginsフォルダがあります。
    このフォルダを、先ほど作成したxmindフォルダにコピーします。
    階層: eclipse\dropins\xmind\plugins\ ...略...

これでインストールは完了です。

後は通常通りEclipseを起動し、プロジェクトエクスプローラで「新規」→「その他」で「マインドマッピング」の項目が追加されています。

マインドマップは上手く使うとアプリの設計が大分楽になるので、設計が苦手な人は一度試してみる事をオススメします。

PMXIO for Maya リリース

Maya用PMX,PMD読み書きスクリプトが完成しました。

ツール名は使用したライブラリMeshIOから取ってます。
MeshIOはpmxの他にmqo, vmd等にも対応しているのですが、このスクリプトはpmxにしか対応してないのでこの名前になりました。
読み方は分かりません。


現状ではMayaでまともに動くPMXエクスポータはほぼ無かったと思うので、Mayaから直接出力する唯一の選択肢になるかもしれません。

PMXIO インポート PMXIO エクスポート

▼ ダウンロード


▼ Ver0.11α 仕様
ファイルタイプ
インポートPMX / PMD両対応。
エクスポートはPMXのみ。
読み込めるファイルはMeshIOの仕様に準拠。
(ファイルによってはPMX/PMDであっても読み込めない事も。)
ポリゴン
頂点,法線,UV1の入出力。(UV2~4は非対応)
出力時、四角形以上のフェースは自動的に三角形に分割。
出力時、UVの境界、ハードエッジ部分で頂点を自動的に分離。
(MMDが頂点フェース情報を持てない為)
ボーン
入出力共に親子階層のみ保持。
スキンウェイト
入力時BDEF1~4対応。SDEFはBDEF2扱い,QDEFは非対応。
出力時はインフルエンス数に応じてBDEF1~4の何れかに変換。
インフルエンスが5つ以上だった時は小さい値を切り捨て再度正規化。
マテリアル
Blinnに変換。
テクスチャ
カラーマップのみサポート。
その他
複数選択メッシュを自動的に1つのファイルにマージ。
バインドされていないメッシュでも出力可能。
その場合、自動的にボーン0へバインドする。
全体の拡大率の指定可。
Mayaに読み込めないデータの一部を追加のアトリビュートとして記憶。
出力時に、追加のアトリビュートから優先的にデータを取得。

▼ 今後の予定
  • ボーンのローカル軸
  • ネームスペースへの対応
  • ハードエッジの分離ON/OFF
  • ノードのグループ化
  • テクスチャの自動配置
  • テクスチャの拡大縮小
  • テクスチャのファイル形式変換
  • エッジカラーを追加のアトリビュートに取得
  • 頂点単位のエッジ倍率を頂点カラーに取得,設定
  • ボーンの回転,移動付与をコンストレインとして取得
  • IKへの対応
  • 頂点モーフの出力
  • 頂点の差し替えモード
  • 表示枠をセットとして取得
  • プラグイン化
  • ドキュメントの整備
赤色は特に優先度の高い作業です。


▼ インストール
一般的なPythonスクリプトと同じく、起動時にロードして使用します。
  1. mayaスクリプトフォルダに「TrM_PMXIO.py」および「pymeshio」フォルダを丸ごとコピーします。
    mayaスクリプトフォルダの位置は環境によって異なります。
    例えばWindows7 + Maya2014日本語版であれば、
    .../Documents/maya/2014-x64/ja_JP/scripts フォルダになります。
  2. スクリプトフォルダにuserSetup.pyが無ければ新規に作成します。
    (userSetup.pyは空のテキストファイルでOKです。)
  3. userSetup.pyに以下の一文を書き加えます。
    import TrM_PMXIO
  4. Mayaを起動し、以下のコマンドをコマンドラインPythonモードで実行します。
    TrM_PMXIO.startup()

▼ 使い方
■ インポート
設定を入力後インポートを実行します。
倍率
モデルの拡大縮小率を指定します。
透明度マップの接続
シェーダーにカラーテクスチャのTransparencyを接続します。
■ エクスポート
メッシュを選択後エクスポートを実行します。
メッシュは複数選択することもできます。
メッシュがスケルトンにバインドされていた場合、自動的にボーンもエクスポートされます。
倍率
モデルの拡大縮小率を指定します。
PMXIO サンプル
公式 初音ミク ver2

▼ ヒストリ
2013/09/14: Ver0.11α with MeshIO Ver2.7.5 … ファーストリリース。

▼ 謝辞
最後になりますが、この場を借りて素晴らしいライブラリを作成してくださったousttrue様に感謝の言葉をお送り致します。
有難うございました。

MeshIO SOURCEFORGE

TrM_SeparateSkinMesh アップデート

先日配布したスキンメッシュ分割スクリプトをVer1.10へアップデートしました。

配布早々申し訳ないです。
ごくごく初歩的なミスで処理速度が大幅に低下していました。

既にインストールしてしまった方はファイル置き換えのみでOKなので、暇な時にでもアップデートしておいてください。

TrM_SeparateSkinMesh Ver1.10 (右クリックで保存)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。