「化学教育ジャーナル (CEJ)」創刊号/採録番号1-7/1997年11月4日受理
URL = http://www.juen.ac.jp/scien/cssj/cejrnl.html


Virtual Reality Modeling Language (VRML)と分子模型教材の開発

広島大学理学部化学科 吉田 弘

e-mail: yoshida@chem.sci.hiroshima-u.ac.jp
http://vbl01.chem.sci.hiroshima-u.ac.jp/yoshida/

(1997/11/3)

VRMLによる空間充填型模型図

VRMLによる球棒模型図

VRMLによる針金模型図


目 次

はじめに

第1章 VRMLとその利用

第2章 VRMLで簡単な絵を描こう

第3章 VRMLによる分子の描画

第4章 より本格的な分子グラフィックスへ - MOLDA for Windowsの利用 -

おわりに


はじめに

化学の現象を理解するうえで、分子模型の作成は極めて重要である。それは、構造化学などの基礎的な研究に重要であるばかりでなく、有機合成や構造活性相関に基づく医薬品の開発などにも有用な役割を演ずる。さらに、化学教育の観点からみれば分子模型を組み立てるという操作は分子概念の把握に極めて重要であることはいうまでもなく、分子模型を作りながら感じる「なぜ炭素原子による結合が四面体構造をとるのか」といった素朴な疑問は、分子構造を決定する要因となる原子・分子の量子力学の理解への願望へとつながるであろう。ここでは、近年、インターネット上で急速に普及しつつある Virtual Reality Modeling Language (VRML)の技術を用いた分子模型の作成と表示について解説し、さらに誰でも手軽に分子模型のVRMLコンテンツを作成できる分子モデリングソフトMOLDAを紹介する。

第1章 VRMLとその利用

1−1 VRMLとはなにか

VRMLは、インターネット上で3次元物体をリアルタイムに表示するための言語である。この言語で記述されたコンテンツは、2次元的な表示を中心とするHTMLにより記述されたものとは異なり、3次元の仮想空間を表示させ、マウスなどのデバイスを用いて、その空間内を自由に移動することができる。さらに、VRMLの特徴として、プラットフォームに依存しない仕組みが実現されているという点と、言語仕様が極めて平易で、3次元コンテンツの作成が容易である点があげられる。この特徴により、インターネットに接続されている学校や家庭のパソコンから誰でも利用することが可能となるので、教材開発には最適な技術であるといえる。今後、21世紀に向けて、インターネットを用いた遠隔教育の進展が期待されるが、VRMLはその中で3次元オブジェクトの表示や仮想空間内でのコミュニケーションの提供を行ううえで重要な役割を演ずることになるであろう。

1−2 化学分野におけるVRMLの利用

