2012年4月14日土曜日

modo 601: モーフの更新

modo 601では、モーフマップをメンテナンスするオプションがトランスフォームツールについています。これは、以前ディスカッショングループで質問があった問題を解決するためのソリューションとしてmodo 601で追加したものです。モーフマップは、メッシュの頂点からの相対位置を差分ベクトルとして頂点マップに保存する機能で、modo 601からはモーフデフォーマなどでも使用されています。

モーフマップは通常ベースとなるメッシュを作成してから、そのベースメッシュのバリエーションとして後から作成する頂点マップです。ベースメッシュに対して少しずつことなる形状をマップごとに作成することができます。

問題点としてモーフマップを作成したベースのメッシュを後から編集した場合、モーフ適用後の形が想定外の形状になってしまう点がありました。モーフマップはベースメッシュの各頂点からの相対ベクトルとして情報を保存していますので、ベースメッシュを変形すると新しいベースの頂点にマップに保存されている相対ベクトルがそのまま加算されるためベースメッシュを大きくスケールや回転するとモーフ適用後の形状が崩れてしまいます。



この問題を解決するためにトランスフォームツールにMorphオプションを用意いたしました。Transformモードを有効にした状態でベースメッシュの頂点を変形するとトランスフォームツールはベースメッシュを変形するのと同時に全てのマップに対してそのマップを適用した形状を変形し、その形状と新しいベースメッシュから新たに作成した相対ベクトルをモーフマップに書き出します。これによりモーフ適用後の形状を崩すことなくベースメッシュを編集することが可能になります。

Keep Positionsは、ベースメッシュを変更しても元のベースメッシュにモーフマップを適用した形状を変更したくない場合に使用します。トランスフォームツールは変形前のベースメッシュ+モーフマップから変形後のベースメッシュを差分して作成した相対ベクトルを新しいモーフマップとして書き戻します。


2012年4月10日火曜日

選択の解除

先週末に大阪のユーザーグループミーティングに参加した際、柳村さんに選択状態にある頂点やポリゴンをフレームのブランクエリアをクリックして解除できないかという質問をいただきました(大阪ではお世話になりました)。汎用的な用途で使えるチップスになりそうなのでこのブログで紹介いたします。

modoでは3Dビュー上の空白部分をクリックすると選択解除できるのですが、画面いっぱいに選択されたポリゴンが表示されている場合、ブランク部分が3Dビュー上に存在しないため選択が解除ができなくなってしまいます。LightWave 3Dでは、UIの空白の部分をクリックすると選択を解除することができます。

エレメントの解除は、select.dropというコマンドで行うことができます。例えばポリゴンの選択を解除したい場合、select.drop polygonというコマンドを実行します。頂点の場合は、select.drop vertexになります。現在の選択モードに応じてエレメントを解除するには、select.typeFromコマンドで選択モードをテストしてから対応したモードでselect.dropを実行すれば良いので下記のようなスクリプトを実行すればOKです。スクリプトは、ユーザーのスクリプトフォルダにコピーして置くと絶対パスの指定無しで、@SelectDrop.plのようなシンタックスで実行できるようになります。私のOSXでのユーザースクリプトフォルダは


/Users/taz/Library/Application Support/Luxology/Scripts

になります。スクリプトはこちらからダウンロードできます。下記をテキストエディタにコピペして使用してもOKです。



#! perl

if (lxq( "select.typeFrom {vertex;edge;polygon;item;ptag;center;pivot} ?" ) ) {
lx ("select.drop vertex");
}
if (lxq( "select.typeFrom {edge;vertex;polygon;item;ptag;center;pivot} ?" ) ) {
lx ("select.drop edge");
}
if (lxq( "select.typeFrom {polygon;edge;vertex;item;ptag;center;pivot} ?" ) ) {
lx ("select.drop polygon");
}
if (lxq( "select.typeFrom {item;edge;vertex;polygon;ptag;center;pivot} ?" ) ) {
lx ("select.drop item");
}
if (lxq( "select.typeFrom {ptag;item;edge;vertex;polygon;center;pivot} ?" ) ) {
lx ("select.drop ptag");
}
if (lxq( "select.typeFrom {center;item;edge;vertex;polygon;ptag;pivot} ?" ) ) {
lx ("select.drop center");
}
if (lxq( "select.typeFrom {pivot;item;edge;vertex;polygon;ptag;center} ?" ) ) {
lx ("select.drop pivot");
}

次にこのスクリプトがフレームのブランクエリアをクリックしたときに実行されるようにInput Editorで設定すれば良いのですが、この場合FramesのRegionsのLeft Clickに割り付けます。Input Editorでは、イベントが実行される条件をビューポートやツールなどさまざまなカテゴリで指定することができます。





この方法はmodo 601から実装したレイジー選択を常にオンにしたいときにも便利です。レイジー選択は常にマウスカーソル位置に一番近いエレメントが選択されてしまうので、3Dビューのブランクエリアをクリックしても選択が解除できません。

よろしかったらお試しください。modo 501でも使用可能です。


2012年4月9日月曜日

Audio Ape

modo 601では、アニメーションの機能が大幅に追加されましたが、残念ながらオーディオをmodo上で再生する機能は搭載されませんでした。ところが先日、Celfさんというユーザーの方がAudion Apeというmodo上でオーディオファイルを再生するプラグインを開発し、先週末にバージョン1.0が公開されました。詳しい経緯はオープンフォーラムをご覧ください。

Audio Apeが読み込めるオーディオファイルはWindows版ではWAV形式、MacOS版ではWAVE、AIFF、CAF、m4a、mp3などが扱えるようです。Audio Apeは、modoのキットの形式で配布されており、ユーザーコンフィグフォルダにダウンロードしたaudioapeフォルダをユーザーコンフィグフォルダにコピーすると使用可能になります。SetupタブやAnimetionタブにAudio Apeのタブが表示されますので、ここからAudio Apeの機能にアクセスル事が可能です。

Load Audio Fileボタンを押して、オーディオファイルを読み込むとAudioAPEという名称のロケータアイテムがシーン上に設定されます。このロケータアイテムにはAudioAPE専用のチャンネルがユーザーチャンネルとして登録されています。このアイテムはシーンに対して一つだけ登録されます。後はアニメーションタブで再生ボタンやタイムラインをスクラブすると読み込んだオーディオを再生することができるようになります。逆再生もサポートしています。取り扱えるオーディオファイルは一つのシーンで一つだけです。



Audio Apeは、ユーザーが自分で決めた金額を支払う方法で購入するプラグインです。ユニークなのは支払う金額を開発者に対する報酬と寄付金として寄付する金額とをパーセンテージで指定することが可能になっています。クレジットカードとPayPalが利用できます。

先週末から、Luxology modo SDKのWiKiサイトがオープンになりました。このサイトではmodoのプラグインやスクリプトを開発するために必要な情報がまとめられています。今後、ユーザーやサードパーティのプラグインツールがどんどん増えていくと嬉しいですね。