logo-e

現在位置 : ホームの中の帆船模型プラス の中の3D CGと操船ソフトで帆船を楽しむ3




木製の帆船模型でRoyal Carolineという18世紀のイギリス王室の豪華ヨットを作り始めた。作っているうちに、船体内部がもっとよく見られる方法はないかと考えた結果、コンピュータの3D画像なら実現できると思い、挑戦することにした。私の持っている3Dグラフィックスソフトは、「Shade」というソフトで、最近何とか一通りの作画手法をマスターしたところである。帆船特有の滑らかな船体の再現や豪華な装飾の表現などに苦労しながら、3カ月ほどで満足の行く形に完成し、船体の外側を透視することによって、内部が希望どおりに見えるようにすることができた。


 オリジナルの作品が増えたことで満足していたが、あるきっかけで、それをフライトシミュレータのように動かせるソフトがありますよと教えてもらった。その時点で実のところは動画までは関心はなかったのだが、自分の船が動くのは面白いなと思い、やってみることにした。

 早速、紹介されたホームページを見てみると、思惑とはうらはらに、3D-CAD経験のない自分にとって、CAD独自のファイルフォーマットの変換から始まってデータの軽量化、定義ファイルの解読など、やり慣れない手順ばかリであり、実際に手がけた作業は悪戦苦闘の連続だった。しかし、何度も試行錯誤で挑戦しているうちに、シミュレータ上に突然Carolineが出現したときはまさに感動。以下はその奮戦ダイジェストである。

1.ボートデザインの概略

よくわかった人からすれば、いとも簡単な手順なのであろうが、VirtualSailor(以下、VS)に取り込む船のデザインステップは概略次の通りである。

・手持ちの画像データを船体主要部と、帆や舵といった可動部品に分割する。
・これらを「3Dstudio」というCADソフトの3DSフォーマットに変換する。
・さらに、それらを「directX」のXフォーマットに変換する。
・船の使用を定義するcfgファイルを類似の船データから編集して作成する。
・VS内に取り込んで細部を調整する。

技術的にわからないところだらけだが、それこそ乗りかけた船、トライすることにする。

2.船体データの分解

可動部分とは具体的に、帆、舵、蛇輪、スクリュー、計器盤、標識灯等をさしている。18世紀の船にスクリューや計器盤などがあるわけはなく分解のしようがない。それがないと動かないのではないかなどと思ったが、今は変換できるかどうかが先決。とりあえず次のステップに進むことにする。尚、Shadeのデータは船体の詳細を表現する目的のため、帆と上部のマストを省略してあるので、これらを後で追加しなければならない。

3.3DSフォーマットへの変換

通常、同類の他ソフトへのデータ変換はエクスポートという方法を使用する。3Dstudioというのは代表的な3D CADソフトだそうなのだが、Shadeのエクスポート可能なフォーマットを見ると3DSには対応していない。ちなみに私のShadeはadvanceという中級グレードであり、最上級グレードのprofessionalならエクスポートは可能であると聞いた。しかし、そのためだけでグレードアップする余裕はない。

 DXFフォーマットを介してならいろいろな3Dソフトにインポートできるので、紹介された3Dソフトのデモ版をいくつか試してみるが、デフォルト状態ではうまく変換できているようには見えない。

 Shadeではどうにもならないのかと思い、SDNというShadeのデベロッパーズの関連サイトを探したら、そこに3DSエクスポーターなるものがあった。しかし、残念ながら古いバージョン用である。Shadeは最新版になってから、プラグインやスクリプトの作成方法が変わって、古いものは使用できない。がっかりしながら最後まで見ていくと、一番最後に最新バージョン用のベータ版が乗っていた。これならShadeの上でやるので、いろいろカットアンドトライが必要でも対応できるのではないかと思う。

 インストールして動かしてみるとうまく動作しそうである。エクスポートの条件をいろいろ設定できるので、試しに船腹だけを選択して後は適当に設定して変換をすると見事に変換してくれた。調子に乗って今度は強引に全体を変換に掛けてみるとエラーになってしまった。エラーの意味は不明なので、開発者に問い合わせると、エクスポータが対応していない図形があるだろうから、グループ別に図形を選んで変換していき、エラーになっている図形を特定して削除して下さいとのこと。ついでに不必要な船体内部の部品などを削除しながらいろいろと確認した結果、問題はドーム状にかぶせた面光源が原因とわかり、それを取り除くと今度は変換が成功した。

 3DSファイルたるものなんぞやと思い、3Dソフトでレンダリングをしてみると、なんと、それらしき形はあるが、面が凸凹である。データを軽くするために、曲面分割を粗くしたのが原因のようであるが、単純に分割を細かくするとデータ量が増えてしまう。ちなみにこの時点で3DSファイルの大きさは4Mバイトほどであり、参考にしている大型帆船のVictoryに比べるとまだ5倍以上の大きさである。分割を細かくする代わりとして両面レンダリングを片面レンダリングにすることにした。これにより、両面の時には気にすることのなかった面の表裏を今度は厳密に合わせる作業が必要になる。

