Hatena::ブログ(Diary)

つちのこ、のこのこ。(はてな番外地) RSSフィード Twitter

2010-07-18

斬れぬものなどあんまり無い! 人がクローバークラブ踊る立体視テスト。

D

MikuMikuDance だけで立体視。

# -*- coding: utf-8 -*-
u"""MMDStereopsis - MMD立体視パラメータ計算

Python 2.6.5
"""
from __future__ import division
import math

### 下の 3つの値を決める ########################
screen_distance = 30  # 視聴する時の画面からの距離(cm)
bias_x = 20 # MMD上で左右モデルを互いに離す距離 
between_eyes = 6.5 # 両目の間隔(cm)
################################################

print u'1.「センター位置バイアス付加」でモデル相互のX座標を %.3f 離す。' % bias_x
print u'2.「カメラ」の「距離」を %.3f にする。' % (
    screen_distance / between_eyes * bias_x)
print u'3.  モデルが画面の左右それぞれ半分の中心に来るように視野角を調整。'
print u'4.「座標軸表示」をオフに。'
print u'5.  画面から %d cm 離れて鑑賞する。' % screen_distance
print u'    (視差 %.2f 度)' % math.degrees(
    math.atan2(between_eyes, screen_distance) * 2)
1.「センター位置バイアス付加」でモデル相互のX座標を 20.000 離す。
2.「カメラ」の「距離」を 92.308 にする。
3.  モデルが画面の左右それぞれ半分の中心に来るように視野角を調整。
4.「座標軸表示」をオフに。
5.  画面から 30 cm 離れて鑑賞する。
    (視差 24.45 度)

筆算でも直ぐに出せる簡単な計算だけれども*1、MikuMikuDance 動かせるようなパソコン持っていながら手計算するのも間抜けだし、覚えとして残しておきます。


しかしこれ、この計算結果より近寄って見ないと上手く見れない感じ。何か計算間違ったかもしれないですが……でもこの動画のコンセプト、つまり「実写大ではなく、画面あたりの距離に画面に写っているサイズの小人ダンスを出す」という点から見ればこんなものなのかも。

[rakuten:ujichaen:10003086:image]

というか、身の回りのものをよくよく見てみると、例えばこれくらいの距離で湯のみが置いてあった場合、湯のみの向こうの縁とこっちの縁とでは同時には焦点(というか視線の交点が)合わないんですよね。つまり画面にそれが写るから異様に見えるだけであって、普段見ているものもだいたい同じように目に写っている、みたい。

これは意外な発見でした。

付記
上げた動画のコメント欄で ID を付した各動画、
D D D
及び「お花見セット - 万年寝不足?別館」より素材お借りしました。ありがとうございます。

YouTube にも上げました [2010-07-20 追加]

D

(この外部プレーヤーでは無理だけど) YouTube で直接見ると 3D での表示方法をいろいろ選べます。

*1:最初それを何勘違いしたんだか三角関数持ち出して格闘する羽目に……われながらアレですが、結局は視差計算するには必要なので無駄でもなかったか

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。