折り鶴

Unityで、折り鶴を折ってみました。

思ったよりかなり難しく、手を抜きながらなんとか完成させました。

画面が表示されたら、何かキーを押すか、マウスをクリックしてください。勝手に折り鶴を折ります。それだけです。

アニメーションや、オブジェクトの回転で実現できると考えていましたが、折り紙の裏表や厚さ、重なりのためにどんどん難しくなり、思ったようにできませんでした。勝手な解釈ですが、Unityは折り紙向きではないかもしれません。

最終的に、メッシュの頂点座標を移動させる力技を使用してしまいました。このページの最後でソースファイルも公開していますが、あまり参考になるところもない気がします。

もっとうまい方法があればどなたか教えてください。

Unity WebGLはスマートフォンのブラウザをサポートしていないため、動作しない場合はPCで表示してください。

使用したベクトルの計算を、参考までに書いておきます。

三角形OABがある時、
OからAに向かうベクトルをa、
OからBに向かうベクトルをbとします。

点Aと点Bの中点を表すベクトルc

Vector3 c = (a + b) / 2;

点Aから点Bへ向かうベクトルc

Vector3 c = b – a;

ベクトルaとベクトルbの二等分線が、辺ABと交差する点を表すベクトルc

Vector3 c = a + (b – a) * a.magnitude / (a.magnitude + b.magnitude);

ベクトルa上に、点Bから下ろした垂線の足を表すベクトルc

Vector3 c = Vector3.Project(b, a);


このプロジェクトのソースファイルは、こちらにあります。
https://github.com/coderdojo-todakoen/Orizuru