GameAudio & Art
![](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)
Media
2
全てのメディアを昇順に並べ替える
![](https://static.wixstatic.com/media/a9283e_6aa743f5c6e840c988bd974971113bab~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_trans.png)
RANK
AZSTOKE_AllMediaNameAscendingOrderSetter
import sys
sys.path.append(RPR_GetResourcePath() + r"\UserPlugins")
from AZSTOKE_BRONZE_python import *
def Msg(parm):
RPR_ShowConsoleMsg(str(parm) + "\n")
_,_,_,allCount,_ = AZ_GetMediaTypeCount(0,"",0,0)
mediaList = []
sortList = [None]*allCount
mediaInterval = 0.5
setMediaTime = 0
for i in range(allCount):
mediaList.insert(i, {})
retval,_,_,mediaList[i]["name"],_= AZ_GetMediaName(0,i,"",1024)
sortList[i] = mediaList[i]["name"]
mediaList[i]["media"]=AZ_GetMediaItemSelect(0,i,0)
retval,_,_,mediaList[i]["length"]= AZ_GetMediaLength(0,i,0)
mediaList= sorted(mediaList, key=lambda sortList:sortList["name"])
for index, value in enumerate(mediaList,0):
if index == 0:
AZ_SetMediaItemStartTimeSeconds(mediaList[index]["media"],setMediaTime)
else:
setMediaTime = setMediaTime + mediaList[index-1]["length"]+mediaInterval
AZ_SetMediaItemStartTimeSeconds(mediaList[index]["media"],setMediaTime)
import sys
sys.path.append(RPR_GetResourcePath() + r"\UserPlugins")
from AZSTOKE_BRONZE_python import *
BronzeのAPIのインポートを行います。
インストールできていない方はこちらでダウンロードが必要
def Msg(parm):
RPR_ShowConsoleMsg(str(parm) + "\n")
信号確認するためにMsg関数を設置(必須ではありません)
_,_,_,allCount,_ = AZ_GetMediaTypeCount(0,"",0,0)
全てのメディアの数(allCount)を取得します。
mediaList = []
配列(medialist)を定義する
sortList = [None]*allCount
*1
sortList配列にカウント分(allCount)の枠を用意
mediaInterval = 0.5
メディアの間隔値を変数として準備
setMediaTime = 0
メディアの開始位置を変数として準備
for i in range(allCount):
*2
変数(allCount)分、ループさせる
mediaList.insert(i, {})
リスト(mediaList)の指定した場所に要素を追加する
i:挿入したい位置
{}:追加したい要素
retval,_,_,mediaList[i]["name"],_= AZ_GetMediaName(0,i,"",1024)
メディアの名前を取得し、mediaList[i]の["name"]に保存
sortList[i] = mediaList[i]["name"]
変数(sortList)に保存した["name"]を追加
mediaList[i]["media"]=AZ_GetMediaItemSelect(0,i,0)
MeidaItemを取得し、mediaList[i]の["media"]に保存
retval,_,_,mediaList[i]["length"]= AZ_GetMediaLength(0,i,0)
メディアの長さを取得し、mediaList[i]の["length"]に保存
mediaList= sorted(mediaList, key=lambda sortList:sortList["name"])
*3
mediaListのkeyのnameでソートを行ってmediaListに登録
key=lambda:名前の無い関数を作るもの
for index, value in enumerate(mediaList,0):
mediaList
enumerate()関数:格納されている値と順番を同時に取得できる
if index == 0:
*4
indexが0なら
==:等しい
AZ_SetMediaItemStartTimeSeconds(mediaList[index]["media"],setMediaTime)
配列(mediaList[index])のメディアを変数(setMediaTime)にセットする
開始位置は0になる
else:
if文 変数(index)の中身を確認
1つ目以外の場合、下に続く
setMediaTime = setMediaTime + mediaList[index-1]["length"]+mediaInterval
2つ目以降の開始地点を出力
メディアの開始位置の変数(setMediaTime)+メディアの長さ+メディアの間隔値(1秒)
AZ_SetMediaItemStartTimeSeconds(mediaList[index]["media"],setMediaTime)
配列mediaList[index]のメディアをsetMediaTime(2つ目以降の位置)にセットする
配列(mediaList)分、繰り返す
プロジェクトに配置された全てのメディアを昇順に並べ替えられている
=参考文献===
プロジェクト内にメディアを複数設置