一方,ここ1,2年の技術革新は,第3の利用法の可能性をふくらませ た.高輝度軽量な液晶プロジェクタ,およびmpeg1程度のデジタル動画像 を再生できるだけの能力を持ったノート型パソコンの登場により,一般教 室でのマルチメディア教材の提示が可能になったのである.2年前,山梨 大学においてビデオオンデマンド(VOD)の運用実験を始めたころ,提示 装置としては3管式プロジェクタがほとんど唯一の現実的な選択肢であっ た.それに対して液晶プロジェクタの利便性は比較にならないほど大きい.
筆者は,物理学の講義を日頃担当しているが,実験や観測のビデオ画像やシミュ レーション動画を授業中に提示できることを長年望んできた.提示装置利用に十 分な可能性がでてきた今,問題は,デジタルコンテンツをいかに充実させるかで ある.もちろん,プロジェクタへの入力源としてVTRも使えるが,一つのコンテ ンツが比較的短時間であって,必要な部分へ即座にジャンプできることが授業支 援道具としては重要であることを考えると,コンテンツとしてはデジタルである ほうが望ましい.本稿では,X Window System(以下,X11とよぶ)上でのシミュレー ションをデジタル動画にする簡便な方法とその例を紹介する.提示用のコンピュー タが十分高速で,シミュレーション画像をリアルタイムで提示できる場合には, わざわざ動画を作成する必要は少ないのであるが,あとで示す例のように,1分 程度の動画として見せたいが計算には何時間もかかるというような場合には予め シミュレーションを行って動画ファイルを作っておく必要である.以下で示す方 法は,すべてソースが公開されており,無料で利用できるソフトウェアを用いた ものである.
一般ユー
ザが生にX11ライブラリの描画関数を
使うのはかなり骨が折れるので,簡易な描画のための上位ライブラリが幾つ
か作られている.ここでは
Yglには,残念ながら,簡略なマニュ アルしかついていないので,関数の引数や機能を知るにはソースやヘッダー ファイルを見るか,GLがのったマシーンのmanページをみる必要がある(配布 ソフトのReadMe.htmlは配布元のコンピュータにあるGLのマニュアルページを cgiで読み出せるよう設定されてはいる.).以下に, よく用いられる関数と用法例を紹介する.
prefsize(x, y); ... ウィンドウサイズ(x,y)をドット数で指定. win = winopen("test"); ... ウィンドウを開く linewidth(1); ... 線の太さの指定 color(BLACK); ... 線の色の指定 clear(); ... ウィンドウのクリア move2(x,y); ... 座標(x,y)へペン先を移動 draw2(x1,y1); ... 現在のペン先から(x1,y1)へ線を引く circ(x,y,r) ... (x,y)を中心とし半径rの円を書く cmov2(x,y); ... (x,y)へ文字描画用ペン先を移動 charstr("string"); ... 現在のペン先の位置に文字列stringを描画 sprintf(out_file, "| /usr/local/netpbm/ppmtogif > test.gif"); ... 下記gl2ppmの出力を外部プログラムに渡す winset(win); ... gl2ppmの出力すべきウィンドウの指定 gl2ppm(out_file); ... ウィンドウ全体をout_fileへppm形式で出力ウィンドウの大きさを指定して開き,描画し,ファイルに書き出すという一連の 作業が簡単できそうだということがわかっていただけるであろう.最後の3行が, 描画を標準的な画像形式のファイルに書き出すための独自の機能ある.下から3 行目にあるppmtogifはppmからgif形式への画像形式の変換ソフトで,netpbmと呼 ばれるフリーの画像形式変換ソフトパッケージに含まれている.
Yglには上 記のほか,多角形,扇型など基本的な2次元描画関数,ウィンドウの一部を unsigned char arrayに保存し,必要に応じて画面に戻す関数などがそろってい る.
一連の静止画を動画化するソフトはいくつか市販されているが,UNIX上で の動画化には,mpegの初期の開発者たちが作ったものを用いるのが簡便で ある.StanfordとBerkleyでつくられたものがあるが,ここでは,前者, The Portable Video Research Group at Stanford(1994年末に解散)により 作成され配布されているものを用いる.オリジナルは havefun.stanford.eduにMPEGv1.2.1.tar.Zという名でおかれていたが,現 在では,多くのanonymous ftpサイトで見出すことができる.
これに含 まれているSETUPという文書をみながらmakeすると,実行ファイルmpegがで きる.mpegは,YUV形式の静止画とmpeg形式の動画の相互変換プログラムで ある.YUVは,ヨーロッパのTVのフォーマットであるPALなどで用いられて いる標準的な色空間の形式のひとつであり,デジタルのRGB表示の各成分と は線形な関係にある.
用い方は,まず,test0.Y, test0.U, test0.V, test1.Y, test1.U, test1.V, test2.Y, test2.U, test2.V,...,test100.V のように一連の番号が付されたYUV形式の画像ファイルをつくり,
mpeg -a 0 -b 100 test -s test.mpgのように最初と最後の番号,および出力ファイル名をオプションで指定し てmpegを実行する.オプションで -dを指定すると,逆に,mpegからYUVへ の変換ができる.
YUV形式は圧縮されていないビットマップファイルなので保存用には向かな い.前項の静止画作成のあとタイトルをつけるなど,静止画の順序づけの 段階で細工することが多いが,そのような作業の段階では静止画は圧縮して保存しておく方がディスクスペースの点で現実的である.gif, jpeg等よく用いられる圧縮形式で保 存されているファイルをYUV形式に変換しmpegをつくるシェルスクリプトを 作るのがよいだろう.下記の動画作成では,シミュレーションが出力する 静止画はgif形式で保存し,タイトルを別に作り,番号順にならべ, mpegを用いるというスクリプトを書いた.mpegを用いる部分のスクリプト には, Minnesota Supercomputing CenterのWebページ http://www.arc.umn.edu/GVL/Software/mpeg.htmlに紹介されている ものを利用した.
物質には,固体,液体,気体の3態があり,環境(温度,圧力など)を変化させて いくと,それらの間に相転移がおきる.相転移の際には,体積,比熱などが不連 続的に変化する.このような不連続性は,分子の相互作用は解析的であってもお こるもので,集団系(多体系)のマクロな量の特質である.分子の集団運動を直接 観察し,不連続的な変化が起こる様をとらえられることは不可能である.実験的 に可視化できないものに対する数値シミュレーションは直観的理解を助ける教材 として有用であろうというのが我々の作成動機である.
あちこちを飛び回っていた気体分子が凝縮し液体になるには,分子間に引力がは
たらかなければならないことは直観的にもわかる.では,固体(結晶)になるのに
は分子間のどのような力が本質的なのであろうか.このような問いに対して,約40
年前,Alderらは,分子間に斥力だけがはたらくような系,つまり剛体球の集団にお
いても結晶化が起こることを数値実験により見出した
[
2次元平面に剛体球(2次元だから円盤)をならべ,適当に速度を与え,時間変化を
観察する.エネルギー
をはかるメジャーはないので,この系では温度単位は存在しない.相転移をおこすパ
ラメータは圧力あるいは体積である.ここでは,系の大きさは固定とし,球の半径,つまり
密度をパラメータとした.
時間発展の方法は,粒子は衝突がおこるまでは等速直線運動することに着目して
以下のようにする
アップデートの時間刻みは一様でないために,スナップショットの保存に際して は,時間間隔を一様にするよう考慮する必要がある.
作成した動画に解説をつけたものをWWW上で公開しているので,インターネット を通じてhttp://cosmos.ksb.yamanashi.ac.jp/~toyoki/hs-tr/alder.html にアクセスできる方は参照いただきたい.ただし,このページからたどれる 動画ファイルは,352x240ドットで1000コマ程度のもので10MB以上あるから,か なり高速でアクセスしていただけるサイトからでないと取得が困難であろう.そ のため,内容をそのままCD-ROMにやいたものを希望者には配布することにしてい る.
ここでは,作成した動画の例をいくつか示す.以下の図は,いくつかの密度での シミュレーションの最終スナップショッ トであり,動画にリンクされている.図中の赤い線は粒子の軌跡を表している. また,拡散の度合がわかりやすいように一個の粒子の軌跡は黄色で示されている. mpegを再生できるツールがブラウザのプラ グインとして入っているか,再生のための補助ソフトとして設定されていれば, 絵をクリックすることにより見ることができるはずである.
A: 系の大きさ(面積)
A0: 円盤を稠密に詰めたときの面積
(Alderらのシミュレーションによれば固相,流動相の共存領域はだいたい
X Window System上でシミュレーション動画を作成する一方法を述べてきた.こ の方法の利点は,特別な機材を用意する必要がなく,X11が動くコンピュータを 用意しさえすれば実行できることにある.入門級のパソコン一台で動画を作成で きる時代になったのである.簡単に実験による可視化ができるものをわざわざシ ミュレーションする必要はないが,分子原子の存在形態や運動のようにシミュレー ションによる可視化が教育や研究に役立つ例はいろいろあるはずである.そのよ うな題材に,本稿で述べた手法が役立てられれば幸いである.蛇足になるかも知 れないが,一つの応用として,ネットワークカメラを用い た長時間観察の動画化について付録する.
作った教材を教育に役立てられるためには,教室設備の充実が必要である. 安価な液晶プロジェクタの登場により,ほとんどすべての教室に提示装置が設備 できる状況になっているので,早い段階での設置が切望される.
教材化を意識した剛体球系のシミュレーションは,山梨大学教育学部物理学教室 所属の学生の卒業論文研究として進められきた.最後の,UNIX上での動画作成は 1996年度卒業の戸口智雄君との共同作業によるものである.ここに述べた方法は, 彼らとの議論の中で案出したものである.彼らに感謝したい.詳しい製作過程 はhttp://cosmos.ksb.yamanashi.ac.jp/~toyoki/hs-tr/alder.html の製作履歴に記した.
CCDカメラとWWWサーバを一体化したネットワークカメラが比較的安価で出回って いる.総合情報処理センターでは,従来,防犯用に用いていた圧縮機能のあるビ デオ録画装置の代わりに,ネットワークカメラを導入しようとしている.試験的 に使ったネットワークカメラから一分に一コマづつ映像を取得し,それをまとめ てmpegエンコードする試みを行った.映像の取得にはmgetとよばれるフリーウェ アを利用し,mpeg化には本稿で述べた方法を使った.一日毎の動画を作成し,そ の動画をWWWページに登録するするまでを自動化するスクリプトを試作し,ほぼ 一月程度問題なく動かすことが出来た.サンプルとして,工学部キャンパスに向 けられたカメラ(5)からの映像の動画を右に示す.
このようなネットワークカメラ映像の動画圧縮法は,非常に変化の遅いものを長
時間にわたって観
測し,それを短時間でみたい対象の教材化や研
究手段のひとつとして役立つてることができるのではないだろうか.
[文献および注]