TV味も素っ気もないタイトルですが、つまりといったように、微妙に回転しているUVを垂直したいことが多々あると思います。お客様と話していてそんな話題になったのですが、確かにMayaにはそれ用のツールがありません。複雑そうなツールでも、スクリプトならデザイナーでも簡単に作れます。費用対効果が高いことも多いので、DIYというか、メイカーズなノリで作ってみましょう。それほど長いコードにならないので、出来上がったものを始めにご紹介すると、こんな感じになります。$angle[2]);}では順に内容を見ていきましょう。ツールのデザインまずは垂直にしたい部分の指定する方法を考えます。普通はエッジを選択して実行、という方法が思い浮かびます。選択したエッジが垂直になるようにUVを回転させる、という動作です。次のようなメッシュでは垂直なエッジがありません。そのためエッジで垂直方向を指定することが不可能です。選択したUVが垂直になる、とすれば上手くいきますので今回はUVを指定する方法にします。2つのUVを選択して、それらが垂直になるようにします。はじめに選択したUVをピボットにして回転します。特別なオプション設定を用意しなくても、選択したものの内容でユーザーの指示を多く受け付けるデザインにすることが重要です。Mayaっぽくなります。ツールの実行方法は次の通りにします。ピボットとなるUVを選択。UVをもう一つ追加で選択。スクリプトエディタでrotateAlignUV()を実行。選択している2つのUVが垂直になるように、UVシェルが回転する。実行すると次の図のように、選択したUV間が垂直になるように黄色の線の分回転します。選択とUV値の取得ではコードを見ていきたいと思います。選択しているUVを「選択した順」で取得します。orderをオンにしないと-orderedSelectionが有効に働かない点です。orderがオフになっており、選択順を記録しないようになっています。orderをオンにしておきます。UV値を取り、$uv1と$uv2に入れておきます。垂直にするための角度の取得UV値を元に垂直に回転させるために、何度回転させればよいか計算します。$angle[2]);$alignDirと$currentDirに、UVを合わせたい軸方向と選択しているUVの方向を入れます。0.0}という様に、xyzで値を入れます。UV値ですので、xyがuvということになります。UVにはzがないですが角度を出すコマンドには三軸の座標値が必要なので、とりあえず0を入れておきます。angleBetweenコマンドで角度をはじき出せます。-eulerを指定すると角度がxyz値で返ってきます。-vector1と-vector2にそれぞれの方向を指定すると、差分の角度がxyzで返ってきます。ここではzに入っている角度を使用します。polyEditUVShellコマンドを実行すると、現在選択しているUVのシェルを回転できます。-pu/-pvにピボットとなるUV値を指定します。-aに回転させたい角度を指定します。angleBetweenで出した角度は垂直方向とUV方向の差分です。この差分をなくすことでUVが垂直になりますので、-1.0をかけて角度を反転させた値を、回転させたい角度とします。MELコマンドがスクリプト言語らしく、一行でややこしいことをすべて行ってくれますので、これだけでツールが完成です!機能拡張このコードでは垂直方向にUVを回転させますが、$alignDirで指定しているUV軸方向を変えれば、好きな方向にUVを向けられます。0.0}にすると、UVが水平になるように回転出来ます。関数の引数で何かしらそういった方向の指定を行えるようにすれば、ボタンをクリックするだけで欲しい方向に回転させるツールが出来上がります。他にも、polyEditUVShellで一つ目に選択したUVの位置をピボットとして指定していますが、UVシェルの中心をピボットとなるようにするとどうでしょうか?現在のUVの位置を大体保ちながら回転してくれるようになります。背景のUVレイアウトをしているとして、UVのLayoutでUVをざっと並べた後、個々のUVを正確に水平垂直にするのに、現在のUVの位置を保ちながら回転できればレイアウトを崩さずにUVを慣らしていけるので、より快適に使えそうです。まとめ基本的なUV周りのツールはある程度そろっていますが、プロフェッショナルレベルで使用するには更にツールがあると便利です。フリーのツールがありますので、それらをダウンロードして使用するのも良いですが、今回のツールのように思ったよりも簡単に欲しい機能が作れたりします。UV編集に必要な計算やMayaへの指示を行うコマンドが、あるのかどれなのかを考える手間がありますが、一度作ったツールの応用で様々なツールを作れるようになります。MELはちょっとした知識の積み上げですので、ぜひ普段から思っている「あったらいいな」というツールをMELで実現してみてください。360編(1/3)2016.04.04ここ最近は色々なところで「リアリティキャプチャ」という言葉を聞きます。30日間無償で体験できます。30日間無償で体験できます。製品のご購入に関してご連絡を希望される場合は、こちらからお問い合わせください。