three.jsで正20面体のパズル(四角でいうところのルービックキューブ) 1つの頂点を中心とした隣り合う5面を連動して回せるようにしたいです。
20面をA面~T面として(A,B,C,D,E)の5面はrotationなどで回せるのですが、その5面を回してしまうと(E,A,B,C,D)と面がずれてしまいます。
ずれた状態でA面~E面のどれかを含む、別の5面を回すと回転方向がおかしくなります。
1つの5面をグループにしてしまうと、別の5面グループを回した時に、前回の回転の影響が残ります。
これの影響を出ないようにパズルを作りたいです。
正20面体は、obj形式のモデル verticesを結んでできている20面体があります。
こうしたらいいのではないか、などヒントになりそうなことでもいいので回答していただけると嬉しいです。
よろしくお願いします。
objはそれぞれ20面、別々に読み込ませています。
この5面の1周する動作を全ての5面になる箇所に適用したいです。
5面で1周する箇所は12箇所かと思います。
どのようにグループ分けをするのか、そもそもグループにしないほうがいいのか、など悩んだのですが、なかなか解決策が思いつきませんでした。
追記 6月17日
Q,W,E,R,A,S,D,F,Z,X,C,V のキーに5面セット(12箇所)の回転が割り当てられています。
1つのキーを1〜4回押した後に、別の隣接する5面セットのキーを押すと、面がずれてしまいます。
1つのキーを5回押した後に、別の隣接する5面セットのキーを押すと、問題なく回ります。
コメントに気付くのが遅れ、申し訳ありませんでした。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/05/07 23:39
2016/05/14 16:44
2016/06/16 15:13