[Blender][3.3.1][Tips] オブジェクトモード時と編集モード時でメッシュが変わる問題

メッシュを作成して、ボーンを埋め込んでウェイト割り当てしようとした時に、ヘブンズドアーのスタンド(*)みたいに、メッシュがめくれるんですよね。(* ジョジョの話です)

頂点やボーンの位置を調整する必要があるのかと、編集モードに移ると治るんです。

 

編集モード以外のオブジェクト/ウェイトペイント/ポーズモードではメッシュに段差ができます。

 

散々調べた挙句、またサブディビジョンサーフェス(Subdivision)のモディファイアが原因でした。

ボーンに空の頂点グループを割り当てた際に、自動的にアーマチュア(Armature)のモディファイアが追加されます。それがサブディビジョンサーフェスの後に生成されるためにこの問題が起こっていました。

サブディビジョンサーフェスとアーマチュアのモディファイアの順番を逆転させると治りました。

 

メッシュにボーンのウェイト割り当てる時は、「サブディビジョンサーフェス」の順番に気をつけるべし!

 

[Blender][3.3.1][Python] ボーンの選択時の注意点

■注意点1:bone.select = True だけでボーンは選択できない!

以下のようにboneをselectして複製しようとするとできないのです。

    bone.select = True
    bpy.ops.armature.duplicate()

 

実は、ボーンは以下のようにhead(ヘッド)と本体とtail(テール)の3つの構成からなっています。

selectで選択される部分は本体のみであり、複製する場合は、headとtailも選択しておく必要があります。

headとtailを選択するためには、それぞれselect_headとselect_tailというものがあるので、それをTrueにすればOK。

これでボーンが選択され複製ができるようになります。

    bone.select = True
    bone.select_head = True
    bone.select_tail = True

 

■注意点2:繋がったボーンはselect_headでは選択できない!

通常ボーンを作る際はEキーを押しながら伸ばして作ると思います。

その際、自動で親のボーンを設定したりしてくれてとても便利です。

ところが先ほどのコードで、真ん中のボーンをhead/本体/tailを選択して、いざ複製と実行すると、これまた複製できないのです。

上図がコード実行時の結果です。
よく見ていただければわかるのですが、headが選択されていません。
この結果から察するに、自分のheadと親ボーンのtailが同一の位置にある場合は、select_headでは選択できないようです。

 

よって、以下のようにすれば真ん中のボーンのhead/本体/tailが選択され、複製ができるようになります。

    bone.select = True
    bone.select_tail = True
    bone.parent.select_tail = True

 

まとめると以下の図のような関係になります。
実は繋がったボーンにはheadがないのではないかとも考えたのですが、headの位置は取得できるので存在はしているようです。 なお、繋がったボーンのheadをselect_headで選択できないのが仕様なのか、バグなのかは現時点では不明です。



 

[Blender][3.3.1][Addon] HT Physics Object Addon

Japanese:https://pandadirector.hatenablog.com/entry/2023/01/30/224419

What is this Add-on

This is supereasy tool to create a single hair rig and a single tail rig.
"Jitan" tool! * - "Jitan" in Japanese means "saving time".

www.youtube.com

Download

github.com

How to Install

Download zip file. And retreve the HT_PhysicsObject.zip.

Start Blender, and [Edit]-[Preferences]-[Add-ons]-[Install].
Select HT_PhysicsObject.zip.

And enable "Object: HT Physics Object" in Community Tab.

How to use

*Preparation

1. Create manually the mesh object for hair or tail.

2. Create the bone tree alogn the mesh object.

3. Set the weight to the mesh object accroding to bones.

*Use this Addon

4. Select the Amarture, and move the mode to EDIT.

5. Select the first parent bone of the bone tree.

6. Select the "HTPO" on the Top menu of 3D viewport.

7. Select the "Create" and push the "OK" button.

Cautions

* The bone has branch is not supported.
* this addon is tested only on Windows OS + Blender 3.3.1.
* this addon dose not support the object/collection of name with any other language except english.
If you use a language except english. [Edit] -> [Preferences] -> Interface Tab, Please uncheck the "New Data" item.

Panels

*Create Panel

  1. Pin Stiffness Setting
    [Use Driver] --Set the pin stiffness of Cloth simulation with the driver. Select the driver among PS1/PS2/PS3.[Set Value] -- Directlly set the value to the pin stiffness.
  2. Bone Group
    Specify the number of Bone Group to move the created physics bones.

*Config Panel

  1. Pin Stiffness Driver
    Set the value of pin stiffness for each driver:PS1/PS2/PS3
  2. Physics Object
    Change the setting for the physics objects
    [Weight] -- Set the weight of the first vertex group affecting to remaining vertecies.
    [Pin Stiffness Setting] -- Same as the one on the Create menu.

*Bake Panel

Bake the cloth simulation. Same as normal chache menu of the cloth simulation. But can not watch the progress of the bake.

