GameAudio & Art
info@mysite.com
123-456-7890
500 Terry Francine Street,
San Francisco, CA 94158
![](https://static.wixstatic.com/media/fc32ca_ce420e9bb52c45e180e78eae3346c302~mv2.png/v1/fill/w_61,h_61,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/01_BRONZE.png)
Track
6
トラック/メディア検知同セットを自動複製
![](https://static.wixstatic.com/media/fc32ca_f9681906c77e41e2bb63e2fc71e38167~mv2.png/v1/fill/w_61,h_61,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/01_SILVER.png)
RANK
AZSTOKE_AllTrackMediaSetSameAutoSetter
import sys
sys.path.append(RPR_GetResourcePath() + r"/UserPlugins")
from AZSTOKE_BRONZE_python import *
from AZSTOKE_SILVER_python import *
def Msg(parm):
RPR_ShowConsoleMsg(str(parm) + "\n")
trackNameList = ["pl0000", "pl1000", "pl2000", "pl3000", "pl4000"]
trackColorList = [33554304, 33521664, 25165824, 16777471, 21004543]
retval,inputList = AZ_GetUserInputList("SourceImportPath", 1, "Path :", "D:/")
if retval:
#Get Master Select Track
masterColor = 0
masterTrack = AZ_GetTrackItemSelect(0,0,1)
_, _, masterName, _ = AZ_GetTrackItemName(masterTrack, "", 1024)
_, _, masterDepth = AZ_GetTrackItemDepth(masterTrack, 0)
for i, trackName in enumerate(trackNameList):
if masterName == trackName:
AZ_SetTrackItemColor(masterTrack, trackColorList[i])
masterColor = trackColorList[i]
#Get FileList
fileAllList = []
_, fileList = AZ_GetFilePathList(inputList[0], "Wav")
for filePth in fileList:
_, splitList = AZ_GetStringSplitList(filePth,"\\")
fileInfo = {}
fileInfo["Path"] = filePth
_, _, _, _, fileInfo["SourceName"], _ = AZ_ReplaceSearchString(splitList[-1], ".wav", "", "", 1024)
fileAllList.append(fileInfo)
#Get Master Track Children
_, childList, masterChildCount = AZ_GetTrackItemChildList(masterTrack)
childInfoList = []
for child in childList:
childInfo = {}
_, _, childInfo["TrackName"], _ = AZ_GetTrackItemName(child, "", 1024)
AZ_SetTrackItemColor(child, masterColor)
_, _, _, childInfo["TrackMediaCount"], _ = AZ_GetTrackItemMediaTypeCount(child, "", 0, 0)
_, _, childTrack = AZ_GetTrackItemIndex(child, 0)
for i in range(childInfo["TrackMediaCount"]):
childInfo[i] = {}
_, _, _, _, childInfo[i]["MediaName"], _ = AZ_GetTrackMediaName(0, childTrack, i, "", 1024)
_, _, _, _, childInfo[i]["MediaPos"] = AZ_GetTrackMediaStartTimeSeconds(0, childTrack, i, 0)
childInfoList.append(childInfo)
#delet trackNameList & trackBaseList create
_, _, _, trCount = AZ_GetTrackCountSelect(0, 0, 0)
deletIDList = []
for i in range(trCount):
_, _, _, name, _ = AZ_GetTrackIdName(0, i, "", 1024)
for j, trackName in enumerate(trackNameList):
if name == trackName:
deletIDList.append(j)
for id in reversed(deletIDList):
del trackNameList[id]
del trackColorList[id]
#InsertTrack
for i, trackName in enumerate(trackNameList):
_, _, _, count = AZ_GetTrackCountSelect(0, 0, 0)
track = AZ_InsertTrackId(0, count)
AZ_SetTrackItemName(track, trackName)
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])
for x in range(childInfoList[e]["TrackMediaCount"]):
retval, _, _, _, newMediaName, _ = AZ_ReplaceSearchString(childInfoList[e][x]["MediaName"], masterName.lower(), trackName.lower(), "", 1024)
for z in range(len(fileAllList)):
if newMediaName == fileAllList[z]["SourceName"]:
AZ_InsertMediaTrackItemSecond(childTrack, fileAllList[z]["Path"], 0, childInfoList[e][x]["MediaPos"])
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"]
trackColorList = [33554304, 33521664, 25165824, 16777471, 21004543]
・ベース名と色を配列に設定
retval,inputList = AZ_GetUserInputList("SourceImportPath", 1, "Path :", "D:/")
・テキスト入力を設定(フォルダ階層をユーザーに指定させる)
if retval:
・テキスト入力が有効の場合以下を実行
#Get Master Select Track
masterColor = 0
masterTrack = AZ_GetTrackItemSelect(0,0,1)
_, _, masterName, _ = AZ_GetTrackItemName(masterTrack, "", 1024)
_, _, masterDepth = AZ_GetTrackItemDepth(masterTrack, 0)
・選択しているマスタートラック/名前/階層を取得して各変数に代入
for i, trackName in enumerate(trackNameList):
if masterName == trackName:
AZ_SetTrackItemColor(masterTrack, trackColorList[i])
masterColor = trackColorList[i]
・マスタートラックの一致する配列の中身を確認して色を探して変数に代入
#Get FileList
fileAllList = []
_, fileList = AZ_GetFilePathList(inputList[0], "Wav")
・指定されたフォルダパスに含まれているwavを配列出力してfileListに代入
for filePth in fileList:
_, splitList = AZ_GetStringSplitList(filePth,"\\")
fileInfo = {}
fileInfo["Path"] = filePth
_, _, _, _, fileInfo["SourceName"], _ = AZ_ReplaceSearchString(splitList[-1], ".wav", "", "", 1024)
fileAllList.append(fileInfo)
・filePathからsource名を出力してfillAllList配列に代入
#Get Master Track Children
_, childList, masterChildCount = AZ_GetTrackItemChildList(masterTrack)
・マスタートラックの子トラックを出力してchildListに代入と子トラックの数をmasterChildCountに代入
for child in childList:
childInfo = {}
_, _, childInfo["TrackName"], _ = AZ_GetTrackItemName(child, "", 1024)
・各子トラックの名前をchildInfoListに代入
AZ_SetTrackItemColor(child, masterColor)
・マスターの子トラックにはマスターと同じ色を設定
_, _, _, childInfo["TrackMediaCount"], _ = AZ_GetTrackItemMediaTypeCount(child, "", 0, 0)
・各子トラックに入っているメディア数を取得
_, _, childTrack = AZ_GetTrackItemIndex(child, 0)
・各子トラックアイテムからidを取得してchildIdに代入
for i in range(childInfo["TrackMediaCount"]):
・各子トラックのメディア数でループ再生
childInfo[i] = {}
_, _, _, _, childInfo[i]["MediaName"], _ = AZ_GetTrackMediaName(0, childTrack, i, "", 1024)
_, _, _, _, childInfo[i]["MediaPos"] = AZ_GetTrackMediaStartTimeSeconds(0, childTrack, i, 0)
childInfoList.append(childInfo)
・メディアの名前と位置を取得して各変数に代入
end
end
#delet trackNameList & trackBaseList create
_, _, _, trCount = AZ_GetTrackCountSelect(0, 0, 0)
deletIDList = []
for i in range(trCount):
_, _, _, name, _ = AZ_GetTrackIdName(0, i, "", 1024)
・全トラックの名前を取得してnameに代入
for j, trackName in enumerate(trackNameList):
・ベース名の配列分ループ再生
if name == trackName:
・全トラック名とベース名が一致した場合以下を実行
deletIDList.append(j)
・ベース名と一致したのであればベースから削除対象
※すでに作られたものと認識する
for id in reversed(deletIDList):
del trackNameList[id]
del trackColorList[id]
・ベース配列から削除を行う
#InsertTrack
for i, trackName in enumerate(trackNameList):
・ベース名分ループ再生
_, _, _, count = AZ_GetTrackCountSelect(0, 0, 0)
・全トラックの数を取得してcountに代入
track = AZ_InsertTrackId(0, count)
・トラックの最後にトラックをインサート
AZ_SetTrackItemName(track, trackName)
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])
・子トラックに名前と色を設定
for x in range(childInfoList[e]["TrackMediaCount"]):
・子トラックにメディアの数分forループ
retval, _, _, _, newMediaName, _ = AZ_ReplaceSearchString(childInfoList[e][x]["MediaName"], masterName.lower(), trackName.lower(), "", 1024)
・メディア名に対してベース名を入れ替えてnewMediaNameに代入
for z in range(len(fileAllList)):
・全ファイル分ループ再生
if newMediaName == fileAllList[z]["SourceName"]:
・sourceNameにnewMediaNameが一致したら以下を実行
AZ_InsertMediaTrackItemSecond(childTrack, fileAllList[z]["Path"], 0, childInfoList[e][x]["MediaPos"])
・一致したメディアを指定トラックと指定秒数に並べる
ベースのトラック/子トラックを作成しておく
使用しているベースのpl0000のメディアとベース名以外を一致した状態ですべて用意しておく