トマシープが学ぶ

Unity/VR好きのミーハー初心者 記事内容は自分用のメモ。何も求めないで

おそ松さんOPの箱庭AR〜回転は難しい〜

Animated GIFs - Find & Share on GIPHYwww.giphy.com

おそ松さんOPのティッシュの箱庭をARしました。

すっごい雑に切り抜いて、背景も頑張ってキャプチャから、フォトショで自由変形して作りました。

f:id:bibinbaleo:20171023103111p:plain

構造としてはこんな感じになっています。

f:id:bibinbaleo:20171023103117p:plain

なぜ一面ごとに親子関係を作っているかというと、開くときに回転の中心を底面にするためです。そのままだと、面の中心を回転軸としてしまいます。

空のオブジェクトを、面の下の部分に置いて、面をその空のオブジェクトの子オブジェクトにしています。

f:id:bibinbaleo:20171023103107p:plain

また、表と裏を別の模様にするために、二つ薄いキューブを並べています。

 

開く動作はitweenを使いました。

        if(Input.GetKeyDown(KeyCode.Space)){
            if (a == 0) {    
                iTween.RotateTo (front, iTween.Hash ("x", 90, "islocal", true, "time", 3.0f));
                iTween.RotateTo (right, iTween.Hash ("x", 0, "islocal", true, "time", 3.0f));
                iTween.RotateTo (left, iTween.Hash ("x", -179, "islocal", true, "time", 3.0f));
                iTween.RotateTo (back, iTween.Hash ("x", 0, "islocal", true, "time", 3.0f));
                a += 1;
            } else {
                iTween.RotateTo (front, iTween.Hash ("x", 0, "islocal", true, "time", 3.0f));
                iTween.RotateTo (right, iTween.Hash ("x", 90, "islocal", true, "time", 3.0f));
                iTween.RotateTo (left, iTween.Hash ("x", 90, "islocal", true, "time", 3.0f));
                iTween.RotateTo (back, iTween.Hash ("x", 90, "islocal", true, "time", 3.0f));
                a -= 1;
            }

 itween便利ですね。

 

そういえば任意のマーカーも使えました。写ってないけど。

Animated GIFs - Find & Share on GIPHYwww.giphy.com

こっちの記事を書き直しました↓

bibinbaleo.hatenablog.com

困っている点

ティッシュのトップの面を奥の面の子オブジェクトにして、回転させようとすると、

f:id:bibinbaleo:20171023105013p:plain

なんか変な感じになってしまう。ひし形?平行四辺形?みたいな変形をする。ただ回転して欲しいだけなのに。

f:id:bibinbaleo:20171023105021p:plain

理想はこんな感じ。

f:id:bibinbaleo:20171023105018p:plain

なので、上の部分を閉めることができません。ど〜しよう!

追記:teratailで質問したら解決しました。親オブジェクトの大きさは1.1.1.じゃないと、その大きさの影響を子が受けるからだそうです!

https://teratail.com/questions/97467

質問の回答に対する返事で、私が少し勘違いしていましたが、親を空のオブジェクトにすることで私のやりたいことは解決していました。

この階層の場合は青いbackが空のオブジェクトなのですが、これの大きさを1.1.1.にしたら解決しました。そのままやったらこのオブジェクトも1.1.1になってしまうので、一旦別で空を作ってから子を差し込む。

f:id:bibinbaleo:20171023181830p:plain

無事閉まりました!

f:id:bibinbaleo:20171023181602p:plain

f:id:bibinbaleo:20171023185946p:plain

もう一つ、itweenも意図しない方向に回転する。右に開いて欲しいのに左に回転する。

Animated GIFs - Find & Share on GIPHYwww.giphy.com

回転はわからない><