検索 - User list
Full Version: VEXのエラーの原因と修正方法を教えていただきたいです
Root » 日本語フォーラム » VEXのエラーの原因と修正方法を教えていただきたいです
yosuke6444
houdini初心者です。

初歩的な質問かと存じます。原因と解決方法が見つけられなかったため質問させていただきます。

https://www.youtube.com/watch?v=CY88BJIRloA&t=337s [www.youtube.com]
上記YouTubeでのアンモナイトの作例を見ながら進めていたところ
VEXにエラーがあるようで、コントローラーが動作しませんでした。
見直しも行い間違いはないはずなのですが、原因と解決方法がわからないため教えてただきたいです。


VEXの記載内容

=======================

int num = chf("../CONTROLLER/num");
float a = chf("../CONTROLLER/a");
float b = chf("..CONTROLLER/b");

int prin = addprim(0. "polyline");

for(int i=0; i<num; i++)(
float r = i;
float theata = 1.0 / b * log( r / a);

vector pos = set(r * cos(theata),0. r * sin(theata));
int pt = addpoint(0.pos);
)
=======================



恐らく下記がエラー内容かと思います。

=======================

Error
Invalid source /obj/geo1/create_spiral/attribvop1
Error: Vex error: Unable to load shader 'op:/obj/geo1/create_spiral/attribvop1'.
Warning
Vex error: Unable to load shader 'op:/obj/geo1/create_spiral/attribvop1'
Warning
Syntax error, unexpected string constant, expecting ')'. (5,24)

=======================
Ken Taki
int prin = addprim(0. "polyline");

->
int prin = addprim(0, "polyline");

0 の後はピリオド (.) ではなくカンマ (,)

for(int i=0; i<num; i++)(
    ....
)

コマンド業をくくるのは
{  }

よって正しくはこうなるはずです。

int num = chf("../CONTROLLER/num");
float a = chf("../CONTROLLER/a");
float b = chf("..CONTROLLER/b");

int prin = addprim(0, "polyline");

for(int i=0; i<num; i++){
    float r = i;
    float theata = 1.0 / b * log( r / a);
    
    vector pos = set(r * cos(theata), 0.0 , r * sin(theata));
    int pt = addpoint(0, pos);
}
yosuke6444
早速のご回答ありがとうございます!
ご指摘いただいた箇所以外にも文法が間違っておりましたので一応
正しいと思われる記載を貼っておきます。

またVEXについてもう1点質問なのですが
 
chi
や 
chf
を入力すると
それぞれ予測変換のせいなのか  
chI
や 
chF
となってしまうのですが
設定などありましたら教えて頂きたいです。




int num = chi("../CONTROLLER/num");
float a = chf("../CONTROLLER/a");
float b = chf("../CONTROLLER/b");

int prim = addprim(0, "Polyline");

for(int i =0; i < num; i++)
{

    float r = i;
    float theta = 1.0/b * log(r / a);
    
    vector pos = set(r * cos(theta),0,r*sin(theta));
    int pt = addpoint(0,pos);
}
Ken Taki
それぞれ予測変換のせいなのか 
 

お使いの OS は何でしょうか?
yosuke6444
すみません。自己解決いたしました。
MacOSを使用していたのですが、入力ソースを「英字」ではなく
「英語(ABC)」で入力することで再現しなくなりました。
ご対応ありがとうございました。
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB