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スプライン)



2026年4月17日金曜日

YT-Bridge for Blender and Modo

YT-Bridge for Blender and ModoGumroadオンラインストアでリリースいたしました。このツールは、BlenderとModoの間でシーンデータを双方向に交換するためのブリッジツールです。

YT-Toolsには、External Clipboardという機能があり、BlenderとModoやLightWaveの間でメッシュデータをコピペすることができます。これはもともとYT-ToolsでBlenderの中だけでModoライクなコピペを行うためのクリップボードを拡張したもので、設計上ポリゴンやメッシュ属性以外への拡張には無理がありました。YT-ToolsのExternal Clipboardをリリースしてから、カメラやライトなどの他のシーンデータも転送して欲しいとのリクエストに対応するため、ブリッジツールを一から設計し直したのがYT-Bridgeです。

下記がYT-BridgeとYT-ToolsのExternal Clipboardでできることの違いです。


YT-Bridgeは、YT-Toolsと同様に外部ファイルを経由して、データを転送しまします。プッシュ操作で指定したアイテムの情報を外部ファイルに出力し、読み込みを行うアプリ側でプル操作を実行して外部ファイルに出力されてデータを読み込みます。YT-Bridgeでは手動のプッシュ・プル操作でデータの転送を行うフローにしています。IPCなどのアプリケーション間通信を使った自動転送も検討しまいしたが、セットアップの煩雑さや通信トラブルが想定されることから、シンプルに手動でプッシュ・プルするやり方にいたしました。


また、YT-Tools External Clipboardでは、転送速度の向上を期待してOSのクリップボードを経由する方法も選択できるようにしていましたが、転送速度が逆に遅くなったり転送サイズに上限があったりなどメリットが少ないためこれは廃止しました。そのかわり内部データをmsgpackを使ってバイナリーでシリアライズするオプションを用意いたしました。JSONのテキスト形式よりも外部ファイルのサイズが小さくなるためバイナリ形式の方が転送が高速になる場合があります。

想定している主なワークフローは、Blender上のシーンをマスターとしてメッシュデータなどをModoに転送し、モデリングの修正などを行い、修正データをBlenderにプッシュして書き戻すというフローです。Blenderから修正データをプル操作でシーン上の同名のオブジェクトに上書きする際に、念の為シーン上の上書き前のオブジェクトのバックアップと取っておきたい場合があると思います。Duplicate and Replace Objectsを有効にしておくと上書きするオブジェクトの複製を作成したのち、上書きを実行します。

データ変換の詳細に関しては、YT-Bridgeのドキュメントを参照していただきたいと思いますが、YT-BridgeではModoのインスタンスアイテムをBlenderのリンク複製に変換しています。ModoのインスタンスとBlenderのリンク複製はほぼ同じ目的を実現する機能なのですが、Modoのインスタンスアイテムが実体を持つアイテムをソースとして参照しているのに対し、Blenderのリンク複製は共通の(MESHなどの)データを複数のオブジェクトが同等レベルで共有しているという違いがあります。この辺りはアプリケーションのデザインの違いからかくるもので大変興味深いです。

ModoのMesh Paintで作成したインスタンスアイテムをBlenderのリンク複製に変換

アニメーションに関しては、基本的なアイテムのトランスフォームのアニメーションを転送することができます。Bake Keyframesを有効にすると各フレームにキーを追加してキーフレームを追加します。キーの値はチャンネル単位ではなくXYZの座標値単位で出力しています。Modoはチャンネル単位にマテリアルの属性なども時系列のアニメーションを作成することができますが。YT-Bridgeではサポートしていません。またスケルトンのボーンのアニメーションもサポートしてません。

Modoのスケルトンは、BlenderのArmatureのボーンに変換しています。Modoのスケルトンは、ロケータアイテムをJointとして使用しているのに対し、BlenderはArmatureオブジェクトのボーンデータとして管理しているため、100%スケルトンの構成を移行することはできません。Blenderの各ボーンはHeadとTailの2つの座標値を個別に管理しているのに対し、Modoのスケルトンはロケータの親子関係だけでボーンのリンクを構成しています。したがって親子関係の分岐が複雑な構成の場合は、ボーンの構造が異なってしまう場合があります。



GumroadのオンラインストアでYT-Bridge購入時にご利用いただけるクーポンコード(20 % オフ)を用意いたしました(2026年4月30日まで有効)。ご購入の際は是非ご利用ください。🙇

Coupon Code: FICI02T


2026年3月7日土曜日

YT-Tools for Blender (Undo / Redo)

YT-Tools for Blender v1.8.2を公開いたしました。このバージョンでは、v1.8リリース後に頂いたユーザーの方々からのフィードバックに基づいた幾つかのマイナーチェンジを行なっています。

Undo/Redo

基本的にBlenderのオペレータでできるUndoは、変更後の状態をオペレータ実行前の状態に戻すことだけです。したがってモーダル中に動作した操作を一つ前に戻したりするツール実行中のUndo/Redoは、アドオンが自分で面倒を見る必要があります。ModoではツールシステムのレベルでUndo/Redoをサポートしていたので、考える必要がありませんでした。v1.8.2では、下記のトランスフォームツールとウェイトツールでUndo/Redoが使えるように変更を加えています。Edge Sliceなどのトポロジーを変更するツールは、もう少し工夫が必要なので要望に応じて今後またトライしてみたいと思います。

  • Linear Transform
  • Radial Transform
  • Bend Transform
  • Linear Weight
  • Radial Weight

ループスライスの改善

Modoのループスライスでは、複数のエッジを選択して別々のループを同時にスライスすることができましたが、Blenderのループスライスではこれができていませんでした。v1.8.2では、エッジを複数選択して同時に複数のループをスライスすることができます。

選択セットの改善

小さな変更ですが、選択セットで保存した選択を選択状態にするとき、今までは現在の選択状態に追加するように選択セットの情報を選択していました。現在の選択を選択セットの情報と置き換えたい場合は、画面をワンクリックして現在の選択を解除する必要がありました。この一手間を省略できるようにv1.8.2では、選択(置換)というボタンを追加しています。

YT-Tools for Blenderに関する、バグ報告やリクエストはこちらのフォームからお受けしております。皆様のフィードバックをお待ちしております。🙇