top of page

Track

5

トラックのセットを同セット自動複数作成

RANK

AZSTOKE_TrackSetSameAutoSetter

import sys

sys.path.append(RPR_GetResourcePath() + r"/UserPlugins")

from AZSTOKE_SILVER_python import *


def Msg(parm):

    RPR_ShowConsoleMsg(str(parm) + "\n")

    

trackNameList = ["pl0000","pl1000","pl2000","pl3000","pl4000","pl5000"]

trackColorList = [33554304,33521664,25165824,16777471,21004543,20988032]


masterTrack = AZ_GetTrackItemSelect(0,0,1)

_,_,masterName,_ = AZ_GetTrackItemName(masterTrack,0,1024)

_,_,masterDepth = AZ_GetTrackItemDepth(masterTrack,0)

masterColor = 0


for i, value in enumerate(trackNameList, 0):

    if masterName == trackNameList[i]:

        AZ_SetTrackItemColor(masterTrack,trackColorList[i])

        masterColor = trackColorList[i]

        

_,childList,masterChildCount = AZ_GetTrackItemChildList(masterTrack)

childInfoList = []


for i, value in enumerate(childList, 0):

    childInfoList.insert(i,{})

    _,_,childInfoList[i]["TrackName"],_ = AZ_GetTrackItemName(value,"",1024)

    AZ_SetTrackItemColor(value,masterColor)

    

_,_,_,trCount = AZ_GetTrackCountSelect(0,0,0)

deletIDList = []

idCount = 0


for i in range(trCount):

    _,_,_,name,_ = AZ_GetTrackIdName(0,i,"",1024)

    for e, value in enumerate(trackNameList, 0):

        if name == value:

            idCount = idCount + 1

            deletIDList.append(e)

            

            

deletIDList = sorted(deletIDList,reverse = True)


for i in range(idCount):

    trackNameList.pop(deletIDList[i])

    trackColorList.pop(deletIDList[i])

    


for i, value in enumerate(trackNameList, 0):

    _,_,_,count = AZ_GetTrackCountSelect(0,0,0)

    track = AZ_InsertTrackId(0,count)

    AZ_SetTrackItemName(track,value)

    AZ_SetTrackItemDepth(track,masterDepth)

    AZ_SetTrackItemColor(track,trackColorList[i])

    

    for e in range(masterChildCount):

        childTrack,_ = AZ_InsertChildTrack(track,0)

        AZ_SetTrackItemName(childTrack,childInfoList[e]["TrackName"])

        AZ_SetTrackItemColor(childTrack,trackColorList[i])

import sys

sys.path.append(RPR_GetResourcePath() + r"/UserPlugins")

from AZSTOKE_SILVER_python import *


・SilverAPI利用可能にする


def Msg(parm):

    RPR_ShowConsoleMsg(str(parm) + "\n")


・デバック用のコンソール出力関数

    

trackNameList = ["pl0000","pl1000","pl2000","pl3000","pl4000","pl5000"]

trackColorList = [33554304,33521664,25165824,16777471,21004543,20988032]


・指定の名前と色を設定


masterTrack = AZ_GetTrackItemSelect(0,0,1)


・選択トラックの先頭を取得してmasterTrackに代入


_,_,masterName,_ = AZ_GetTrackItemName(masterTrack,0,1024)


・masterTrackの名前を取得してmasterNameに代入


_,_,masterDepth = AZ_GetTrackItemDepth(masterTrack,0)


・masterTrackの階層を取得してmasterDepthに代入


masterColor = 0


・masterColorの初期値を設定


for i, value in enumerate(trackNameList, 0):


・trackNameList分Forループ


    if masterName == trackNameList[i]:


・masterNameと各trackNameListが一致したら以下を実行


        AZ_SetTrackItemColor(masterTrack,trackColorList[i])


・masterTrackに色を設定


        masterColor = trackColorList[i]


・設定した色をmasterColorに代入

        

_,childList,masterChildCount = AZ_GetTrackItemChildList(masterTrack)


・masterTrackの子トラックリストと数を取得してchildListとmasterChildCountに代入


childInfoList = []


・childInfoListの配列初期化


for i, value in enumerate(childList, 0):


・childList分Forループ


    childInfoList.insert(i,{})


・childInfoListに枠を追加


    _,_,childInfoList[i]["TrackName"],_ = AZ_GetTrackItemName(value,"",1024)


・childInfoListにTrackNameのキーに名前を代入


    AZ_SetTrackItemColor(value,masterColor)


・子トラックにmasterColorの色設定

    

_,_,_,trCount = AZ_GetTrackCountSelect(0,0,0)


・現在のトラックの数を取得


deletIDList = []


・deletIDListの初期化


idCount = 0


・idCountの初期化


for i in range(trCount):


・trCount分Forループ


    _,_,_,name,_ = AZ_GetTrackIdName(0,i,"",1024)


・各トラックの名前を取得してnameに代入


    for e, value in enumerate(trackNameList, 0):


・trackNameList分Forループ


        if name == value:


・nameにtrackNameListを確認して一致すれば以下を実行


            idCount = idCount + 1


・一致したらidCountを+1


            deletIDList.append(e)


・deletIDListにindexを追加

            

            

deletIDList = sorted(deletIDList,reverse = True)


・deletIDListを降順に設定


for i in range(idCount):


・idCount分Forループ


    trackNameList.pop(deletIDList[i])

    trackColorList.pop(deletIDList[i])


・deletIDListのindexに沿って後ろから削除

    


for i, value in enumerate(trackNameList, 0):


・trackNameList分Forループ


    _,_,_,count = AZ_GetTrackCountSelect(0,0,0)


・トラックの数を取得してcountに代入


    track = AZ_InsertTrackId(0,count)


・トラックの数にすることでトラックの最後にトラックをインサートする


    AZ_SetTrackItemName(track,value)


・トラックに名前を設定


    AZ_SetTrackItemDepth(track,masterDepth)


・トラックの階層を設定


    AZ_SetTrackItemColor(track,trackColorList[i])


・トラックに色を設定

    

    for e in range(masterChildCount):


・子トラックの数分Forループ


        childTrack,_ = AZ_InsertChildTrack(track,0)


・子トラックを追加


        AZ_SetTrackItemName(childTrack,childInfoList[e]["TrackName"])


・子トラックに名前を設定


        AZ_SetTrackItemColor(childTrack,trackColorList[i])


・子トラックに色を設定

APIの利用にはBRONZEに

加入し専用APIを

ダウンロード

する必要があります。

ベースのトラック/子トラックを作成しておく

- Script Code -
- Script Image -
- Warm Up -
- Script Detail -
- API LINK -

PYTHON

​ReaScript File Download 👇

​※実行するには専用APIが必要です

- Script Download -
bottom of page