vexの質問

   4349   6   0
User Avatar
Member
16 posts
Joined: Dec. 2018
Offline
早速失礼させていただきます。
houdini初心者で、ただ今勉強中のものです。

vexの勉強をしていますが、わからない点がありご教授願いたいです。
以下①、②とも自分で作成しましたが、①は思った通り動作しましたが
同じ動作を想定した②が動作しませんでした。
違いを教えていただきたく、お願いいたします。

前提:circleSOP、resampleSOPで円型にポイントを配置済み
想定:ポイントが番号を経るにつれ徐々に+y方向へ移動(heightのパラメータには一律0.05を記載)
①for(int i=0;i<npoints(0);i++){
vector pt = point(0,“P”,i);
vector offset = set(0,ch(“height”)*i,0);
vector pos = pt + offset;
setpointattrib(0,“P”,i,pos,“set”);
}

②for(int i=0;i<npoints(0);i++){
setpointattrib(0,“P.y”,i,ch(“height”)*i,“set”);
}

基本的なことで申し訳ございませんが、お願いいたします。
User Avatar
Member
92 posts
Joined: Oct. 2018
Online
僕も初学者ですが、一緒に勉強させてください。

setpointattribの第2引数で指定するattribute nameは、“P”は有効だけれど“P.y”は無効、と、僕はとりあえず覚えて使っています。VEXの現在の仕様、あるいは制限、と理解しようとしています。

同じ機能を実現するのに「@P.y += ch(“height”) * @ptnum;」と書くと、SIMDで実行されるので、より効率が良い、と覚えて使っています。「@ptnum」は「(float)@ptnum」が正解だけれど「(float)」を省略しても暗黙のキャストが行われるようで、ワーニングも立たずに処理(クック)してくれます。

先達のご指導をいただければと思います。
User Avatar
Member
16 posts
Joined: Dec. 2018
Offline
お返事ありがとうございます。
houdiniの仕様であれば疑問に思っても仕方ないですね・・・

解法からアドバイスまで、ありがとうございます。
これから質問することも多々あるかと思いますが、
その際も是非よろしくお願いいたします。
User Avatar
Staff
335 posts
Joined: April 2015
Offline
popoi
お返事ありがとうございます。
houdiniの仕様であれば疑問に思っても仕方ないですね・・・

解法からアドバイスまで、ありがとうございます。
これから質問することも多々あるかと思いますが、
その際も是非よろしくお願いいたします。

問題解決への早道はシーンファイルを添付することです。
User Avatar
Member
16 posts
Joined: Dec. 2018
Offline
Image Not Found


引き続き基本的なvexについての質問をさせてください。

現在以下の動画を見ながらvexの練習を行っております。
https://vimeo.com/304116804 [vimeo.com]
「copy & stamp」を使用している部分を
「pointwrangle」で代用できないかと試行錯誤中です。

シーンファイルを添付させていただいておりますが、
「copy to points」で作成した縦型のBOXをランダムな度数だけ
回転させたいと思っております。
まず分かりやすく45度回転させるために、以下の通りvexを記入しました。
@up = set(0,1,0);
vector4 quat = quaternion(radians(45),@up);
qrotate(quat,@P);

全く回転の兆しが見えず・・・
まずquaternionの概念から再勉強の必要があるかとも思っておりますが、
このシーンではどのようにすれば回転が上手くいくでしょうか。

何卒よろしくお願い致します。

Attachments:
6.hipnc (124.7 KB)

User Avatar
Member
92 posts
Joined: Oct. 2018
Online
copytopointの直前にattribwrangleノードをつないで、次のように書いてみてください。

vector up = set( 0.0 , 1.0 , 0.0 );
vector4 quat = quaternion( radians( 45.0 ) , up );
@orient = quat;

詳しくは下記に書いてあります。

http://www.sidefx.com/ja/docs/houdini/copy/instanceattrs.html [www.sidefx.com]


popoiさんの投稿で、radiansという便利な関数があることを知りました。

勉強させていただきました。ありがとうございます。

ぽん太
User Avatar
Member
16 posts
Joined: Dec. 2018
Offline
ぽん太さん、ありがとうございます。
ポイントへのコピーの際に効果を発揮するアトリビュートがあったとは驚きでした。

私の質問で学べることが少しでもあったのであれば嬉しいです。
また質問する際は、ぜひご助力お願いいたします。
  • Quick Links