野球のボールの縫い目を並べるXPresso

CINEMA 4DおよびBodyPaint 3Dに関する一般的な議論や情報交換をするフォーラムです。
BUTTON_POST_REPLY
tofuji
記事COLON 828
登録日時COLON 2011年3月10日(木) 10:41
お住まいCOLON 東京都渋谷区

野球のボールの縫い目を並べるXPresso

投稿記事 by tofuji » 2011年5月11日(水) 00:18

 野球のボールを作ろうと思ったら、標準機能で縫い目を並べられなかったので、XPressoで作りました。 

画像

 サンプルファイル
http://www2.11moon.com/sample_files/201 ... _ball3.zip

 標準機能の「複製」を使うと、縫い目をレールスプラインの方向に向けることができません(おそらくバグで)。
「スプラインに沿う」タグを使うと、レールスプラインの方向を向けられますが、そもそも複製ができません。


 そこで、このXPressoでは、複製作業自体は「複製」にやらせ、複製されたオブジェクトを並べる作業だけをやっています。

 まず、スプラインを使って、小さなオブジェクトを大きなオブジェクトの表面に正しく並べるには、いくつかの方法があります。

1. レールスプラインを使う。
 使うのは簡単ですが、野球のボールの縫い目に沿ってレールスプラインを作るのは結構大変です。

2. 大きなオブジェクトの面の法線を調べる。
 一般的には、スプラインの近くにあるポリゴンの法線を調べる必要があります。ただし、これも結構面倒です。

3. スプラインの位置を面の法線として使う。
 今回のように形状が「球体」の場合に限り、面の法線は、スプラインの位置ベクトル(の単位ベクトル)と一致します。
これだとポリゴンを調べる必要がなく、簡単に作れるので、今回はこの方法で作りました。

 
 くり返し作業は、「階層」ノードと「sp」グローバル変数を使って実行しています。
「階層」ノードは、一回の実行で、条件に当てはまる全てのオブジェクトへのリンクをくり返し出力します。
具体的には、「XPressoタグが適用されたオブジェクト、の子オブジェクト全部」という条件で出力させました。

 今回のように、多数のオブジェクトを一度に処理したい場合などには便利なノードです。

 
---

Toshio Fuji<gtofuji@gmail.com>

掲示板に書いたサンプルのまとめサイト
http://www2.11moon.com/index_as.html

BUTTON_POST_REPLY