Files Construction

[Notice] If you remove #2,#3,#4 of the above and detach the Bone Constraint of Copy Rotation from #1, the state will go back to previous one before executing the "creat" of this addon. BUt please understand the below principle before these removing steps.

 

HTPO_SrcObj.000 is the driver for PS1, and Frame Start/End.

HTPO_SrcObj.001 is the driver for PS2, HTPO_SrcObj.002 is PS3.

Principle

The basic priciple is explained by Mr.Konak in here(Youtube). The below figure shows the abstract of this principle.

[Blender][3.3.1][Addon] HT Physics Object アドオン

English: https://pandadirector.hatenablog.com/entry/HTPO_addon/eng

できること

髪の毛や尻尾のリグを1本毎に簡単に作成できます。

www.youtube.com

動画の中の"合成"→"剛性"の間違いです...

ダウンロード

github.com

インストール方法

zipをダウンロードし、HT_PhysicsObject.zipを取り出し、

Blenderの[編集] -> プリファレンス->アドオン->インストールで上記zipを指定。

コミュニティの中にあるObject: HT Pysics Objectにチェックを入れる。

使い方

●準備

①髪の毛や尻尾用のメッシュオブジェクトを作成。

②メッシュオブジェクトに合わせてボーンツリーを作成。

③メッシュにボーンごとのウェイトを設定(後で設定でも可)。

●アドオン使用

④アーマチャを選択しエディットモードへ移行。

⑤ボーンツリーの一番親のボーンを選択。

⑥上部メニューの"HTPO"を選択。

⑦"Create"を選択し、OKボタンを押す。

注意事項

  • 途中で分岐するようなボーンツリーには対応していません。
  • Windows環境 + Blender3.3.1でしかテストしていません。
  • 日本語の名前には対応していません。

    [編集]→[プリファレンス]→インターフェスタブより「新規データ」のチェックを外しておいてください。

操作パネル

●Createパネル

  • Chash
    [Use Driver] -- Pin Stiffness(髪のしなりにくさ)をドライバを使って設定します。ドライバはPS1,PS2,PS3の三種類から選べます。各ドライバの設定値はConfigパネルで変更
    [値を設定] -- 直接値を設定します。(0~50)
  • ボーングループ
    作成される物理演算用のボーンを作成するボーングループを指定します。
●Configパネル

  • Pin Stiffness Setting
    [Use Driver] -- Pin Stiffness(髪のしなりにくさ)をドライバを使って設定します。ドライバはPS1,PS2,PS3の三種類から選べます。各ドライバの設定値はConfigパネルで変更
    [値を設定] -- 直接値を設定します。(0~50)
  • ボーングループ
    作成される物理演算用のボーンを作成するボーングループを指定します。
●Bakeパネル

Clothの物理演算をベイクします。通常のベイクパネルと同じです。但し、ベイクの進捗は確認できません。

ファイル構成

[ヒント]②③④を削除し、①から回転コピーのボーンコンストレイトを削除すると元の状態に戻ります。ただし、正しく下記の原理やファイル構成を理解しないと、動作がおかしくなる場合があるのでご注意ください。

HTPO_SrcObj.000 がPS1とFrame Start/Endのドライバー元です。

HTPO_SrcObj.001 はPS2、 HTPO_SrcObj.002がPS3のドライバー元です.

原理

基本的な原理は粉くんのYouTubeで説明されています。この手順をオートメーション化しています。

簡単に説明すると、下図の上部の流れでオブジェクトやボーンを作成し、

下部の流れでCltohの物理演算を割り当てたメッシュオブジェクトの頂点位置をトレースさせる流れになります。

[Blender][3.3.1][Tips] レンダリング時だけサーフェス変形が有効にならない時の対処法

オブジェクトモディファイアーの「サーフェス変更」を使っている時、3Dビューのプレビュー状態でレンダリングして移動や、アニメーションさせても問題ないのに、いざレンダリングしてみると、オブジェクトが置いてけぼりになることないですか?

<失敗例>服の上のオブジェクトにサーフェス変形を使用した例

いろいろ調べた結果、これは「サーフェス変形」のオブジェクトとターゲットに指定しているオブジェクトに「サブディビジョンサーフェス(細分化)」を使用していると起こるようです。どちらか一方で使用されていてるだけで駄目です。

 

これはサーフェース変形が元のサーフェースの頂点位置を元に計算されるためで、サブディビジョンサーフェスによって頂点の位置が変わるために起こります。

 

これを回避するには、レンダリング前に「サブディビジョンサーフェス」のモディファイアを適用する必要があります。

 

★注意★

サブディビジョンサーフェスを適用すると、オブジェクトの頂点が増えて、その後の変更がしづらくなるので、レンダリング直前に適用することと、適用前には別名で保存してファイルを分けることをお勧めします。

 

サーフェス変更」を使う時は、レンダリング前に「サブディビジョンサーフェス」を適用すべし!