メガネのフィッティングをしたいのだぁ~

Blog

トップの画像に使ってるゴーグル、アップします、と言ってまだアップしていません。
データは出来上がって、テストも済んだのでとりあえずアップは出来る状態なのですが。
いったい何を愚図愚図しているのかっ、と言うとタイトルに書いたとおり、実に個人的に欲しかったと言うだけなんですが、メガネの位置やスケール等を調整できるスライダーがほしいな~と思ったのです。
たぶん探せばいくつか同じような機能のMODが見つかるのでしょうが、せっかくなので自分で作ってしまえば調整幅とかも自分で弄れるので良いかしらん、と思ったわけです。
今回作ったゴーグルなどは調整できた方が、髪型に合わせられますし。

機能としてはYとZ方向への移動とX軸のローテーション、全体のスケーリングです。

使ったツールはDelphy氏のCASSliderTemplate CreatorとBoneDelta Editorです。
移動、スケーリングに関しては特に問題なく出来たんですが、ローテーションがちょっと曲者でした。

このツールでローテーション角を指定するには数値をクォータニオンで指定しなければいけないのです。
クォータニオン~~??なんか、ゲームや3Dを扱うプログラマ達がそんな言葉を発していたように記憶していますが、『シューティングゲームのタイトルかな・・・?』とか思っていた自分は、まさかこんな所でその言葉と再開するとは思ってもいませんでした。
しかしあせる無かれ!!Mod the simsのCmarNYC氏のチュートリアルを見ると、ブラウザー上で動く回転軸と角度をクォータニオンで出してくれる計算機があるよっ、と書いてありました。
なんたる幸運、早速そのリンクのページに行き数値を入力・・・と思ったら、なぜか自分の環境ではその計算機なる物が表示すらされません・・・
何だ何だっ?Javaの設定?セキュリティー設定のせい?よく分からんけど、どうにもダメみたいです。
自分で計算するなんて究極に無理です。概念すらろくに理解できてないんですから。
企画倒れかね。と思ってぼんやりblenderの画面を眺めていたんですが、ふと気づきました。

右側のTransformの所に・・・

右側のTransformの所に・・・

図はblenderの画面です、枠で囲った位置に回転角が表示されていますが、これ、デフォルトだとオイラー角が表示されていますが、下のドロップダウンメニューからクォータニオン回転モードってのが選べるのでした。
普段、なんのこっちゃ良く分からないので弄ったことが無い場所ですが、さっそくメニューからくだんのモードを選んで、ようやく欲しい数値を得ることが出来ました。ふぃ~~。
しかしながら、さらに別の問題が・・・。
メガネのボーンって、メガネのちょうど鼻当ての真ん中あたりにあるのです。
なので、それを回転させるとメガネが鼻当てのあたりを中心に回転してしまうのです。
まぁ、回転させてY,Zの位置を調整すれば特に問題ないんですが、せっかくなので実際にメガネをかけている時のように両耳を通るような軸を中心に回転させたいな~、と思ったわけです。
軸を実際にずらす事は出来ませんが、当該ボーンを回転しながらオフセットをずらしていけば、擬似的に回転軸を別のところに置けそうです。
メガネのボーンと、仮想軸までの距離を半径とすれば、そいつの円周上の座標に来るようにすれば仮想軸で回転しているように見えるはず。今度は三角関数ですか・・・ぼぇ~~~っ
しかしながら、ツールにはそんな関数など入力できませんし、頭の形は単純に円でもないですね。額の形を考えると楕円ですらないです。
それに、半径となる距離はblender等で分かっても実際にゲーム上でのサイズに合わせるためにどんな係数を掛ければいいのかも分かりません。トホホ。
結局、どうしたかと言うと、ドンブリです。大体こんなもんだろ、です。
まぁ、ある程度blender上でスライダーMAX状態での回転角と位置を決めてみて、YとZの増減値の比率をなんとな~く出しておいて、数値をぶちこんで実際動かしてみては調整、という地味な作業でやっつける事に。
良く分からんのに色々考えても徒労です。ま、お世辞にも完璧とは言いがたい挙動ですが、結局はY,Z個別の調整が出来る事を考えればこんなもんでしょう・・・
出来上がってしまいましたので、もうちょいテストしてアップします。