分子構造模型

分子構造模型

図3-3-0

分子構造(molecular structure、molecular geometry)とは、分子の幾何学的構造をいい、例えば原子間距離や配向などをさす。分子構造を調べるには、主に回折法と分光法が用いられる。

出典: フリー百科事典『ウィキペディア(Wikipedia)分子構造

より

S2AR で分子構造模型を作ってみましょう。S2AR の「球体ブロック」と「線ブロック」を使えば、様々な分子構造モデルを作成できます。Scratch プログラミングで作成することもできますが、より簡単に作成できるように「分子構造ブロック」が Ver. 2.0.1 より追加されましたので、利用していきます。

分子構造模型

まずは分子構造のデータをネットで探します。各分子の座標とその結合がわかれば、仮想オブジェクトに変換できます。

図3-3-1

MODRAST(MOLDA)形式分子構造座標データ集

著作者 長 尾 輝 夫・ 木 原 寛

S2AR に最適な分子構造座標を公開しているサイトを見つけました。「MODRAST(MOLDA)形式分子構造座標データ」を利用させていただきます。

図3-3-2

今回作成するのは、

原子番号1 水素(H)= 白の球
原子番号6 炭素(C)= 黒の球
原子番号7 窒素(N)= 青の球
原子番号8 酸素(O)= 赤の球

を含む「トリニトロメタン(CH(NO2)3)」です。「a0007.mld」の上で右クリックして、「リンク先を別名で保存」等を選んでください。「ダウンロード」フォルダに「a0007.mld」がダウンロードできました。わかりやすいように、ファイル名を「trinitromethane.mld」に付け替えておきましょう。

図3-3-3

iPhone を USBケーブルでパソコンと接続します。iTunes で iPhone を開き、「ファイル共有」を選びます。「s2ar」→「追加」をクリックします。「ダウンロード」フォルダにある「trinitromethane.mld」を選んで「追加」をクリックします。これで MLDファイルが iPhone に転送されました。

図3-3-4

「分子構造ブロック」の MLDファイルの入力欄に「trinitromethane.mld」を入力してください。その他の設定値で、拡大倍率は「10」程度にすると構造がわかりやすくなります(X, Y, Z座標は任意)。ブロックをクリックして実行してください。

図3-3-5

トリニトロメタン(CH(NO2)3)の仮想オブジェクトの作成に成功しました。「トリ」とは数字の3を表す接頭辞です。3つのニトロ基(NO2)が炭素(C)から伸びているのが見て取れます。いろいろな角度から観察して楽しんでください。

同じやり方で、様々な分子構造模型を作成できます。複数の分子構造模型を並べて、比較することもできますし、拡大倍率を変えて、詳細構造を観察することも可能です。「化学」の授業等での活用が考えられます。

iTunes ファイル共有が利用できないなどの環境でも「分子構造ブロック」を使うことができます。次に「リストから分子構造模型を作成する」手順を説明します。

リストから分子構造模型を作成する

Scartch のカテゴリ「データ」→「リストを作る」から、リスト名「trinitromethane」を作成してください。

図3-3-6

右上の「ステージ」にあるリスト「trinitromethane」を右クリックして、「読み込み」を選びます。「ダウンロード」フォルダにある「trinitromethane.mld」を選んで、データを読み込みます。

図3-3-7

MLD ファイルの中身が読み込まれて、リスト「trinitromethane」が完成しました。

リストの中身を解説します。2番目のデータが含まれる原子の個数(11)を表し、3番目以降が原子の位置と原子番号(H=1, C=6, N=7, 0=8)を表します。14番目が結合の数(10)を表し、15番目以降が結合する原子の番号(1 – 10)と結合の腕の数(1, 2, 3)です。

図3-3-8

「分子構造ブロック」の MLDファイルの入力欄にリスト「trinitromethane」をはめ込みます。プログラムを実行して、図3-3-5と同じ仮想オブジェクトがクラフトできることを確認してください。リストからの分子構造模型の作成も成功しました。

