スクリプトでSEのランダム再生

はあちむ
記事: 15
登録日時: 2021年2月01日(月) 19:53

スクリプトでSEのランダム再生

投稿記事by はあちむ » 2023年4月03日(月) 14:54

はじめまして。
スクリプトで、指定したSEの中からランダム再生する事は可能なのでしょうか…?
SE効果音系のプラグインではよく見かけるのですが、
別のタイミングで使用したいと考えております。
ご存じの方がいましたらご教授いただけますと嬉しいです…!

アバター
しぐれん
記事: 972
登録日時: 2017年3月28日(火) 22:22
連絡を取る:

Re: スクリプトでSEのランダム再生

投稿記事by しぐれん » 2023年4月04日(火) 20:25

変数の操作(乱数)でランダムにした上で、数値に応じた条件分岐で音を鳴らしてみましょう。
現在、プラグイン依頼はお休み中です。
はあちむ
記事: 15
登録日時: 2021年2月01日(月) 19:53

Re: スクリプトでSEのランダム再生

投稿記事by はあちむ » 2023年4月05日(水) 13:28

お返事ありがとうございます!
今その方法でやっているのですが、数がかなり多いため視覚的に大変見えづらく、編集が大変です・・。
ですので、スクリプトでできれば簡素化できるかなと思いご質問した次第でした…
名無し蛙
記事: 302
登録日時: 2015年11月23日(月) 02:46

Re: スクリプトでSEのランダム再生

投稿記事by 名無し蛙 » 2023年4月05日(水) 21:02

①複数の文字列から一つ抽選する方法

コード: 全て選択

const names = ['Blow1', 'Blow3', 'Blow5', 'Blow7', 'Blow9'];
const name = names[Math.floor(names.length * Math.random())];

②スクリプトからSEを演奏する方法

コード: 全て選択

// Absorb1をボリューム90, ピッチ100, 位相0で演奏
const se = {name:'Absorb1', volume:90, pitch: 100, pan: 0};
AudioManager.playSe(se);

この二つを組み合わせれば可能だと思います。
はあちむ
記事: 15
登録日時: 2021年2月01日(月) 19:53

Re: スクリプトでSEのランダム再生

投稿記事by はあちむ » 2023年4月13日(木) 16:53

ありがとうございます!
スクリプト初心者ですが、頂いた情報を基に色々試してみます。
sin
記事: 46
登録日時: 2016年9月29日(木) 21:49

Re: スクリプトでSEのランダム再生

投稿記事by sin » 2023年6月01日(木) 16:46

こんにちは。
名無し蛙さまの提示してくれたスクリプトコードをそのまま使ってイベントを組んでみたのですが、何度試しても「Absorb1」のSEしか鳴ってくれませんでした。
スクリプトは以下のような組み合わせでまちがいないでしょうか?
se.png
名無し蛙
記事: 302
登録日時: 2015年11月23日(月) 02:46

Re: スクリプトでSEのランダム再生

投稿記事by 名無し蛙 » 2023年6月01日(木) 23:48

2つのコードを組み合わせてください。
縦に並べる、という意味ではないです。
具体的に言えば①で抽選したSE名を②のSEパラメータに適用してください。
sin
記事: 46
登録日時: 2016年9月29日(木) 21:49

Re: スクリプトでSEのランダム再生

投稿記事by sin » 2023年6月02日(金) 00:27

ありがとうございます!
name を指定してもうまくいかなかったのでクォーターを外したらランダムに鳴るようになりました!
̷n̷a̷m̷e̷:̷'̷A̷b̷s̷o̷r̷b̷1̷'̷ > name:name

“MZ:質問” へ戻る