身内の宣伝コーナー

 

フルオーダーから既製デザイン柔軟に対応!

袴ロンパースの製作販売してます!レンタルもやってます!

大口注文やレンタルのサブスクなど相談ください!

  

  

よかったら見てみてね

 

 

 

ココから本題 

書ききれるのか、それはおいておいて検討したいのが

 

 

ジオメトリーノードでのベクトルのまとめ方

を検討、実用を考えたい

というものです。

 

要は何がしたいのか、説明がしにくいのですがフィールドなどから特定のIDやインデックスを取得する工程で一個ずつではなく、ある程度まとめて取得はできないものか、という考えです。

 

とりあえず、やりたいことは立方体がメインなので、立方体で進めます。

 

まずは全体のインデックスが含まれる状態にして、面の押出をすると、当然ですが、全部の面が押し出されます。

 

ここから、特定の面(ID・インデックス{違いがまだわからない…})を選択してみます。

 

こうすると一箇所の面が押し出されます。

 

このとき、例えば、まとめて2面を押し出したいときこんなふうにすれば意図した面を押し出すことができます。

 

まぁこのやり方は2面同時、ではなくて1面を押し出した後に別の面を出しているのですが…

まぁそれはさておき、段階を踏みたいときはこんな感じで良いわけです。

 

このときに、同時に出したい、という意味を叶えるにはベクトル?を2つまとめてセットしたいわけです。

 

こんな感じに、ベクトルの演算で加算を使うと2つのベクトルを一つにすることができています。

 

これを減算にし、同じIDにすると押し出しが消えます

 

 

こんなものが 

 

自分ではこれを複雑に組むしかわからないのですが、試しに調べたらこんなのがありました

 

 

 

 

 

 

 

 

自作できるのか 

 

インストール
アドオンは GitHub と Blender Market で入手できます。入手先を選び、以下の手順に従ってください:

GitHubから
ソースコードをダウンロード
Blender > Preferences > Add-onsを開きます。
Install... を選択し、ダウンロードした ZIP ファイルを選択します。
Blender Marketから
アドオンを購入後、ZIPファイルをダウンロードします。
Blender > Preferences > Add-onsを開きます。
Install...を選択し、ダウンロードしたZIPファイルを選択します。

そのままか、次

 

 

内部編集の基本
Blenderに内蔵されているテキストエディタを使うのが一番手っ取り早い方法です。Blenderの中でスクリプトを編集し、実行することができます:

テキストエディタスペースを開きます。
利用可能なスペースのスクリーンショットで、テキストエディタスペースがハイライトされています。

Newボタンで新しいテキストデータブロックを作成します。
テキストエディタスペースのスクリーンショット。

ジオメトリスクリプトを書き始めます。例として、以下のスクリプトを貼り付けることができます。スクリプトの書き方については、後の章で詳しく説明します。
from geometry_script import *.

ツリー("Repeat Grid")
def repeat_grid(geometry: Geometry, width: Int, height: Int):
    g = grid(
        size_x=width, size_y=height、
        頂点_x=幅, 頂点_y=高さ
    ).mesh_to_points()
    return g.instance_on_points(instance=geometry)
runボタンをクリックしてスクリプトを実行します。Repeat という名前のジオメトリノードツリーが作成されます。

www.DeepL.com/Translator(無料版)で翻訳しました。

 

試そうとしたら

 

Python: Traceback (most recent call last):
  File "\Text", line 3, in <module>
  File "C:\Users\hinat\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\geometry-script-main\api\tree.py", line 130, in build_tree
    generated_outputs = [*builder(**builder_inputs)]
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "\Text", line 18, in city_builder
TypeError: 'NoneType' object is not callable

ソースでエラーか…

これは対処が厳しそうだから作者様に問い合わせはしておきました。

対策わかる方いらしたら教えて下さいませ。

 

では気を取り直して 

ベクトル加算ノードを使って、という手段がメインなのはわかるのですが、これを3つや4つ、任意の数追加できるようにはならないものか、というのが本音です。

 

しかたない…

 

一つのフィールドから

複数の座標(ベクトル)を選択して、一つにする

 

需要ないのかな…?

 

 

こんな風に、フォールドから一次的な場所では値は2つ引っ張れない?

かもしれないので

 

やはり一個後で繋げないとダメみたい

 

整数で、IDを選択して、選択した面を一定数押し出す

 

さらにミックスも対応します

 

ベクトル合成でも似た挙動です。

 

合成して合成して合成して、計8箇所に対応したグループを作りました。

 

 

グループにするとだいぶスッキリしますね

 

フレームに入れるとツール感がでますかね

 

 

 

構築は大変ですが、こうしていくことで、任意面の押出が可能になるかと思います。

 

 

中身は全然ですが、こんな感じなのとかが作れるようになります。

 

 

もう少しおもしろい?ものが作れるようになりたいものです。

 

 

 

 

 

ココまで 

 

 

 

 

 

私自身の活動案内

 

    

(ココナラで出品中)

        

 

  

 

この記事の関連商品