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