マウスドラッグでスキンウェイト調整「QuickVertexWeightTool」

2013/07/06

3dsmax Maxscript

t f B! P L

AREAに掲載されていた、マウスドラッグでスキンのウェイト調整をするmaxscriptに関する記事が興味深かったので、内容をまとめておきます。

まずは使う前の準備、
スクリプト全文は以下のとおりです。
macroScript QuickSkinVertexWeight category:"Custom Skin Tools"
tooltip:"Quick Vertex Weight Tool"
(
    tool AssignSkinVertexWeightTool
    (
        local original
        fn setweight wt = (
            if (wt < 0) then wt = 0
            if (wt > 1.0) then wt = 1.0
            skinOps.setWeight $.modifiers[#Skin] wt
            $.modifiers[#Skin].effect = wt
        )        
        on mousePoint clickno do (          
            if clickno > 1 then return #stop   
            original = $.modifiers[#Skin].effect
        )
        on mouseAbort clickno do (
            setweight original
        )
        on mouseMove clickno do (
            newval = (original + (gridDist.x  * 0.01))
            setweight newval
        )
    )
    startTool AssignSkinVertexWeightTool prompt:"Set Vertex Weight"
)
このスクリプトを拡張子「.mcr」で下記のフォルダに保存し、maxを再起動します。
・スクリプトの保存場所(3dsmax2012の場合)
C:\Program Files\Autodesk\3ds Max 2012\UI\MacroScripts
・スクリプトの保存場所(3dsmax2013の場合)
C:\Program Files\Autodesk\3ds Max 2013\MacroScripts

再起動後、CustomUserInterfaceからCategoryで"CustomSkinTools"を選択し、"QuickVertexWeightTool"にキーボードショートカットを割り当てます。(使用例ではShift+1にあてていました。)

これはQuickVertexWeightToolの使用とは直接関係はないのですが、
使用例では、Categoryから"SkinModifier"を選択し、loopSelectionをShift+2に、RingSelectionをShift+3に割り当て、より早いウェイト調整ができるように工夫していました。

■スクリプトの使用方法
 SkinModifierに入り、ウェイトを調整したいエンベロープと頂点を選択した状態で、"QuickVertexWeightTool"を設定したキーボードショートカットで呼び出します。するとカーソルが十字マークに変わりウェイト調整モードになります、ここでマウスを上下左右にドラッグすると選択された頂点のウェイトが調整されます(上か右でウェイトが増加し、下か左で減少)。


使用例の動画です。
参考記事:
AREA MAXScript - Mouse for Vertex Weighting during Skinning
 https://area.autodesk.com/blogs/chris/maxscript---mouse-tools-for-vertex-weight-during-skinning

ブログ内検索:Search

Translate

ラベル

Blogリンクタグ

QooQ