け っ と ・ え あ し い
トンダゴッサ、アミーゴ! フリゲ作ったり、ドット打ったり、何処までゆけるかアナバシス。
そんな呼吸で運営されてるこのサイト、ご縁があったら通りゃんせ。

もくじは、「↓」から、つぶやきは、「ついったー」で、くりごとは、「はてな」で、ぶちまけております。



Game Menu 

 Flash (新しいウィンドウでゲームが開始します) 


- ツイートベーダー -


「 いちまるまる 」のドクさんとの共同制作作品。
Twitter上でやり取りを公開しながら、一日でゲームを作ろうという企画でございました!
ハッシュタグは「#twige」 wikiもこちらにございやすと。
ドクさんが絵・BGM・効果音、私がプログラムをそれぞれ担当しております。
リアルタイムにオープンに、コミュニケーションを交えた製作模様は、多くの感情が行き交い、
辿り着いた先の喜び、そして明日に繋がる反省点と、実りある密な時間となりました。
というわけで最後に、ドクさんありがとー!


- yabusame -


- San-Hiki Boom! -


- えなじー! -
(第六回むりげー作品)



- 一筆斬鉄剣 -
(第五回むりげー作品)



























↑ComeBack Menu!

 Ruby (ダウンロード後、解凍して.exeファイルを実行して下さい) 


- 唐傘恩恨譚 -


DXRubyで製作中の2Dアクションゲーム。体験版未満の仕様ですが、
一ステージは一応通してプレイする事が出来ますので、よろしければお試しアレ。


- FlooringDays -


- kawarawari -




















↑ComeBack Menu!

Program Menu 

>> DirectX on Ruby ライクな「DXRuby」で遊んだり学んだり
\ 復習:落書き編
\ 復習:文字・音編

↓ 本日の授業を開く ↓

お久しぶりな更新となりますが、変わらぬ徒然に、サウンド機能のセッティングに参ります。
まずはすぐに試せるように、前回のコードを参照して、
- bgm = Sound.new("filename.mid") - , - effect = Sound.new("filename.wav") - の、
二つのインスタンスを用意しておくと、即座に実行出来て便利かと思います。

最初は前回登場した、- play - コマンド。これはそのまま音を鳴らす機能となり、
同時に複数の音を鳴らす事も可能です。なお、後述する - loopCount - コマンドで、
任意に設定しない限り、拡張子が「.mid」の場合に無限ループ、つまり、
何度でも繰り返し演奏され、「.wav」の場合は一度限りで終了するようになっています。
そして、- play - と対になるのが、- stop - コマンド。これもそのまま、演奏の終了機能です。

次に - start - コマンド。playと意味を混同しそうになるかもしれませんが、
こちらは音の演奏開始位置を設定するためのものです。これによって、
曲の途中から、例えば、サビの部分から演奏させたりする事が出来る様になります。

それから - loopStart - コマンド。これはループさせる場合の、開始位置となり、
逆に - loopEnd - コマンドは終了位置となります。そして、先ほど登場した、
- loopCount - コマンドによって、ループさせる回数を指定する事が出来ます。

最後になりますが、- setVolume(volume, time) - コマンド。これも意味する通り、音のボリュームを設定します。
volumeに任意の数値を当て嵌めてやる事で調整する事ができ、
ボリュームの範囲は「0〜255」、0が最小で、255が最大となります。
何も指定しない状態、ボリュームは「230」に設定されていると覚えておくと良いでしょう。

もう一つ、timeに関しては、ここに任意の数値を設定してやる事によって、
ボリュームの調整を即座に反映するのではなく、例えば「3000」としてやると、
3秒後に変更したボリュームに変更されるようになります。
なお、「3000」としたのは、「ミリ秒単位」で指定する必要があるからです(1000ミリ秒 = 1秒)
もっとも、必ずしも指定する必要はなく、ここに何も入れない場合、0秒と解釈されますのでご安心を。

さあ、締め括りの、おさらい実践です。


# encoding : SJIS

require 'dxruby'

effect = Sound.new("効果音.wav")
bgm = Sound.new("BGM.mid")
# ボリューム値を変数に格納する
volume = 150
# BGM,効果音にボリュームを指定
bgm.setVolume(volume)
effect.setVolume(volume)
# 演奏中かどうかの判定のための変数を用意しておく。これは
# effect_playing = false
# bgm_playing = false 
# と、二行使って書くのと同じ意味であり。一括して行う事が出来ます。
effect_playing = bgm_playing = false
# 効果音の再生回数を指定
effect.loopCount = 3
# BGMのスタート位置を指定
bgm.start=768*5
# BGMの2回目以降の開始位置を指定
bgm.loopStart=768*5
# BGMの2回目以降の終了位置を指定
bgm.loopEnd=768*15

Window.loop {
  # 左クリックで効果音操作、右クリックでBGM操作を行うように分岐。
  if Input.mousePush?(M_LBUTTON)
  	# 効果音が演奏中であれば演奏中止に、
  	# 演奏中止であれば演奏中に判定を変更する。
  	# こういった、判定の頭に「!」を付けると、
  	# 現在の格納されている判定と反対の結果が返って来ます。
  	# スイッチのオンオフをイメージすると分かり易いかもしれません。
    effect_playing = !effect_playing
    # 演奏判定の結果、演奏するのであれば、playを、
    # 演奏を止めるのであれば、stopを、それぞれコマンドを送る。
    effect_playing ? effect.play : effect.stop
  elsif Input.mousePush?(M_RBUTTON)
  	# こちらも上記の効果音と同じ処理を交換に行わせています。
    bgm_playing = !bgm_playing
    bgm_playing ? bgm.play : bgm.stop
  end

  # マウスのホイールを上方向に回すとボリュームが上がり、
  # 下方向に回すとボリュームが下がるように分岐。
  if Input.mouseWheelPos > 0
    volume += 1
    # ここで一度0に戻す事で、以後も0を基準に判定する事が出来ます。
    Input.mouseWheelPos=0
  elsif Input.mouseWheelPos < 0
    volume -= 1
    Input.mouseWheelPos=0
  end
  # BGMと効果音それぞれに、上の分岐の結果を反映した、
  # ボリュームを再びセットします。
  bgm.setVolume(volume)
  effect.setVolume(volume)

}
今回からは、 ソースコード中に「コメント」を埋め込んで解説するようにしています。
「コメント」とは、変数の意味で、行われている処理の内容など、注釈を書き込んでおける
機能であり、上記のように、行の先頭に「#」を付ける事で「コメント」扱いとなります。
「コメント」はコードの実行中は無視、つまり無いものと扱われるので、ご安心下さい。

これでサウンドを自由に扱うことが出来る様になりました。
後は実際に鳴らしてみながら、どんな音楽がどんな光景とマッチするのか、
貴方なりの答えを、表現を、探してみてください。

↑授業の冒頭へ戻る

↑ComeBack Menu!

Dot Menu 

一応、利用に関して、非営利の場合に限り原則として自由にお使い下さい。
報告も必要はありませんが、一声頂ければコレ幸いにございます。

オリジナル32-1オリジナル32-2オリジナル48オリジナル64
ANOSANOS2ANOS4
ひまわりキーサイレンスイヴねがぽじ

↑ComeBack Menu!

> 管理人 遊人
> mail & msn to udonkobilly@hotmail.co.jp
> Created by ez-HTML Very Thanks!
> ボンボヤージュ・アミーゴ!

Last Update 2009/12/01