investigator:Alidade
今日はHoudini Advent Calendar Apprentice 2021 Day 1stです
クリスマスまであと少しですね。
25手ぐらいで電線が伸び縮みする簡単な電柱を作ってみよう!
全体的なネットワークはこの位で収まる単純な物になります。
最近廃止されそうな事が書かれ始めた
bbox指定方法を今回は使いません。
今回は必要な機序があれば あとは設備を盛っていけば2点の間の距離を伸ばせる所を重視するのみとします。
小物にありがちな事かも知れませんが
ブロッキングの在り方次第で
電柱の高さを変えられたり
電線の数を変えられたりしながら
細い糸状のロープのような物が伸びたり
縮んだりする要望を応える事が出来るのを最優先にし、要所要所の
レイアウトバランスを考えるのには良いモックのような物を完成とします。
では作り始めましょう↓
circleを一つ作りPolygonにしUniform Scaleは0.1ぐらいにします。
Divisionsは8程度、後に増やせるので軽くしたい場合は4ぐらいで始めても良いと思います
作ったCircleにLineをsweepで繋げます 高さは適当で良いので
線を6分割する程度にします 面が裏返ってしまう事があるのでreversで繋ぎ
sweepで作られた筒の底辺をLineのLengthからcopyしTranceformSOPのY軸にペーストします(するとch("../line1/dist")という表示になります)
次にgroupSOPを作りてっぺんのPointをgroup指定して固定しておきます
Lineを作り分割数に対して1/6指定をし 電線の部分の中心点をずらしておきます
LineのLengthパラメータをcopyしOriginにリファレンスを貼り付け その後-でPointsのパラメータを繋げ最後に/6と入力します
copytopointsでSOP同士を繋げたらpoint1をblastし更にcopyして行く事にします
blast指定でこうすれば短い部分のlineをcopytopointする際に
要らない箇所を任意で消せるので
自分が好きな方に中心をずらした際に好きなポイントの位置を消せます
今回の場合は生やすとモデルとして重複する箇所があるので削除するのは2とします
grouprangeで選択しておきたい頂点を作ります pointsとして選択項目を使用し
RangeFilterのSelect of を2にします
以下Blastを重ねて行きgroupにしたい頂点を絞って行きます
(この項目は後から削除出来る電線の数を決められる実証ですので↓のblastSOPは無くても構いません)
好きな頂点の数をgroupに入れられました
wrangleSOPで先ほど決めたGroupの頂点に対し頂点にidを持たせます
@ptnumとはpointナンバーに対して一つずつIDを振って行くぞ という事です
それが終わったら今度はpointを原点にaddします
wrangleSOPと原点にaddしたポイントをcopytopointしmergeして行きます
他のLineSOP同士をcopytopointした物同士も全てmergeして表示を集約させると
こんな表示になっているのではないでしょうか
電柱同士の幅を決めるLineを作ります lengthは30程度にしてありますが伸び縮みを優先するので適当な幅で良いです
copytopointを先ほどmergeした物から繋げます すると電柱が増えました
次にgroup00そのものはblastして電線同士を繋げるポイントを抽出します
addSOPのタブをBygroupに指定し
group00にBy AttributeでAttributeNameをid同士として呼び出します
それをresampleして真ん中に一つのポイントが作れるようにします
grouprangeSOPで3本の電線がある場合 中心の頂点達が選択できているでしょうか?
それをTransformでY軸を少し落とす形で曲げます
resampleSOPで好きなだけ滑らかにします
polywireSOPで太さをそれっぽくしましょう WireRadiusは0.02にしました
図のように最後にcopytopointした所とmergeしたら
最後はnullで繋げて目印にしたら完了です。
電柱同士の幅を変えて電線の長さを変えたい時は紫色に着色されたLineSOPのLengthを変えてみて下さい 伸び縮みするだけで楽しみながらオブジェクトのバランスが決められます
また触るSOPを変えても電柱の高さや幅が変わるので それも面白いですね
以上です お疲れさまでした。
Comments