One More Thing !!

さて、分子構造模型は以上なのですが、簡単に終わってしまったので、「六方最密充填構造」の仮想オブジェクト化に挑戦したいと思います。

六方最密充填構造

図3-3-9

六方最密充填構造(hexagonal close-packed, hcp)とは、結晶構造の一種である。学術用語では、稠密六方格子構造、または単に六方格子構造などと呼ばれる。

出典: フリー百科事典『ウィキペディア(Wikipedia)六方最密充填構造

より

Scratch プログラミングで「六方最密充填構造」を作成します。原子の位置を計算し、その位置に仮想オブジェクトの「球」を置いていきます。(説明が煩雑になりすぎるので、原子の位置の計算過程は省略し、結果のみ示します)

図3-3-10

まず原点に「白い球」を置きます。ここが全ての基準になります。

以下は書籍でご確認ください

地図を表示する

地図を表示する

図3-2-0

出典:国土地理院ウェブサイト

S2AR で地図を表示させることができるようになりました。Web サービスとして

①地形自動生成ツール(Kamio Terrain Generator)
②地理院地図

を紹介し、S2AR と連携して地図を表示する方法を説明します。

(注意)本章では Web サービスを利用していますが、著者はインターネットブラウザとして「Chorme」を使用して動作確認を行っています。別のブラウザ(IE、Edge、Safari など)を使うと、解説通りの動作にならない可能性があります。

地形自動作成ツール(Kamio Terrain Generator)

図3-2-1

地形自動生成ツール

地形自動生成ツールの開発者 神尾政和

神尾氏は、オリジナルTRPGシステム『The Lunatic』と自作のTRPG関連ツールなどを基本無料で公開されています。TRPGでの使用を目的に作成された「地形自動生成ツール」ですが、神尾氏の許可をもらいましたので S2AR の地図作成補助ツールとして紹介させていただきます(神尾氏は、S2AR 用に「csv高低データ出力機能」を追加してくださいました。ありがとうございました)

地形データの作成

図3-2-2

地形自動生成ツールをインターネットブラウザ(Chrome)で開きます。
地形自動生成ツールは各種のパラメータを操作することで、様々な形態の地図を作成することができます。パラメータの説明文をよく読んで、自分の作りたい地形を作成してください。例えば、大陸や島など外周部を海にしたいときは「初期化:正規分布」を選んでください(初期化機能も著者の要望に応える形で追加していただきました)。

S2AR での使用を考えると、横、縦のサイズは「100 x 100」以下にするとよいでしょう。ARKit が動作する最低スペックの iPhone SE でサイズ「100 x 100」の地図を表示できることを確認済みです。(最高スペックの iPhone XS Max ではサイズ「256 x 256」の地図でも問題なく表示できました)

図3-2-3

何度か「作成」ボタンを押して、気に入った地形が現れたら、「csv高低データ」をクリックしてください。「ダウンロード」フォルダに「kland.csv」がダウンロードされます。

地形データの転送

図3-2-4

iPhone を USBケーブルでパソコンと接続します。iTunes で iPhone を開き、「ファイル共有」を選びます。「s2ar」→「追加」をクリックします。「ダウンロード」フォルダにある「kland.csv」を選んで「追加」をクリックします。これで地形データが iPhone に転送されました。

地形データから地図を作成する

図3-2-5

「地図ブロック」の地図データの入力欄に「kland.csv」と入力します。その他の設定値として、

(横, 縦)=地図サイズ(50, 30)
拡大倍率(高さ方向)= 1 倍
低地の色(r, g, b)=緑(0, 255, 0)
高地の色(r, g, b)=茶色(124, 96, 53)
上方向へ= 0(高さ方向に移動させるときに使用する)

を入力します。ブロックをクリックして実行してみましょう。

図3-2-6

図3-2-3とよく見比べてください。中央に大きな池がある地形が完璧に再現されています。成功です。

もし iTunes からファイルを転送できない場合でも地図の表示は可能です。次の節でリストからの地図作成を説明します。

