2025年12月26日金曜日

YT-Tools for Blender (External Clipboard その3)

YT-Tools for Blender v1.7では、外部クリップボードも更新しています。以前は一つのアクティブメッシュのポリゴンだけがクリップボードにコピーされていましたが、v1.7では全ての選択されているメッシュオブジェクト(アイテム)が同時にすべてコピーされるように改良いたしました。クリップボードには、オブジェクトごとにメッシュ情報が保存されています。Pasteを実行すると現在アクティブになっているメッシュオブジェクトにクリップボードに保存されている全てのオブジェクトのメッシュが貼り付けられます。New Object from Clipboardを実行した場合は、クリップボードに保存されているオブジェクトごとに新しいメッシュオブジェクトが新しく作られ、個別にメッシュが読み込まれます。

また、せっかく汎用的な外部クリップボードの仕組みを作りましたので、LightWave Modelerで動作する外部クリップボードを作ってみました。20年ぶりにLightWaveのプラグインを作ってみましたが、なんとか動作するものを作ることができたみたいです\(^^)/。今回はPythonを使ってCommandSequenceクラスのプラグインを作ってみましたが、Modelerに関してはGlobal Service関数の使い方はそれほど変わっていないので安心しました。ただし、サーフェイスの扱いがノードベースになっていたので従来のLWTextureFuncsからUVマップやテクスチャ画像の情報を取り出すことができませんでした。また、使用できる環境がLightWave 2024だったので、サポートされているPythonのバージョンは2.7です。LightWave 2025では、Python 3.13になったようなので、新しいバージョンで動作するかどうかはまだ確認していません。

今回はなんとなくノリで作ってしまいましたが、LightWave版の外部クリップボードに対する需要があるかどうかノーアイディアです。もし需要があるようでしたら、Layout版の開発なども考えてみたいと思います。リクエストなどフィードバックはこちらのフォームからお願いいたします。



久しぶりにLightWave 3Dを触っていてVertex PaintのAboutメニューをクリックしたら、いまだに "Vertex Paint v3.5.6 ((c) 1998-2005 D-STORM, Inc. by Yoshiaki Tazaki"という表記がでてきてびっくりしました🤭。BandSawやEPSF Loaderなど昔作ったツールがまだ残っているんですね。懐かしい。





YT-Tools for Blender (Absolute Scale)

YT-Tools for Blenderのv1.7を公開いたしました。今回のバージョンでは、日本のユーザーの方から頂いたリクエストに対応して絶対スケール(Absolute Scale)を実装いたしました。これは、実装は異なりますがModoの絶対スケール(Absolute Scale)と全く同じ使い方で対象となるメッシュを実寸値を入力してスケールするツールです。Modoではパネルを表示するタイプとインタラクティブにツールハンドルを使うタイプの絶対スケールがありますが、今回実装したのは前者のパネルタイプの絶対スケールです。選択した部分のポリゴンをGrabコマンドを使って読み込み、そのあとで変更後のサイズを入力して、メッシュのスケールを行います。

Grabして読み取るサイズは、選択ポリゴンのバウンディングボックスに基づいて計算されますが、Orient To Selectionを有効にすると方向性バウンディングボックスに基づいてサイズを計算します。

Uniform Scaleは、X/Y/Zの各軸方向のサイズが同じになるように均一にスケールが行われます。Explicit Scaleは、X/Y/Zの各軸方向を個別にスケールします。Reference Scaleは、Grabで使用した選択エレメントだけでなく、そのほかの非選択エレメントもスケールします。

Scale Centerは、スケールを行う際のピボット位置を指定します。Modoのオンラインユーザーガイドにもこのツールに関するページがありますので、そちらも参考にしてください。


また、これもリクエストからの実装で、3D画面描画の速度を視覚的に表示するFPSゲージも実装しています。




2025年12月20日土曜日

YT-Tools for Blender (External Clipboard その2)

YT-Tools for Blenderのv1.6.2とModo Clipboardのv1.0.2を公開いたしました。外部クリップボードの機能を公開した後でユーザーの方から頂いたフィードバックを元にバグ修正と機能追加を行いました。下記のような改善を行っています。

  • 転送速度を改善するためできるだけ無駄なエッジ情報をできるだけ出力しないように変更
  • 選択セットのサポート
  • 頂点カラーのサポート
  • UVシームマークのサポート
選択セットは、Modoの頂点、エッジ、ポリゴンの選択セットをYT-Tools for Blenderに実装したSelection Setと双方向に変換しています。頂点カラーはModoのRGB、RGBAをBlenderのColor Attributesと双方向に変換しています。BlenderのColor Attributesは、PointとFace Cornerのドメインの両方をコピーしていますが、Modoからの出力は全てFace CornerのRGBAデータに変換されます。UVのエッジシームは、"_Seam"という名称のUV Seamマップに変換しています。



Modo ClipboardYT-Tools for Blenderに関するバグやご要望がありましたらこちらのフォームからお願いいたします。




2025年12月11日木曜日

YT-Tools for Blender (External Clipboard)


YT-Tools for Blender v1.6
を公開いたしました。このバージョンでは、v1.5で実装したクリップボードを拡張した外部クリップボードという機能を実装しています。この外部クリップボードを利用することでBlenderとModoの間でメッシュデータの交換が可能になります。Modo側にはこの外部クリップボードに対応したModoClipboardキットを用意しました。


ModoでモデリングしたメッシュポリゴンをこのModoClipboardのCopyコマンドからコピーし、BlenderのYT-ToolsのクリップボードにあるUse External Clipboardを有効にした状態でPasteボタンを押すと、クリップボードに保存されているメッシュデータがBlenderのMeshオブジェクトに貼り付けられます。もちろんBlenderからModoへも同様の操作で転送が可能です。通常のコピペ作業と同じように選択したポリゴンだけでもメッシュの全てのポリゴンでもクリップボードに転送することができます。

転送されるデータは面ポリゴンおよび頂点データの他、下記のような属性データも転送することができます。

  • UVマップデータ(UV Sets)
  • 頂点ウェイトマップ(Vertex Groups)
  • サブディビジョンエッジウェイト(Crease Edge)
  • モーフマップ(Shapekeys)
  • マテリアルデータおよび画像テクスチャ
  • RGB, RGBAマップ(Color Attribute)
  • HardEdgeマップ(Hard Edge Marks)
  • アイテムトランスフォームおよびペアレンティング

マテリアルに関しては基本的なDiffuseColorをBlenderのBasis Colorのみを変換しています。また、BlenderのFreestyle Edgeのマーク情報は、"_Freestyle"という名称でModoのエッジ選択セットに変換しています。

外部クリップボードに転送するデータはメッシュデータをJSON形式のテキストデータに変換して保存しています。クリップボードのタイプをOS Clipboardに変更することで変換したJSONテキストをテキストエディタなどに貼り付けて変換データを閲覧することができます。ただし、OS Clipboardには転送するデータのサイズや転送速度に制限がありますので、通常は一時ファイル経由で使用することをお勧めします。

ModoClipboardキットは、GumroadのほかGithubにも公開していますのでModoのキット形式(.lpk)のパッケージファイルに加えて、Pythonのソースコードも入手することができます。




ModoClipboardもしくはYT-Tools for Blenderに関するリクエストやバグ報告はこちらのフォームからお願いいたします。