化学分野におけるVRMLの利用と関連したWWWサイトは国内では現在でも少ないが、海外では、1995年の段階からいくつかのサイトが公開されている。その中で古くから提供されているものについて次に紹介する。他のサイトについては、The VRML Repository (http://www.sdsc.edu/vrml/)より検索可能である。

  1. Virtual Reality Modeling Language in Chemistry (http://www.pc.chemie.th-darmstadt.de/vrml/)

    Protein Data Bank (PDB)のデータをVRMLに変換するためのコンバータを提供している。その他、主に生体関連分子を中心としたVRMLでのデータ集が蓄積されている。最近、VRML2.0を用いた分子振動のアニメーションのサンプルも提供しており注目される。

  2. Virtual Molecular Studio (http://chemcomm.clic.ac.uk/VRML/)

    他のVRMLサイトへのリンク集やVRML2.0によるサンプルもある。

  3. VRML 3D-visualisation with xtal-3d for WWW(http://193.49.43.3/dif/3D_crystals.html)

    結晶構造をVRMLで表示するサイト。WWW上またはダウンロードしてオフラインで結晶構造をVRMLに変換することが可能。

1−3 VRMLを利用するためには

VRMLは、Netscape Navigator3.0にLive3Dが標準装備されて以来、急速に普及してきた。VRMLを表示させるためにはWWWブラウザにVRMLビューワをplug-inするかヘルパーアプリケーションとして用いる。それぞれのプラットフォームに対応するVRMLビューワはThe VRML Repository (http://www.sdsc.edu/vrml/)に集積されており、そのリンク先から入手可能である。例えば、Windows環境で、VRML2.0で書かれたコンテンツを表示させるのであればSilicon Graphics社のCosmo Player(http://vrml.sgi.com/cosmoplayer/)やSonyのCommunity Place(http://www.sonypic.com/vs/)がある。

第2章 VRMLで簡単な絵を描こう

2−1 Hello World ! - テキストの表示

最初に、VRMLで3Dグラフィックスを記述し、VRMLビューワで表示させるための手順を、非常に簡単な例(恒例の"Hello World !"を表示させる)で説明する。現在では、VRML2.0が公開されているが、まだそれに対応しているブラウザが十分に普及していないと考えられるため、ここでは、VRML1.0による記述法について示す。

  1. VRMLで記述する

    次に示すのが、"Hello World"を出力するためのVRMLによる記述であり、適当なエディタ(Windowsだったらメモ帳など)で書く

    #VRML V1.0 ascii
    AsciiText {
               string  "Hello World !"
               spacing 1
               justification CENTER
               width 0
    }
    

    これは見ただけで何をやっているのか見当がつくと思う(VRML1.0で書かれていることを指定するために、最初の行に "#VRML V1.0 ascii" を書く)。

  2. 作成したファイルを*.wrlの拡張子でセーブする

    VRMLで記述し作成したファイルを*.wrlの拡張子でセーブする(ここでは、sample1.wrlという名前にする)。

  3. Netscape NavigatorやInternet Exploreなど(以後、これらを総称してWWWブラウザと呼ぶ)を起動

    WWWブラウザを起動しOpen Fileでファイル名sample1.wrlを指定する(うまく表示されない場合は、VRMLビューワがplug-inされているかどうか確認する)。

  4. インターネット上に公開する

    ここをクリックするとsample1.wrlが3D表示される。インターネット上で公開する場合に注意しなければならないことは、httpサーバーのMIME Typeのマッピングに*.wrlも追加しないといけない点である。

2−2 球の表示

分子グラフィックスを行ううえで必要となる形は、"球"であろう。そこで、ここでは"球"の描画方法について示す。

  1. 球の描き方

    次に示すのが、半径2の"球"を出力するためのVRMLによる記述である。

    #VRML V1.0 ascii
     Sphere { radius 2 }
    

    あまりにも簡単に描けてしまう(ここをクリック)

  2. 色のつけかた

    球が描けるようになったところで次にやりたいことは、できた球に色をつけることであろう。次に示すのは赤色の球を描くための方法である。

    #VRML V1.0 ascii
     Material { diffuseColor 1 0 0 } 
     Sphere { radius 2 }
    

    diffuseColorの次にくる3つの数値(1 0 0)はRGBに対応する(HTMLで背景色を指定するとき<BODY bgcolor="#ff0000"...>などと使っている人にはなじみがあると思う)(ここをクリック)。

    その他、色や輝度などさまざまな指定方法がある。次にその例を示すので、パラメータの値をいろいろ変化させて試していただきたい(ここをクリック)。

    #VRML V1.0 ascii
     Material { specularColor 1 0 0  
                ambientColor 0.9 0 0
                specularColor 0 0 0
                emissiveColor 0 1 0
                shininess 1
                transparency 0
     }
     Sphere { radius 2 }
    

  3. 移動のしかた

    好きな色の球が描けるようになったところで、次はその球を好きな位置に移動させたい(そうしないと分子の絵は描けない)。移動させるためには次のようにする。

    #VRML V1.0 ascii
     Material { diffuseColor 1 0 0 }
     Sphere { radius 2 }
     Transform { translation 2 3 0 } 
     Sphere { radius 2 }
     

    最初に描かれた球から(2,3,0)だけ離れた位置にもう一つ球が描かれる(ここをクリック)。


第3章 VRMLによる分子の描画

3−1 メタンの描画

ここまでくれば、分子の3Dグラフィックスが可能である。次に、メタン分子をVRMLで記述する。

#VRML V1.0 ascii
Separator {
            Material { diffuseColor 0.1 0.1 0.1 }
            Translation { translation 0.00000000    0.00000000    0.00000000 }
            Sphere { radius 1.6} 
}
Separator {
            Material { diffuseColor 0.6 0.6 0.6 }
            Translation { translation -0.89013930   -0.62908830   0.00000000 } 
            Sphere { radius 1.1} 
}
Separator {
            Material { diffuseColor 0.6 0.6 0.6 }
            Translation { translation 0.00000000    0.62908830    -0.89013930 }
            Sphere { radius 1.1} 
}
Separator {
            Material { diffuseColor 0.6 0.6 0.6 } 
            Translation { translation 0.00000000    0.62908830    0.89013930 }
             Sphere { radius 1.1}
}
Separator {
            Material { diffuseColor 0.6 0.6 0.6 } 
            Translation { translation 0.89013930    -0.62908830   0.00000000 }
            Sphere { radius 1.1} 
} 
 

ここで新しくSeparatorという構文が現れているが、これは、Separator{}で命令を閉じさせたいからである。もし、Separatorで各原子を分離しなければ、最初の原子からの命令の履歴が残ることになる。(ここをクリック)。Separator等のノードの定義とUSEを用いた再利用について次に説明する。

3−2 もう少し簡潔に

これまでは、説明を簡単にするために、最も原始的な記述法を用いてきたが、VRMLもプログラミング言語と同様関数やサブルーチンのような方法で、同じ操作は1個所で定義できる。従って、メタンの描画のプログラムは次のように変更できる。

#VRML V1.0 ascii

Separator {
            Translation { translation 0.00000000    0.00000000    0.00000000 } 
	    DEF Carbon Separator {
            	Material { diffuseColor 0.1 0.1 0.1 } 
            	Sphere { radius 1.6} 
	}
}

Separator {
            Translation { translation -0.89013930   -0.62908830   0.00000000 } 
	    DEF Hydrogen Separator {
            Material { diffuseColor 0.6 0.6 0.6 } 
            Sphere { radius 1.1} 
 	}
}
Separator {
            Translation { translation 0.00000000    0.62908830    -0.89013930 }
            USE Hydrogen
}
Separator {
            Translation { translation 0.00000000    0.62908830    0.89013930 }
            USE Hydrogen
}
Separator {
            Translation { translation 0.89013930    -0.62908830   0.00000000 } 
            USE Hydrogen
}

これは、最初にDEF文で、各元素の色と大きさを設定する部分に名前を定義し、実際に直交座標に原子を配置した後、USE文を用いてその原子がもつ特性を呼び出している。このようにしておけば、将来、各元素の色や大きさを1個所を変更するだけですむ。


第4章 より本格的な分子グラフィックスへ - MOLDA for Windowsの利用 -

4−1 MOLDA for Windows

以上VRMLを用いた簡単な分子グラフィックスを紹介した。これをさらに進めていくには次のことが必要となる。

(1)原子の種類によりvan der Waals半径を変える。

(2)原子の色や表面の光りぐあいを細かく設定する。

(3)球棒模型図など他の種類の模型図も描けるようにする。

以上のようなことを手作業で行うことは極めて面倒である。そこで、ここでは、Windows95上で分子模型を構築し、そのデータを自動的にVRMLに変換する機能をもつMOLDA for Windowsを開発したので紹介する。なお、MOLDA for WindowsはMOLDA Home Page(http://vbl01.chem.sci.hiroshima-u.ac.jp/molda-j/molda.htm)よりフリーにダウンロード可能であり、より詳細な解説はそのページよりなされている。

4−2 MOLDA for Windowsの機能

MOLDAはもともと1983年に開発され[1]、その後の機能拡張により多くの機能を有するようになった。次に、MOLDA version 6.4がもつ機能を紹介する。

分子モデリング

  1. 利用可能な分子構造データのファイル形式はMODRAST/MOLDA [1-3]とMSC's XMol XYZ ファイル形式である [4]。 もし、データの拡張子を指定しなければ、MODRAST/MOLDA ファイル形式とみなされる。
  2. 基本的な有機化合物や生体分子はテンプレートとして提供される。
  3. Chem3DとPDBのデータは,読み込みや書き込みが可能である。
  4. キーボードから、原子の座標、原子番号および結合情報を入力することにより分子モデルを作成できる。
  5. 全トランス形のn-アルカンは、炭素数を指定するだけで一度にできる。
  6. 水素原子を付加することができる。
  7. 指定した原子の元素の種類を変換することができる。
  8. MOLDAにより作成された分子モデルは位置指定による重ねあわせ、接続、縮環などが可能である。また、基本的な置換基のデータはすでに登録されており、置換基を登録していく機能もある。

  9. Cn, m, i, or Snなどの記号を用いて対称性の高い分子のデータを簡単に作成できる。

  10. 分子モデルの回転や移動や拡大・縮小などがマウスを用いて容易にできる。
  11. 結合長や結合角や二面体角をマウスを用いて変えることができる。
  12. 具体的な作成例は http://vbl01.chem.sci.hiroshima-u.ac.jp/molda-j/learn/learn.htmを参照。

分子グラフィックス

    Virtual Reality Modeling Language (VRML)を用いた分子グラフィックスが近年急速に進展している[5-7]. MOLDAを用いることでさまざまな種類の分子科学計算プログラム(MM2,MOPAC,Gaussian94 ,Amber4,CHARMm)で得られた分子構造がVRMLに変換できる。これらの分子科学計算プログラムによる最適化構造や動力学シミュレーションの結果は、Live3DやCosmo Playerなどがplug-inされたNetscape Navigatorなどを用いて3D表示可能であると同時に、それをWWW上に公開することもできる。

  1. Dreiding Stick模型

    VRMLで見るにはここをクリック

  2. 球棒模型

    VRMLで見るにはここをクリック

  3. 空間充填型模型

    VRMLで見るにはここをクリック

  • 分子科学計算とのインターフェース

    1. MOLDAは分子力学計算プログラム MM2,半経験的分子軌道計算プログラム MOPACならびに ab initio MO 計算プログラム Gaussian94の入力データを作成することが可能。

    2. MM2, MOPAC, Gaussian94, Amber4 と CHARMmにより得られた構造をMOLDAのデータ形式に変換することが可能(クリップボードを用いることによりリモートのワークステーション上で出力された結果をコピー&ペーストで手軽にMOLDAで表示することも可能)。

    3. Amber4により得られた動力学シミュレーションの結果をアニメーション表示することが可能。

    4. MOPACおよびGaussian94により計算された振動スペクトルや振動形をグラフィックス表示することが可能。 ここを参照


    おわりに

    MOLDA for Windowsを用いることにより、VRMLの文法を知らなくても、分子模型をVRMLで表現可能であることが示された。ここでは詳しく示さなかったが、MOLDAではVRML2.0の形式でも出力可能であり、アニメーションへの応用もできる(参考例)。VRMLの化学教育への応用は、はじまったばかりであり、分子模型のインターネット上での表現手段としての役割のみならず、例えば実験機器の利用法の教育への応用なども考えられる。さらに、VRMLを用いればインターネット上でのマルチユーザー・コミュニケーション空間の構築も可能である。今後、VRMLによる化学教育関連のコンテンツが充実し、マルチユーザー・コミュニケーション空間の進展とともに国際的な規模での 仮想化学教育システム[8]が発展していくことを期待したい。

    文献

    1. K. Ogawa, H. Yoshida and H. Suzuki, Journal of Molecular Graphics, Volume 2, Number 4, 113(1984).; 「分子のモデリングと分子力場計算入門」、サイエンスハウス(1996)
    2. H. Yoshida and H. Matsuura, The Journal of Chemical Software, Volume 3, Number 4, 147 (1997). (PDF Document)
    3. T. Uno, J. Zhang, T. Sawano, K. Yamana and H. Nakano, The Journal of Chemical Software, Volume 2, Number 4 (1995).
    4. Minnesota Supercomputer Center, Inc., XMol (Version 1.5) User Guide
    5. H. Vollhardt, G. Moeckel, C. Henn, M. Teschner and J. Brickmann, "VRML for the communication with 3D scenarios of biomolecules", http://ws05.pc.chemie.th-darmstadt.de/vrml/
    6. O. Casher and H. S. Rzepa, "Chemical Examples of VRML", http://www.ch.ic.ac.uk/VRML/
    7. "ILL's gallery of interactive 3D crystal structures", http://193.49.43.3/dif/3D_crystals.html
    8. 「インターネットを利用した世界化学教育ネットワーク構築の試み」、平成9年度科学研究費補助金基盤研究(C)

    Hiroshi Yoshida, yoshida@chem.sci.hiroshima-u.ac.jp


    トップへ     創刊号目次へ