◎ MPO ファイルを作って 3DS に 3D 表示してみた! ◎ 2011-3-30
3DS をゲットしたので何か表示してみたくなった SHADE10.5 で MPO ファイルは作れるのかな・・・( SHADE11 , 12 もってるけど使ってない私 ) めんどくさいので MPO ファイルを作ることにした。 あれ? こっちの方が大変? w
3DS の MPO ファイル構造を調べると以下の手順でできそうだ! ① 左右の JPG ファイルを作る(サイズは640x480) ② 各 JPG に MPO 用の APP2 を追加する ③ 2つのファイルをくっつける。(本当にくっつけただけ)
作ったファイルを、3DS SD カード の DCIM\101NIN03\ にコピーして 「3DSカメラ」を起動し「写真を見る」であっさり3D表示された。 ただ、日付が1900/1/1(^^; APP0か1(どっちだったっけ)の日付情報っぽいとこは無視したからしょうがないか・・・ あと「3Dフォーカス」機能が働かない。まあいっか(APP2から視点情報抜いたからかな?汗)
ついでに作ったファイルを、イメージとしてhtmlに張り付けてみた 想像通り、うちのボロPCだと左用の画像が表示できた! 良いPCだと3Dになるのだろうか・・・ ちなみにモデル は りお 顔の前に手を持って行ってピースするつもりが、何故か怪獣になって「ガオッ」 (手が器用でしょ?^^;)
◎ 3DS のディレクトリ構造やファイル名について調べてみた ◎ 2011-5-2
3DSのディレクトリ構造やファイル名について、少し調べてみた。 きっかけは、DICM というディレクトリが 3DS と 携帯 の両方にあったからなのだが、 何か規格があるだろうと思って調べてみるとやっぱりあった。
ディレクトリ構造・ディレクトリ名・画像ファイル名 の規則は①~③!
① ルートディレクトリの直下に "DICM" という名前のディレクトリを置く ② "DICM" ディレクトリの下に 数字3文字 + 英数字5文字 の名前のサブディレクトリを置く ・数字3文字は "100"~"999" で、全てユニーク。つまりサブディレクトリ数は最大 900 まで 文字数は必ず3文字。 "000"~"099" は NG ・英数字5文字は "0"~"9","A"~"Z","_" を使用可能。必ず5文字。小文字"a"~"z"は NG ( 表示装置は 小文字 は 大文字 として扱うのが好ましいとか何とか ) ③ サブディレクトリ下に 英数字4文字 + 数字4文字 + 拡張子 の名前の画像ファイルを置く ・英数字4文字は "0"~"9","A"~"Z","_" を使用可能。必ず4文字。小文字"a"~"z"は NG ( 表示装置は 小文字 は 大文字 として扱うのが好ましいとか何とか part2 ) ・数字4文字は "0001"~"9999" が使用可能。必ず4文字。"0000" は NG ・拡張子は、特に書かれていないきがするが、 3DS は ".jpg" , ".mpo" を使っていた。 ( 規格では、拡張子を除くファイル名が同じものはひと組で扱うらしい )
この規則に従っていないファイルを表示するかしないかは、表示装置に任されているっぽい。
ちなみに~ DICM\998_____\____0001.MPO でも 3DS で表示できたからびっくり! ファイル名は HMI_****.MPO でなくても良かったのだ! 今のところ、否定材料はみつかっていない。 おそらくこの規則であっていると思う。 あっているんじゃないかな? あっているといいけど・・・w
◎ 3DSカメラの日付表示 について調べてみた ◎ 2011-5-3
3DS の MPO ファイル構造を調べると、 APP1 に日付情報が含まれていた。
日付は TAG 0132 DateTime ・ TAG 9003 DateTimeOriginal ・ TAG 9004 DateTimeDigitized が関係しているが、DateTime だけ残して他を消しても日付表示に問題はなかった。 ところが、DateTime と DateTimeOriginal や DateTimeDigitized が食い違うと、 日付まとめの部分の表示が、お誕生日ケーキみたいな表示になった。 また、上の MPO ファイルは APP1 が無いが、これもお誕生日ケーキだった。 「お誕生日ケーキは、日付があやしい・・・」という意味なのだろうか?^^;
◎ 3DSカメラのスライドパッド(3Dフォーカス)について調べてみた ◎ 2011-5-4
3DS の MPO ファイル構造を調べると、 APP1 に3Dフォーカス情報が含まれていた。
3DSカメラのスライドパッドで3Dフォーカスを調整すると MPOファイル内の APP1 の TAG 927C MakerNote のデータの一部が書き換わっていた。 ( 調整ばっかしていると、早くMicroSDがだめになったりして ) さらに調べると・・・ MakerNote はメーカ独自フォーマットで資料が何も無いが、 3DS の場合 IFD構造をとっていて TAG 1101 のデータの一部が書き換わっていた。
** 3DSのMakerNoteがIFD構造をとっているという情報は、ぐぐって見つけた ** 「ニンテンドー3DSカメラ」の研究 というHPを参考にさせて頂きました。 ** ありがとうございました!
実験で APP1 を以下の情報のみにしてみた。(他のTAGを削除した)
APP1 ├TAG_0132_DateTime └TAG_8769_Exif IFD Pointer └TAG_927C_MakerNote └TAG_1101_フォーカス情報他?
こんなファイルでも、スライドパッドが使え、削除前のファイルと区別がつかなかった。 必須TAGも消してしまっているので、まさか表示するとは思わなかった (良い子は真似しないでね^^;)
あと APP1 からデータを消して小さくしすぎると、3DS でファイルが全く認識されなくなる不思議現象が起きた。 ダミーデータ ( たとえば ALL 77h )を追加して、APP1をある程度の大きさにすると再び認識されるのだが・・・ 何か規格とかで制限があるのだろうか? ここまで調べて力尽きた^^;
◎ SHADE12 の MPO ファイルを 任天堂 3DS で表示してみた ◎ 2011-5-10
SHADE12 で 640 x 480 の MPO ファイルを生成したが、Nintendo 3DS で見れなかったので調べてみた。
3DSの画面で「サポート外」と表示されるのだが、 以前のMPOファイルの調査でMPentryのデータが違っている場合にこの画面が出ていたのを思い出した。
ということで、SHADE12で生成したMPOファイルの構造を調べてみると、 いくつかおかしいと思われる箇所をみつけた! ① 右画像 APP1 内 : 1st IFD から呼ばれる Exif IFD の内容がおかしい ② 左画像 APP2 内 : MPentry 情報の左画像のバイト数が合っていない ③ 左画像 APP2 内 : MPentry 情報の右画像のバイト数が合っていない ④ 左右画像 APP1 内 : XResolution 情報の参照先がおかしい ⑤ 左右画像 APP1 内 : YResolution 情報の参照先がおかしい ⑥ 左右画像 APP1 内 : Make 情報が FUJIFILM ⑦ 左右画像 APP1 内 : Model 情報が FinePix REAL 3D W1 ⑧ 左右画像 APP1 内 : Software Used 情報が Digital Camera FinePix REAL 3D W1 Ver1.0
ここで致命的なのは ① 何か、不要なゴミデータが Exif IFD として呼ばれている気がする。 そう思う理由は以下。 ・同じ TAG が複数ある。 ・TAG の データータイプ が未定義の値になっている。 ・ Exif IFD の次の IFD のオフセットがとんでもない位置を示している。 ( どこかのデータの途中っぽい箇所を示している~汗 )
②③ も、合っていないと表示されないケースが多い
④~⑧ は、どうでもいいか・・・ でもなんで FUJIFILM FinePix REAL 3D なんだろう?
ためしに上記①~③に以下の対策をしたところ、3DS で SHADE12 の MPO ファイルが表示可能になった。 ① Exif IFD を呼ぶ TAG を削除した。 ② 左画像のバイト数を設定しなおした。 ③ 右画像のバイト数を設定しなおした。
実際に使用したファイルを置いておこう。 3DSで表示できないSHADE12のMPO(オリジナル) 3DSで表示できるSHADE12のMPO(対策後) 画像として html に貼り付けると、何故か表示できたりできなかったり・・・ まだ何かあるのか?・・・
ははは・・・はぁ
( SHADE12 Pro Win 64bit版 12.0.2 で調査 )
◎ 3DSカメラの日付表示 について調べてみた(追記) ◎ 2011-5-12
・SHADE12 の MPOファイルの生成
次期アップデータで対策を行うそうだ! また、 「カメラのモニター設定にニンテンドー3DSなど各種立体視デバイスのプリセットが追加される予定です。」 という事らしい。 よかったよかった。
・MPOファイルを画像としてHTMLに貼り付ける件
IEのみの現象なのだろうか? IEはMPOをJPGだと判断して変な動きをしているような・・・ ファイル名を大文字にするかどうかでも、ファイルが見つかったり見つからなかったり。 どっちにしても、まだはっきししない(;;)
◎ 3DSのMPFファイルのAPP2について調べてみた ◎ 2011-5-17
SHADE12とは直接関係ないけど、APP2についてもAPP1と同様に削ってみた。 その結果、3DSがMPOファイルとして認識するために必要最低限必要なのは以下であることがわかった。
左目画像 └APP2 ├TAG_B000_MPFVersion ├TAG_B001_NumberOFImages └TAG_B002_MPEntry 右目画像 └(APP2なし)
右目画像のAPP2は使っていないようだ。( MPOには必須だった気がするが・・・) 最も重要な情報は MPEntry で、MPOファイルが立体視対応であることが確認できる最低限のTAGがあれば良いようだ。
|