リストから地図を作成する

図3-2-7

前章の「3Dモデル作成」と同じように、リストから地図を作成できます。カテゴリ「データ」→「リストを作る」からリスト「kland」を作成してください。

図3-2-8

左上の「ステージ」にあるリスト「kland」を右クリックして、「読み込み」を選びます。

図3-2-9

そのままの形でデータを読み込むことはできませんでした(失敗)。
「どちらのカラムを取り込みたいですか(1-50)?」のダイアログが表示されます。つまりcsvデータを読み込もうとすると、50列(=カラム)ある中の1列しかデータを読み取れないということです。これでは地図データとして使用できません。

図3-2-10

ここで裏技を使います。kland.csv をテキストエディタで開いてください。各地点の高さデータ(整数)が「, (=カンマ)」で区切られて並んでいます(30行 x 50列)。

先頭に1行追加して、「map」と入力します。このようにすることで、1行目に「,」がなくなり、Scratch のリストに全体を読み込めるようになります。

図3-2-11

リスト「kland」の右クリックから「読み込み」をクリックして「kland.csv」を選びます。今度は、「長さ: 31」のリストが作成できました。1番目のデータは「map」で2番目以降が「地図データ」となります。

図3-2-12

「地図ブロック」の地図データの入力欄にリスト「kland」を入れてください。実行して、先ほどと同じ地図が表示されることを確認しておきましょう。

以上で、「地形自動生成ツール」の説明を終わります。

Mr. Kamio has added “English Page of the Kamio Terrain Generator” for my request. There is the link on the bottom left of the page.(神尾氏は著者のリクエストで「English Page」を追加してくださいました。リンクはページの左下にあります。)

地理院地図

図3-2-13

地理院地図(電子国土Web)

地理院地図とは、地形図、写真、標高、地形分類、災害情報など、国土地理院が捉えた日本の国土の様子を発信するウェブ地図です。
国土地理院が整備する様々な地理空間情報をご覧いただけるほか、地形図や写真などを3D表示にしてご覧いただくことも可能です(.)

地理院地図 ヘルプより

この章の最初の写真図3-2-0は、地理院地図のデータを S2AR で仮想オブジェクトに変換して拡張現実に表示したものです。この技術を使えば、地球上のあらゆる地点をお好みの倍率で、仮想オブジェクトとして表示することができるようになります。

地理院地図の仮想オブジェクト化に挑戦してみましょう。

標高タイルの出力

以下は書籍でご確認ください

3Dモデリングとアニメーション

3Dモデリングとアニメーション

図3-1-0

第3部では、S2AR の応用について説明していきます。外部のアプリケーション・サービスと連携する「3Dモデリングとアニメーション」「地図を表示させる」「分子構造模型」を学びます。

MagicaVoxel

図3-1-1

MagicaVoxel 公式サイト

MagicaVoxel は、ephtracy がオープンソースで開発を進めている、ボクセルモデリングソフトです。Windows、Mac の両方に対応しており、公式サイトより無料でダウンロードできます。パストレーシングによる高品質なレンダリングも可能で、ゲーム素材の作成やアート作品の製作など、様々な用途で活用されています。

まだお持ちでない方は、自分のパソコンに合った最新バージョンの MagicaVoxel をダウンロードして、インストールしておきましょう。

ボクセルとは

図3-1-2

「ボクセル」とは3Dモデルを構成する最小単位で、サイズ「1 x 1 x 1」の立方体で表されます(2次元の「ピクセル」に対応した言葉)。ボクセルを積み上げて、複雑な3Dモデルを作成する「ボクセルアート」という分野は人気があり、様々な作品がネット上で公開されています。3Dプリンターを使って、現実世界に実体化することができますが、時間も費用もかかってしまいます。

S2AR は「3Dモデル作成」機能があり、拡張現実にボクセルアートをクラフトすることができます。そして「アニメーション」機能で、ボクセルアートを動かすことができるのです(ボクセルアニメ=Voxel Animation)。

