【NOW】ダークモードに改装中です!

【C4D】レンダリングが終わると音が鳴るスクリプトを書く

【C4D】レンダリングが終わると音が鳴るスクリプトを書く

こんばんは、織田檸檬です。

C4Dを使っていると「レンダリングが終わったら、Aeみたいにピロリン!みたいな音が鳴ってほしいな」っていう時があります。

僕が調べた限り、ソフト側でどうこうできる感じではなさそうだったので、やむをえずスクリプトを書くことにしました。

 

コードはフォーラムを参考に

同じような悩みを持つ同志はきっといるだろうと思って探していたところ、レンダリングが終わったらダイアログを表示するスクリプトを書いている方がいらっしゃいました。

そのコードは、こちらのフォーラムに投稿されています。monkeytack氏が書いています。

http://www.plugincafe.com/forum/forum_posts.asp?TID=10796

このページのまんなかあたりですね。

なんとなくですが、レンダリングが終わったら、print で render complete のダイアログを出しているようなので、その前に、なにかしら音を鳴らすような文を加えれば、いけそうだなと思いました。

実際に書き換えてスクリプトを実行してみた

改造してみたコードがこちらです。

import c4d
import os,time, thread
from c4d import gui
import winsound
def isRendering(time,os):
    print(time.ctime())
    while c4d.CheckIsRunning ( c4d.CHECKISRUNNING_EXTERNALRENDERING ):
        print("render in progress...")
        time.sleep(1)
    print(time.ctime())
    winsound.PlaySound('C:\Users\LEMON-PC\Music\_c4d_notify\panpaka.wav', winsound.SND_FILENAME)
    gui.MessageDialog("render complete.")
def main():
    c4d.CallCommand(12099)
    if c4d.CheckIsRunning ( c4d.CHECKISRUNNING_EXTERNALRENDERING ):
        thread.start_new(isRendering,(time,os))
if __name__=='__main__':
    main()

もとのコードは time.sleep (4) でしたが、おそらくこれは待ち時間だと思うので、 (1) に変えました。あとは、指定した場所にあるwavを鳴らすようにコードを書き足しています。そのほかサウンドを鳴らす用のライブラリ?みたいなのを読み込むコードも最初の方に追加しています。

LEMON-PCっていうのはパソコンの名前です。Musicっていうのは、ミュージックフォルダのことで、その中にごちゃまぜにならないよう、_c4d_notifyというフォルダを作り、その中にSEとなるwavデータを置いています。

使ってみたい方は、パソコンの名前やフォルダ構成等を変えて、上記のコードをコピペしてどうぞ。

コピペ場所わかりますでしょうか。

機能拡張の中にある、スクリプトマネージャーを開いて、新規スクリプトを作り、そこにコピペします。

実行してうまくいったら、ショートカットを作ると便利です。その際、アイコンを自分で作ってみてもいいと思います。アイキャッチの画像は、僕が作ったアイコンをショートカットに登録している画面をキャプチャーしたものです。

ご注意

最大の問題点として、音が鳴り終わるまでダイアログが出ない、というのがあります。

なので、あんまり長すぎる音を使うと後悔します。普通の楽曲を指定するのはやめましょう。

終わりに

不完全さが否めないので、スクリプト制作に自信がある方は、どなたか改良してくだされ。

このスクリプトが誰かの役に立てば幸いです。

以上です。

コメントがあればこちらにどうぞ

*
*
* (公開されません)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください