2026年6月18日木曜日

Select Edges By Polygon Angle

Select Edges By Polygon Angleは、凸エッジ、凹エッジ、平面上エッジをインタラクティブに選択するためのModoの選択ツールです。平面上エッジ(Coplanar)は、Statisticsパネルで選択可能ですが、角度を指定して凸エッジ、凹エッジを選択する機能はありませんでした。条件を変更しながらこれらのエッジの選択を用意にするためにツールとして実装しています。

ConvexConcaveはそれぞれ凸エッジ、凹エッジの選択を有効にするオプションで、AngleとOperatorで指定した条件を満たすエッジを選択します。例えばConvexを有効にし、Angleに5.0°、Operatorを指定すると、共有する2つのポリゴンの法線ベクトルの角度が5.0°を超えるエッジが選択されます。

Angleに0.0°、Operator=を指定すれば、平面上エッジ(Coplanar)を選択することができますが、このツールではCoplanarという平面上エッジ(Coplanar)を選択するオプションを明示的に用意しています。このツールのCoplanarの選択はModoのStatisticsで使用している平面率を指定した平面上エッジ(Coplanar)の選択と同じアルゴリズムを使用しています。



2026年6月16日火曜日

Select Colinear Vertices

Select Colinear Verticesを公開いたしました。しばらくはBlenderのアドオンの開発をお休みしてリクエストを頂いているModoのプラグインを開発していく予定です。FoundryでModoの開発をしている最中は、担当するキーフューチャーをメインに実装していたため、ユーザーからの比較的小さな機能リクエストは開発のプライオリティが低くなっていました。Foundryから離れてようやく自由に作りたいものが作れるようになった気がします🙂

Select Colinear Verticesは、同一直線上にある頂点を選択するツールです。これは比較的簡単なツールで、同じような機能のスクリプトなどはありますが、頂点に連結されている2つのエッジの許容角度を指定してインタラクティブに操作したいというリクエストがありましたので、ツール版のSelect Colinear Verticesを作りました。

同一直線上の頂点とは、2つのエッジが連結されている頂点で連結する3つの頂点の座標値が同一直線上にある頂点です。面ポリゴンのエッジの他、ポリラインの頂点も選択対象になります。



2026年6月11日木曜日

Curve To Polyline

Curve To Polylineを公開しました。これはModoのカーブをポリラインに変換するModoのキットで、macOSとWindowsのModo 16.1, Modo 17.1で動作します。

この機能もModoのユーザーの方からのリクエストに基づいて開発したもので、Modoのカーブをゲームのアセットとして使いやすいように最適化されたポリラインに変換するのが目的です。通常Modoでカーブをポリラインに変換する場合は、Freezeコマンドを使用します。Curve Refinement Angleを指定すれば曲率を考慮した変換を行うことができますが、Curve To Polylineではもう少し変換の方法を細かく指定することができます。

Uniform Lengthは、Countで指定した数でカーブのセグメントを同じ長さになるように変換します。これはCatmull-Romカーブだけでなく、ポリラインに対しても動作しますので、カーブのリサンプリングを行う目的にも使うことができます。



Maximum Angleは、カーブの接線の傾きが指定した値を超えた場合にポイントを追加するアルゴリズムです。曲率が大きい場所ではより細かく分割され、なだらかな場所では平坦になります。



Minumum Edge Lengthは、微細なエッジが作られるのを防止するための値で、出力されるエッジの長さがこの値よりも小さくなってしまう場合は、角度が大きくても長さを優先して分割を行います。

Angle Adjustmentは、より繊細なコントロールを行うためのオプションで、最も長い分割エッジの長さを基準に判定する角度を調整する機能です。Minumum Edge Lengthが短いエッジをクランプしてしまうのに対し、Angle Adjustmentは分割エッジの長さに応じて求めたウェイトで判定角度を調整しています。



2026年5月22日金曜日

YT-Tools for Blender (X-Ray Lasso Selection)

YT-Tools for Blender v1.8.5をリリースいたしました。このバージョンでは、いくつかのバグ修正の他、以前からリクエストがあったX-Ray Lasso Selectionを追加しています。

X-Ray Lasso Selectionは、投げ縄選択で選択範囲内にある全ての頂点をシェーディングモードにかかわらず選択する機能です。BlednerのBox選択や投げ縄選択では、ビューポートがソリッドシェーディングだった場合は、前面のポリゴンに隠れている頂点は選択されません。シェーディングモードがX-Rayの場合のみ、選択内の頂点が表示されるため範囲内の全ての頂点が選択されます。これを解決するためにX-Ray Selection Toolというアドオンもリリースされています。



Modoの投げ縄選択も同じ仕様になっていますが、マウスの中ボタンを使った投げ縄選択では、選択範囲内の頂点が選択されるようになっています。YT-Toolsでこの中マウスボタンを使った投げ縄選択のワークフローを再現するために、新しく独自のLasso Selectionツールを追加しました。通常、マウスボタンには重要な機能がアサインされている場合が多いため、デフォルトでこの機能は無効にしてあります。また、デフォルトのマウスボタンはAltキー+右マウスボタンに設定しています。Modoのビューポートナビゲーション(Alt+左ますすボタン)を使用されている場合は、中マウスボタンにX-Ray Lasso Selectionをアサインして使うことも可能です。



投げ縄のスタイルはModoと同じように通常の投げ縄の他、矩形、円、楕円もサポートしています。また、Blenderの対称を参照していますので、メッシュのローカル座標系での対称選択もサポートしてます。


ただし、Blenderでは選択されている頂点や面はソリッドのシェーディングモードで前面にある面に隠されて表示されないため、ビューポートを回転して選択状態を確認する必要があります。Modoでは選択エレメントは通常のメッシュの表示と異なる描画レイヤーで表示されるため背面にあっても表示されます。この制限は他のBlenderのユーザーの方からも要望が登録されているようですので、将来のBlenderのアップデートに期待しましょう。

2026年5月19日火曜日

Select within Selection

最近、古いModoのユーザーからのリクエストで久しぶりにModoのプラグインを作っています。Modoの開発終了から一年半以上がたち、多くのModoユーザーの方たちは、BlenderやHoudiniなどへの移行を進めているように思いますが、まだまだModoをバリバリ使っている方がいるのは嬉しいですね。ネイティブの新機能などはもう追加できませんが、これからもプラグインなどは作っていこうと思います。

Select within Selectionは、既に選択している頂点やポリゴンの一部を投げ縄や矩形選択する機能です。ちょっとしたアイディアなのですが、これで結構選択作業効率が向上できるようです。ネイティブの投げ縄選択を拡張できれば簡単に実装できる機能なのですが、今回はプラグインのツールの形で実装しています。



もう一つは、エッジループのスムージングです。Modoにはもちろんネイティブのスムージングツールがありますが、連続したエッジループのリラックスに関しては期待通りの結果が得られない場合があるようです。スムージングに関しては、Laplacian Smoothingキットを昨年公開しています。今回はこれを改良してエッジループやポリラインに対して動作するようにアップデートしました。基本的にLaplacian Smoothingは、面ポリゴンで構成されているメッシュの頂点の座標値を平滑化していますが、今回の変更ではエッジモードで連続して選択されているエッジを構成する頂点の座標値とポリゴンモードでポリラインもしくはカーブポリゴンの頂点座標値を平滑化しています。エッジループが閉じていない場合は、端点の座標値は固定されます。Laplacian Smoothingで閉じたループを平滑化するとサイズがどんどん小さくなってしまいますので、イテレーションごとにオリジナルのサイズに適応するようにサイズをアジャストしています。





2026年4月27日月曜日

YT-Bridge for Blender and Modo (Setup)

YT-Bridgeでモーフデフォーマを設定したシーンをBlenderに出力した際に、シェイプキーのBaseが正しく出力されないとの質問をいただきましたので、解決方法をこのブログに記載しておきます。ModoとLightWaveはモーフ、Mayaはブレンドシェイプ、Blenderはシェイプキー。この機能の呼び方はアプリケーションで異なるので混乱してしまいますよね。誰か統一して欲しいものです。

Modoでモーフデフォーマやメッシュオペレータが設定されたメッシュはツール側からは書き込み不可の背景メッシュとして取り扱われます。通常、このメッシュオペレータが追加されたメッシュはオペレータが適用された後の形状が参照され、アニメーションされている場合は現在のフレームで異なる形状が参照されることになります。これは背景メッシュをツールからスナッピングやレイキャストなどで参照するために必要な仕様です。

ただし、YT-Bridgeでこのタイプのメッシュを取り扱う場合、モーフのベースメッシュがデフォーマ適用後のメッシュになってしまうため、他のモーフデータと整合性が取れなくなる場合があります。モーフ以外にもボーンデフォーメーションのセットアップ形状も同じ問題が生じます。

解決方法はとてもシンプルでModoのSetupモードを有効にするボタンを有効にした状態でYT-Bridgeからプッシュ操作をするだけです。YT-Bridgeで独自のオプションを用意することもできますが、仕組みを理解した上で自分でSetupモードで出力するかしないかを決める方がシンプルで簡単な方法だと考えます。デフォーメーション適用後のみたままの形状をそのままBlenderに転送したいケースも多いと思いますので、どちらをデフォルトにするかは目的に依存すると考えます。





YT-BridgeはYT-Toolsの外部クリップボードに満足していない少数の方が利用するとてもニッチな製品ですが、運用を始めるといろいろ問題点や改善点が出てきそうです。バグなどがありましたらフィードバックフォームからお願いいたします。

2026年4月21日火曜日

YT-Bridge for Blender and Modo (Curve)

カーブとサーフェイスポリゴンが混在するメッシュを出力すると、カーブだけが優先されてしまう問題を解決したYT-Bridge for Modo v1.0.1をリリースいたしました。

ModoとBlenderとではカーブの取り扱いが異なっています。Modoはさまざまなエレメントがポリゴンとして取り扱われていて同一のメッシュに異なるタイプのポリゴンを混在して存在することが許されています。Modoでは面ポリゴン、ポリライン、カーブ、サブディビジョンサーフェイス、テキストなども異なるタイプのポリゴンとして取り扱われます。これに対してBlenderでは、MESHオブジェクトには面ポリゴンのみが保存される仕様になっています。カーブやテキストは異なるタイプのオブジェクトとして保存する仕様です。Modoの仕様はユーザーの自由度が高い反面、開発者の立場からはメッシュに混在するさまざまな種類のポリゴンに対応できるようにツールを開発する必要があるのでちょっと大変です。

YT-Bridge for Modo v1.0.1では、Modoのメッシュの中に面ポリゴンとカーブが混在していた場合、MESHオブジェクトとCURVEオブジェクトに分けてそれぞれのデータを出力するように変更いたしました。

Blenderのカーブの種類がベジェ曲線、NURBS曲線であるのに対し、ModoはCatmull-Romスプライン、ベジェ曲線、Bスプライン曲線をサポートしています。カーブデータの交換は下記のような方法で行なっています。ModoではNURBS曲線をサポートしていませんので、Bスプラインに変換する際には、NURBS曲線のウェイトデータは失われます。

ModoからBlenderへ

  • ベジェ曲線: ベジェ曲線へ変換
  • Bスプライン曲線: NURBS曲線へ変換
  • Catmull-Romスプライン: ベジェ曲線へ変換
BlenderからModoへ

  • ベジェ曲線: ベジェ曲線へ変換
  • NURBS曲線: Bスプライン曲線へ変換(ウェイトを持たないユニフォームBスプライン)