我试图在Maya中的特定属性上设置以下表达式有什么问题。所有这些只是不同的方法。
表达式1:
directionalLightShape1.intensity = sqrt(noise(time));
错误:
expression -s "directionalLightShape1.intensity = sqrt(noise(time));" -o directionalLightShape1 -ae 1 -uc all ;
// Error: line 0: Invalid argument(s) for sqrt. //
// Error: line 0: An execution error occured in the expression expression1. //
// Result: expression1 //
// Error: line 0: Invalid argument(s) for sqrt. //
// Error: An execution error occured in the expression expression1. //
表达式2:
float $n = noise(time);
directionalLightShape1.intensity = sqrt($n);
错误:
expression -e -s "float $n = noise(time);\ndirectionalLightShape1.intensity = sqrt($n);" -o directionalLightShape1 -ae 1 -uc all expression1;
// Error: line 1: Invalid argument(s) for sqrt. //
// Error: line 0: An execution error occured in the expression expression1. //
// Result: expression1 //
// Error: line 1: Invalid argument(s) for sqrt. //
// Error: An execution error occured in the expression expression1. //
表达式3:
float $n = sqrt(`noise time`);
directionalLightShape1.intensity = $n;
错误:
expression -e -s "float $n = sqrt(`noise time`);\ndirectionalLightShape1.intensity = $n;" -o directionalLightShape1 -ae 1 -uc all expression1;
// Error: line 0: Invalid call to "noise". Check number and types of arguments expected by the procedure. //
// Error: line 0: An execution error occured in the expression expression1. //
// Result: expression1 //
// Error: line 0: Invalid call to "noise". Check number and types of arguments expected by the procedure. //
// Error: An execution error occured in the expression expression1. //
表达式4:
float $n = noise(time);
directionalLightShape1.intensity = `sqrt $n`;
错误:
expression -e -s "float $n = noise(time);\ndirectionalLightShape1.intensity = `sqrt $n`;" -o directionalLightShape1 -ae 1 -uc all expression1;
// Error: line 1: Invalid argument(s) for sqrt. //
// Error: line 0: An execution error occured in the expression expression1. //
// Result: expression1 //
// Error: line 1: Invalid argument(s) for sqrt. //
// Error: An execution error occured in the expression expression1. //
答案 0 :(得分:1)
如果您看到使用(noise(time) + 1)/2
的工件,则可能需要使用abs
。
根据应用程序,范围的截断可能是一个问题。
答案 1 :(得分:0)
所有陈述的表达式的问题是noise
返回负值。当馈送到sqrt
时,自然应该抛出一个最初不太明显的错误。
用noise(time)
替换abs(noise(time))
解决了这个问题。