1

それは私のスクリプトです:

import maya.cmds as cmds

def changeLightIntensity(percentage=1.0):
    """
    Changes the intensity of each light the scene by percentage.

    Parameters:
        percentage - Percentage to change each light's intensity. Default value is 1.

    Returns:
        Nothing.
    """
    #The is command is the list command. It is used to list various nodes
    #in the  current scene. You can also use it to list selected nodes.
    lightInScene = cmds.ls(type='light')

    #If there are no lights in the scene, there is no point running this script
    if not lightInScene:
        raise RunTimeError, 'There are no lights in the scene!'

    #Loop through each light
    for light in lightInScene:
        #The getAttr command is used to get attribute values of a node
        currentIntensity = cmds.getAttr('%s.intensity' % light)
        #Calculate a new intensity
        newIntensity = currentIntensity * percentage
        #Change the lights intensity to the new intensity
        cmds.setAttr('%s.intensity' % light, newIntensity)
        #Report to the user what we just did
        print 'Changed the intensity of light %s from %.3f to %.3f' % (light, currentIntensity, newIntensity)


import samples.lightIntensity as lightIntensity
lightIntensity.changelightIntensity(1.2)

私のエラー:

ImportError: samples.lightIntensity という名前のモジュールがありません

どうしたの?私はこれを行うことができますか?解決策は何ですか?

ありがとう!

4

1 に答える 1

0

このチュートリアルに従っているようです。あなたが誤解しているのは、コード サンプルの最後の 2 行はスクリプトの一部ではなく、インタプリタで前のコードを実行するためのものだということです。チュートリアルをもう一度見てみると、メイン コード サンプルの上にlightIntensity.pyというヘッダーがあり、2 番目の小さいコード サンプルの前に「To run this script, in the script editor type.. ."

したがって、この:

import samples.lightIntensity as lightIntensity
lightIntensity.changelightIntensity(1.2)

その形式でファイルに入れるべきではありません。

できることは 2 つあります。どちらも問題を解決し、コードを実行できるようにする必要がありますが、使いやすさから2番目の方が好みです。

  1. 最後の 2 行を除いたコードを として保存lightIntensity.pyし、Python シェルで (コマンド ラインで python を起動し、IDLE など、使用しているものは何でも)、プロンプトの後に入力import lightIntensityしてスクリプトをインポートlightIntensity.changelightIntensity(1.2)し、関数を呼び出します。スクリプトで。

  2. または、スクリプト自体をインポートせずに実行されるようにスクリプトを修正することもできます。これを行うには、行を削除しimport、最後の行を次のように変更します。changelightIntensity(1.2)

于 2012-06-27T01:56:31.510 に答える