我正在嘗試爲Maya創建Mel或Python腳本,它將通過一個方形矩陣逐行移動攝像頭。能夠輸入自定義行/列值(N)會很棒。用於沿着(x,y)網格移動攝像頭的Mel/Python腳本
我速寫an algorithm我需要,但遺憾的是缺乏實現代碼的知識。
在代碼方面的任何幫助將不勝感激 - 謝謝。
我正在嘗試爲Maya創建Mel或Python腳本,它將通過一個方形矩陣逐行移動攝像頭。能夠輸入自定義行/列值(N)會很棒。用於沿着(x,y)網格移動攝像頭的Mel/Python腳本
我速寫an algorithm我需要,但遺憾的是缺乏實現代碼的知識。
在代碼方面的任何幫助將不勝感激 - 謝謝。
你要使用的主要命令是ls,xform,currentTime和setKeyFrame
下面是基本的Python腳本設置的轉換位置。您可以使用currentTime
更改時間值,並使用setKeyFrame
設置密鑰。
此腳本希望您選擇相機轉換節點(即第一個ls
命令)。
import maya.cmds as cmds
nx = 10
ny = 10
cam = cmds.ls(selection=True)[0]
z = 0
for x in range(nx):
for y in range(ny):
cmds.xform(cam, worldSpace=True, translation=[x, y, z])
雖然@BrendanAbels答案是健全的,它迴避什麼瑪雅人的用途。 Maya用於動畫,因此你很少想要在你的代碼中移動東西(這樣,因爲它沒有任何用途)。你想要的是你的代碼啓動一個節點結構來完成你想要的。
建築節點的優點如下:
好的,那麼我們該怎麼做。有幾種方法。我們可以使用斜坡和查找節點。或者我們可以直接完成並直接連接表達式節點。那麼,這看起來像梅爾:
addAttr -at long -sn N -k 1 persp;
addAttr -at long -sn Xmax -k 1 -min 1 -dv 10 persp;
addAttr -at long -sn Ymax -k 1 -min 1 -dv 10 persp;
expression -s ("translateX = N % Xmax;\r\n" +
"translateY = ((N - translateX)/Xmax) % Ymax;")
-o persp -uc all persp;
connectAttr time1.o persp.N;
// eliminate prev line if you want to drive manually
注persp節點如何有3個新的渠道,你可以調整。我把時間吸引到了你的節點上,但是你可以真正連接任何東西。自己駕駛它可以讓你做不同的事情(或者如果你願意的話,可以移動攝像頭中間渲染通道)。
你對你想用什麼來說有點不透明,所以很難說更多。只要說我們可以用更少的工作從頭到尾解決你的整個問題,而且你做任何我們以前從未見過的事情是不太可能的。
劇本的作品就像一個魅力!我在第一次嘗試時犯了一個語法錯誤,所以我認爲有些錯誤,但一切都很完美!謝謝! –
對於這個簡單的算法,[Python Tutorial](https://docs.python.org/3/tutorial/index.html)就足夠了。 – MKesper
這裏有一些問題:爲什麼你需要將它逐行移動? (有些命令可以立即移動到指定位置)翻譯的每一步都需要進行額外的處理嗎?有多少自定義的行/列值? (1代表x和1代表y,或者只有1個自定義值適用於x和y?)您的算法說最後「x = y = N」但它可以被簡化(您不需要x = N?'測試) – DrHaze
記得謝謝你只是一句話。聲譽使網站的工作。 – joojaa