最初の3DS変換 船腹や甲板が波打っている。

この変更で再度変換してみると満足のいく形状がレンダリングできた。さらにスリム化のために思い切ってパーツをどんどん削除するとともに、パーツによって曲面分割精度を細かく使い分けた結果、何とか1Mバイト台までこぎつけた。Shadeでレンダリングしてみると当初の姿に比べてなんとも貧弱な姿である。とにかく最後までと思い、次に進むことにする。

調整の進んだ3DS変換画像。艤装品がほとんどなくなった


4.Xフォーマットへの変換

XファイルとはWindowsの中のDirectXという仕組みに対応して動作するファイルである。その中身がどんなものかは自分には全くわからない。これについてはMicrosoftが3DSからXファイルに変換するプログラムを提供している。但し、これはMS-DOSで動作するものなので、普段MS-DOSプロンプトを使用していない人にはDOSコマンドの操作だけでもハードルが高いのではないかと思う。自分は幸いに以前、MS-DOSからスタートしているので、忘れかけた記憶を呼び戻しながら、何とか操作手順を確保することができた。

 XファイルができればとにもかくにもVSの上に乗りそうである。試しに先に作った船腹だけのデータを変換してみる。エラーなく変換できたので、これを指定された通り、boat.xとリネームして、Victoryのboatと入れ替えてVSを起動してみる。うねった海の上に何か茶色のものが浮かんでいるが、半分沈みかけた船腹がそこにあった。出来た! 出来栄えなどはともかく、結果として画像部分に関してはShadeからVSへの変換手順をクリアしたことになる。後は可動部品(今回は帆だけ)を含めて必要なだけ画像ファイルを準備し、変換すればよい。

VSに取り込んだ船腹
片面なので反対側は向きを変えないと見えない
最終的なShade画像


5.cfgファイルの整備

cfgファイルとは、その目的について特に説明はないが、よく眺めてみると、操縦したときの船の動き具合をシミュレートするための船の重さや大きさ、それに、可動部品の位置関係を表す座標やベクトルデータなどをDirectXに渡すための定義ファイルのようである。説明書を見て意味がわかった部分とわからない部分があるが、わからない部分は例によってカットアンドトライで入出力の変化を会得することにする。

 先ず、船体にかかわる部分であるが、寸法や重さなどはShadeの縮尺から実寸を算定して入力する。船の抗力や安定係数などはとりあえずVictoryのものをそのまま適用し、動かしながら調整する。

6.細部の調整

boat全体を注意深くXファイルに変換し、VSに取り込んでcfgファイルの諸元を変化させながら動きや位置関係を何度か調整する。形状の出来栄えを見て、さらにShadeとの間を何度も往復して形を整えていく。おかしなもので、動きが出てくると、簡素化された寂しい形状は何の気にもならなくなり、動きの制御の方に集中する。気が付いて船の形を眺めてみても、その粗さは気にならなくなる。動きがリアルになるにつれて不思議な愛着が湧いてくる。

海に浮かんだCaroline船体


7.帆の作成

帆はその回転軸ごとに作る必要があるようなので、直立のメインセール3本と、船首に斜めに張ったロープにつけたジブセール2本を用意する必要がある。最終的には船尾のスパンカーセールもジブセールの応用で出来るのではないかと思い、可動セールとして取り込むことにした。

 当初のShadeには帆のデータはないので、それを取り付けるヤードとともに先ずShadeで形状を作成する。各回転軸ごとに右を向いた形状、左を向いた形状、さらには帆をたたんだ状態と3種類ずつが必要である。また、それらは図形上のあるべき位置ではなく、原点座標(0、0、0)に回転軸を置いて作成してから分離するとのこと。本来の位置への位置決めや傾きはcfgファイルの方で定義するとのことである。

帆を追加したShade画像


8.帆 走

帆がついていよいよ完成である。

 エンジンがないので、帆走は風任せとなるので、VSのウェザーコンディションの調整で風速や風向きを調整する。舵取りや視角の変更等、船の操作についてはキーボードやマウスに割り当てられた機能をそのまま使う。周りの景観についてはとりあえず付属のものを使用する。風速を上げて船が動き出した。自分の作ったCarolineが海の上をゆっくりと揺れながら動いていく。思ってもいなかった感動がこみ上げてきた。 BonVoyage!
2005年1月

大海原を帆走


 


次のページもお楽しみ下さい。

●木製キットとCGで帆船作り操船ソフトで大航海時代を想う

●3D帆船奮戦記~Shadeで帆船3D画像を作る!

●操船ソフト奮戦記~VirtualSailorで海原を帆走!


toTop