% ERuby.charset = "Shift_JIS" %>
How to make 3D movie
裸眼立体視動画の作成方法
さきら, 1997.9.8
Macintoshでの作業を想定しています。WindowsやUNIXでの場合は "フォルダ" を
"ディレクトリ" に置き換えて読んで下さい。またアプリケーションの名称等も適等に読み換えて下さいね。
モデリング
"立体アスカ様の作り方"
は参考にはなるかも知れませんが、実際に作る役には立たないよね。Shadeで人物を作るなら秀和システムの「Shade
III 3Dグラフィック」と「Shade Professional / Personal 3Dグラフィック Expert」の二冊だけ押さえればいいでしょう。というか私自身はそれしか参考にしてません。
テクスチャマッピングに関してはお絵描き屋さんに聞いて下さい。WWWでも「人物の描き方のツボ」のような事を解説してらっしゃるページがありますが、そういうページはとっても参考になりますよ。お世話になったくせにURLを忘れてしまって申し訳ないです。
レンダリング
Shadeのカメラウインドウにはその名も「立体視スライダ」なるものがあります。私の動画でもこれを用いて裸眼立体視用のデータを作っています。
色々試しましたが、最近はスライダの数値の差を「20」で落ち着いています。具体的には左目用には「0」、右目用には「+20」という設定です。クイックレンダリングがオンになっているとスライダを「0」から動かせませんので、レンダリングの前にクイックレンダリングを切っておいて下さい。また、このページの例では幅
300dot, 高さ 200 dot の画像にしてみましょう。(実はかなりデカいけど、説明のため)
Shade の「特別」メニューから「イメージサイズ...」を選んで画像の大きさを設定します。
レンダリングは片目分づつ行っています。(メモリの関係で二枚同時にレンダリングができない場合もあるけど、それが可能な場合でも同時だと何故か時間がかかるように感じます。)
左目用アニメーションを一気にレンダリングしてから、いったん動きを確認してから右目のレンダリングに入る場合が多いですかね。
アニメーション保存の形式は「番号付きPICTファイル」を選びます。コマ数分のPICTファイルが出来ますので、専用のフォルダに保存すべきでしょう。
Graphic Converterを使ってrawデータへ
ここからしばらく片目分のデータづつ作業します。話を具体的にするために20コマの動画の左目用のデータの処理を考えましょう。
一つのフォルダに20コマのPICTファイル(例えば Lpict.0001 から Lpict.0020)が入っているのを確認して下さい。次にGraphic
Converteを起動し "ファイル" メニューから "Convert more..." を選んで下さい。
これを使って各々のPICTファイルをRAW形式に変換するのですが、ここでもRAWファイルを入れる専用のフォルダを用意しとくと便利です。
変換の方法は見ればわかると思うので具体的には書きません。(何ならGraphic
Converterのマニュアルを見れば書いてあると思いますよ。) ただ注意を一つ。"Preference"
の "Convert more", "Index" タグにて "Index convertion" チェックボックスをオン、その直下の
"Min. Digits" に "4" を入力して下さい。
Text Chainを使って一つのrawデータへまとめる
理由は書きませんが、こうしてできたRAWデータをそのままつなげるだけで20個の画像が縦一列につながったRAWデータファイルができあがります。
私はつなげるためにText Chain(仲野隆行さん作)というフリーウェアを使っています。しかし、Text
ChainはテキストでないとつなげてくれないのであらかじめFile Buddy等を使ってファイルタイプを
"TEXT" に変更する必要があります。
具体的には20個のRAWファイルを全て選択して、File Buddyへドラッグ&ドロップ。ファイルタイプを
"TEXT" に設定して "Change all" ボタンを押します。
次にその20個のファイルを再び全て選択し、Text Chainへドラッグ&ドロップ。これにより
"Chained Text" という名のテキストファイル(実はRAWファイル)ができますので
"TestL.raw" 等の適当な名称に変更して下さい。
UnixやDOS, Windowsの方は cat を使えばいいんでないかな。
再びGraphic Converterを使ってPICTへ
Graphic Converterの "File" メニューから "Open" を選びます。ここで勿論さっき作った
"TestL.raw" を選ぶのですが、その前にOpenダイアログ右上の "Filter" ポップアップメニューで
"RAW" を選ぶのを忘れないで下さい。そうしないと開けません。
さて、RAW形式はその名の通り画像の大きさや色数等のデータを含んでいないのでファイルを開く際に指定してやらなければなりません。ラジオボタンは
"RGB" と "32 Bit", Offset には "0" を入力します。で、"Width" と "Height"
で画像サイズを指定するんですね。
Shadeでのレンダリング時のファイルサイズが幅xドット、高さyドットとすると
Width にはxを Height には20*yを入力します。(コマ数が20だと仮定している事に注意)
例えば元の画像サイズが300x200だとしたら、Widthには "300", Heightには "4000"を入力すればオッケーです。
これで縦につながった画像が表示されると思いますが、計算間違いなんて割とあるんでスクロールして一応ちゃんと全てあるか確認した方がいいと思うよ。
で、"File" メニューから "Save as..." を選んびPICT形式で "TestL.pict"
とかの名前で保存しておいて下さい。
好きなグラフィックアプリでJPEG圧縮
データそのものの作成としてはJPEGで保存し直せば終わりです。好きなアプリを使ってさっきのPICTファイルをJPEGに保存し直して下さい。勿論Grahpic
ConverterでそのままJPEG保存してもケッコウです。
ここまでの作業を右目用の画像に対しても行って下さい。左目用・右目用のファイル名を仮に各々
TestL.JPG, TestR.JPG
としましょう。
DblScrlAnimator.classの準備
ここにJavaアプレット、DblSrclAnimator.classへのリンクを張っておきますので持ってっていいっすよ。よかったらソースファイルもどうぞ。
HTML文書を用意
DblScrlAnimator.classを動かすためのHTML文章 "Test.html" を書いて下さい。説明しているとキリがないので(いい加減メンドーになってきた)
<APPLET> タグの基本的な使い方は知っていると仮定して、パラメータの解説のみにとどめておきます。
-
imagefileL
左目用画像ファイル名。この例では "TestL.JPG"。
-
imagefileR (省略可能)
右目用画像ファイル名。この例では "TestR.JPG"。省略した場合、左目用画像のみのアニメーションとなります。
-
last
コマ数。この例では "20"。
-
iheight
元画像の高さ。この例では "200"。
-
iwidth
元画像の幅。この例では "300"。
-
wait
コマとコマの間の待ち時間。数字が大きいほどゆっくり動きます。大体30から200ぐらいの数字をよく使います。
-
firstwait (省略可能)
最初のコマでの待ち時間。waitより優先します。
-
lastwait (省略可能)
最後のコマでの待ち時間。waitより優先します。
ま、dimensional picturesの動画のページのソースを参考にしてもらえば大丈夫っしょ。
フォルダの用意とファイルの配置
適当なフォルダを用意してその中に "Test.html", "DblScrlAnimator.class",
"TestL.JPG", "TestR.JPG" 全部放り込んどくのが一番楽でないかな。
私のソースを参照した場合は<APPLET>タグの codebaseパラメータを削除しておいて下さい。
動作確認
Test.htmlをJavaに対応した適当なWWWブラウザ(Netscape NavigatorやInternet
Explorer等)にドラッグ&ドロップして下さい。今までの作業に間違いがなければアニメーションするでしょう。おめでと〜!!
後は Test.html のパラメータを適当にいぢって調整すれば完成っすよ。
[量子電脳]