Twitter で100を超えるRTをいただき、大変驚いています。もう少し練ってからと思っていましたが、取り急ぎ方法をまとめました。まだ試行錯誤中なので、随時改訂していこうと思っています。動作報告・アイデアなど、コメントください。
2011/09/04: 情報追加
2011/09/06: 情報追加
2011/09/07: Metasequoia LE を用いる方法を別エントリに記載
できること
分子モデル(低分子・蛋白質・核酸 etc) をビルボードなどではなく、三次元データのまま MMD で表示できます。
分子モデルをミクなどのキャラクタと共演させられるので、「ミクさんと構造生物学を学ぼう」的な講座動画を作ったりできます*1。化学に興味のない人でも、ミクさんをβシートに腰掛けさせたり、ミクさんにクラウンエーテルを被ってもらったりといったシュールな絵を作って遊べます。
多くの人に構造データで遊んでもらって、化学に親しんでもらう機会となれば嬉しいです。
流れ
1. Pymol に PDB データを表示させ、Wavefront 3D 形式(.obj)や VRML 形式(.wrl)で出力する。
2. これを Blender などの 3DCG ソフトで調整する(材質設定・頂点数の削減・スケール調節)。
3. Direct X 形式(.x)でエクスポートし、MMD にアクセサリとして読み込ませる。
いるもの
Pymol (バージョン 1.0 以降)
Ubuntu の場合 apt-get で入ります。Windows の場合、公式サイトで配布されているバイナリは古いバージョンなので、http://www.lfd.uci.edu/~gohlke/pythonlibs/ から独自ビルド版をもらってきてください。
VRML97 Importer
09/04 追記: Blender のバージョンが 2.5以上の場合は不要です。
Pymol の出力する VRML は VRML97 であり、Blender に添付されているインポータでは読み込めません。http://en.sourceforge.jp/projects/sfnet_vrml97import/ から VRML97 Importer を入手してください。
MikuMikuDance
Wine でも動くようですが、さすがに Windows の方が安定です。
Step1. Pymol での作業
Pymol で分子モデルを用意し、表現を工夫します。Cartoon 表示が基本でしょう。[File]-[Open]でPDBファイルを読み込んだあと、右のほうの「S」(Show)ボタンを押して、[as]-[cartoon] でOKです。リガンドの出し方など、詳細は http://biokids.org/ などで勉強してください。
Pymol からは、Wavefront 3D 形式またはVRML形式でエクスポートします。メニューには、"Save Image As PNG" しかありませんが、コマンドで
save "output.obj"
のようにすれば Wavefront 3D 形式になります。拡張子 .wrl を付ければ VRML97形式になります。
Step2. Blender での作業
Blender は操作体系にクセがあり、慣れるまでは大変ですが、それだけの値打ちのあるソフトです。既に他の3DCGソフトに慣れている場合は、それを使ってもできると思います。
Step1で出力したデータをBlenderにインポートします。Blender で調節すべきことは、以下の3点です。
- 材質の設定: Cartoon の色が消えてしまうことが多い様子。適当に材質を設定する
- 縮小: そのままでは大きすぎるので、オブジェクトを選択して「S」キーで縮小する。
- ポリゴン数の削減: Cartoon は曲面なので頂点数が非常に多い。単ドメイン蛋白質でも、20万、30万頂点になることはザラ。このままでは重いので、頑張って減らす。インポート後、全てを選択して、メッシュ編集モードに入り、スペースキーを押して出てくるメニューから、[Edit]-[Vertices]-[Remove Doubles]する。Decimate Modifier も効果的だが、材質の設定が失われる(?)。
09/06追記: ポリゴン数の削減は難しい問題です。現在では、Remove Doubles をしたあとに、Alt+J キーを押して三角ポリゴンを四角ポリゴンに変換したものが比較的ローポリで、見た目もよいようです。
Step3. MMDへの移動
Blenderから[File]-[Export]-[Direct X]で[Export All]します。Blender と MMD では座標系が違うので、[Flip z]をオンにしておきます。
出来上がった .x ファイルを MMD の「アクセサリの読み込み」で読み込ませてみましょう。いかがでしょうか?
現在検討中
*1:ちなみに、ミクを学会デビューさせてしまった眼科医もいらっしゃるようです http://web.me.com/mmmetaliccc/%E5%88%A5%E5%94%90%E6%99%B6%E5%8F%B8%E4%BD%9C%E5%93%81%E5%BA%AB/Blog/%E3%82%A8%E3%83%B3%E3%83%88%E3%83%AA%E3%83%BC/2010/11/29_%E5%AD%A6%E4%BC%9A%E3%81%A7%E3%83%9F%E3%82%AF%E3%83%87%E3%83%93%E3%83%A5%E3%83%BC.html 参照
*2:http://www.mail-archive.com/pymol-users@lists.sourceforge.net/msg06734.html 参照