3Dモデルの作成(準備)

図3-1-3

MagicaVoxel を起動すると、サイズ「40 x 40 x 40」の立方体が表示されます(左のパレットで選ばれている色になります)。これからモデリングするのに邪魔になりますから、全て消してしまいます。

図3-1-4

右上のモデルサイズを「20 20 20」に変更します。左上のエディットモード「B(=ボックス)」「Erase(=消す)」を選択します。グリッド等を表示するために、左下のボタンは全て選択しておきましょう。
右手前下のボクセルをクリックして、クリックしたまま左上に動かしてください。ボックス(箱)単位で選択されたボクセルが削除されます。一度ですべてのボクセルが消せなかったときは、二度、三度同じ作業を繰り返して、全てのボクセルを消してしまいます。

図3-1-5

全てのボクセルが消された状態になりました。ここから3Dモデル作成がスタートします。まずマウスの操作を練習します。

マウス(右クリック)=ボクセルを置く、消す、色を塗る等の操作を行う。
マウス(左クリック)=視点の回転
マウス(中クリック)=視点の移動
マウス(ホイール)=視点の拡大縮小

このマウス操作は、ほとんどの3Dモデリングソフトでも共通操作なので覚えておくとよいでしょう。

マウス操作のコツがつかめたら、作りたいモデルをイメージしながら、次の節に進んでください。

3Dモデル作成(モデリング)

図3-1-6

モデリングに入っていきます。今回は簡単な「ひよこ」を作ってみようと思います。

まず左のパレットで設置するボクセルの色を選びます。茶色(r, g, b)=(153, 0, 0)を選びました。次に左上のエディットモード「V(=ボクセル)」「Attach(=置く)」を選びます。左右対称の形状を作るときは、ミラーモード「X」を選んでおくと便利です。X-Y 平面(底面)の中心あたりをクリックして、ボクセルを置いてください。Y-Z 平面に対して対象の位置に、2つのボクセルが置かれました。

図3-1-7

エディットモード「F (=面)」「Attach」にすると、平面を置くことができます。

図3-1-8

後からボクセルの色を変えるには、エディットモード「Paint(=塗る)」を選びます。左のパレットで塗りたい色を選んで、ボクセルを選択してください。

これでボクセルアートは完成です。「File(=ファイル)」→「Save as(名前をつけて保存)」から「hiyoko.vox」と名前をつけて保存してください(保存する場所は「書類」「デスクトップ」など自分が使いやすいところを選んでください)。

次に、作成したモデルデータを iPhone に転送して、S2AR で「3Dモデル作成」する手順を説明します。

3Dモデル作成(S2AR)

図3-1-9

「File」→「Export(=書き出し)」→「ply(ポリゴン・ファイル・フォーマット)」を選びます。

図3-1-10

「export」フォルダに「hiyoko.ply」を保存します。このデータを iPhone に転送します。

図3-1-11

iPhone を USBケーブルでパソコンと接続します。iTunes で iPhone を開き、「ファイル共有」を選びます。「s2ar」→「追加」で共有したいファイルを選びます。

図3-1-12

先ほど書き出した「hiyoko.ply」を選んで、「追加」をクリックします。これで iPhone にファイルが転送されました。

図3-1-13

パソコンのインターネットブラウザ(Chrome)でhttp://scratchx.org

を開いてください。

Extension URL

https://champierre.github.io/s2ar/extension/s2ar.js

を入力して、S2AR の拡張ブロックが使えるようにします。「3Dモデル作成ブロック」の PLYファイル入力欄に「hiyoko.ply」を入力して、実行します。

図3-1-14

拡張現実世界に、ボクセルアート「HIYOKO」をクラフトすることができました。第2部の自動車を作る

では、設計図を書いて、座標を読み取ってリスト化するなど、非常に手間がかかりましたが、MagicaVoxel との連携機能を使えば、簡単に 3Dモデル作成を行うことができるのです。

アニメーション

以下は書籍でご確認ください