MikuMikuDance に分子構造データを持ち込む方法 (第二版)

昨日のエントリでスムージングがうまくいかない旨を記載しましたが、うまくいく方法を見つけたので報告します。左が古い方法、右が新しい方法で取り込んだものです。旧法ではヘリックス部分に三角形のポリゴンが見えていますが、新法では滑らかに表示されています。

この文書は、以前の記事の大幅改訂版です。

できること

分子モデル(低分子・蛋白質核酸 etc) をビルボードなどではなく、三次元データのまま MMD で表示できます。

分子モデルをミクなどのキャラクタと共演させられるので、「ミクさんと構造生物学を学ぼう」的な講座動画を作ったりできます。化学に興味のない人でも、ミクさんをβシートに腰掛けさせたり、ミクさんにクラウンエーテルを被ってもらったりといったシュールな絵を作って遊べます。

多くの人に構造データで遊んでもらって、化学に親しんでもらう機会となれば嬉しいです。

流れ

1. Pymol に PDB データを表示させ、VRML 形式(.wrl)で出力する
2. Blender で Wavefront 3D形式 (.obj) に変換する
3. Metasequoia (無償版の Metasequoia LE でよい) で読み込み、頂点数を調節する
4. Direct X 形式(.x)にエクスポートし、MMD にアクセサリとして読み込ませる

いるもの

Pymol (バージョン 1.0 以降)

Ubuntu の場合 apt-get で入ります。Windows の場合、公式サイトで配布されているバイナリは古いバージョンなので、http://www.lfd.uci.edu/~gohlke/pythonlibs/ から独自ビルド版をもらってきてください。

Blender

Ubuntu の場合 apt-get で入ります。Windowsなら公式サイトから入手してください。

VRML インポータが改良されているバージョン 2.5系列を勧めます。 Blender 2.4x の場合は、http://en.sourceforge.jp/projects/sfnet_vrml97import/ から VRML97 Importer を入手してください。以下では、2.5 系列での操作を説明します。

Metasequoia

有償版を未登録で(試用モードで)使うと、Direct X 形式で保存できないので、有償版を登録するか、無償版の Metasequoia LE を使ってください。作者のサイトは http://www.metaseq.net/metaseq/ です。 Linux の方もご心配なく。Wine 上で動くようです。

MikuMikuDance

Wine でも動くようですが、さすがに Windows の方が安定です。

Step1. Pymol での作業

Pymol で分子モデルを用意し、表現を工夫します。Cartoon 表示が基本でしょう。[File]-[Open]でPDBファイルを読み込んだあと、右のほうの「S」(Show)ボタンを押して、[as]-[cartoon] でOKです。リガンドの出し方など詳細は http://biokids.org/ などで勉強してください。

満足のいく表現ができたら、VRML形式でエクスポートします。メニューには、"Save Image As PNG" しかありませんが、コマンドで

save "output.wrl"

のようにすれば VRML 形式になります。

出力形式について

拡張子 .obj を付ければ Wavefront 3D 形式でもエクスポートできます。そうすれば、Blender を経由せず、直接 Metasequoia で読み込むことができます。しかし、現在の Pymol には 円柱を Wavefront 3D 形式でエクスポートできないという問題があります*1。そのため、sticks 表示や set cartoon_cylindrical_helices, on になっている部分が消えてしまいます。

Step2. Blender での作業

Blender は操作体系にクセがあり、慣れるまでは大変ですが、それだけの値打ちのあるソフトです。既に他の 3DCGソフトに慣れている場合は、それを使ってもできると思います。

Step 1で出力したデータを Blender に[File]-[Import]-[X3D Extensible 3D (.x3d/.wrl) でインポートします。この項目がない場合は、[File]-[User Preferences] の [Add-Ons] タブの中にある [Import-Export] から "Web3D X3D/VRML format" を有効にしてください。

Cartoon 表現のヘリックスの材質設定が失われることが多いので、Blender 上で適当に色をつけます。満足のいく設定ができたら、[File]-[Export]-[Wavefront (.obj)] で Wavefront 3D 形式で出力します。

Step3. Metasequoia での作業

[ファイル]-[開く] から、Step 2 でエクスポートしたファイルを読み込みます。拡大率は「自動調節」で良いでしょう。「近接頂点を接合」はチェックしておいてください。

Metasequoia 上で材質を調節することも可能です。頂点数を [オブジェクト]-[頂点を減らす] から減らすこともできます。大体、元のデータの 4-5割くらいまで削減しても、それなりの見栄えは保てるようです。頂点数を削減しすぎると、ランダムコイルの部分や stick 表現の部分が乱れてきますので、それを目安にするとよいでしょう。あるいは、Cartoon 表現の部分だけを頂点数削減するのもよいかもしれません。上の P450 のモデルは頂点数削減をせず、およそ10万頂点ですが、MMD 上でもスムーズに操作できています。

Step4. MMD

Metasequoia の [ファイル]-[名前をつけて保存] から "Direct X Retained Mode" で保存します。座標軸は「Direct3D」を選択し、「左右を反転する」をチェックします。「法線を出力」はどちらでもスムージングがかかるようです。チェックを外したほうがファイルが小さくなります。

こうしてできあがった .x ファイルを MMD にアクセサリとして読み込ませることができます。お疲れ様でした。

メモ

  • Jmol から Wavefront 3D 形式でエクスポートしたデータも、Metasequoia で読み込むことができますが、ポリゴン数が多すぎてとても重いです