Last update... 2004年12月14日(tue)
DirectorMX [音声再生(SWA)]
今回は音声の再生方法です。音声といってもいろいろ種類がありますが、個人的にSWAサウンドでしかもシーンによって違う音声の再生をよく使いますので、それの方法を簡単に説明します。 まず用意するのは・・・SWAサウンド(当然)。サウンドエディター使ってもできますし、WAVファイルであればDirectorで変換することもできます。 まずはそのサウンドをキャストとして読み込みます。 [挿入]-[メディアエレメント]-[shockwaveオーディオ]を選択すると読み込みダイアログがでますので、ここで再生したいファイルのパスを入力し、ボリューム、チャンネル、プリロード時間の設定をします。この辺りは気にしないでそのままでもいいでしょう。 次に、そのキャストに、0101、0201、0301、とはじめの2文字分を増やしながら再生したい順に名前を付けていきます。これで読み込みは完了です。 ここまできたら、スコア上に音声の再生をしたい個所へマーカーを作成していきますが、これはスクリプトと関係してきますので、マーカー名をmark01とし、増やしていく時はmark02、mark03...という具合になります。 基本的にmark01はSWAサウンドの0101と連動しますので、マーカーの数は読み込んだ音声と同じになるはずです。 これで大まかなとことは完成しましたので、次にビヘイビアスクリプトの作成です。 以下が内容になります。 global gstop,soundswa,gmark on enterframe if the framelabel contains "mark" then gmark= chars(the framelabel, 5, 6) soundswa="01" member(gmark&soundswa,1).stop() member(gmark&soundswa,1).play() else nothing end if if gstop = 1 then if soundswa<>VOID then member(gmark&soundswa,1).pause() end if end if end とまあこれだけですが、簡単に説明すると、マーカー名にmark が含まれている場合、その名前の5番目 と6番目 の文字を読みます。 その後のsoundswa="01"とそのマーカーの数字をくっつけたものに対応した同じ名前のswaキャストメンバーを再生する。例えばマーカー名がmark01 の場合、5番目と6番目が0 と1 なので01、soundswa="01"なのでその二つを合わせると0101 となり、同じ名前のメンバーが再生。 ちょっとわかりづらいかもしれませんが、これがあれば、応用として音声の再生、停止、一時停止、なども簡単になるはずです。 以上。
Last update... 2004年11月16日(tue)
DirectorMX [ファイルを開く]
XTRAS・・・BUDAPI.X32 開きたいファイルを他のアプリケーションを使って開きたい場合のスクリプトです。もちろんそのアプリケーションがシステムに入っていないと駄目ですが・・・以下のように記述します。 on mouseDown set xopenfile = baopenfile(the moviePath & "開きたいよ.pdf","") if xOpenFile > 32 then nothing else alert "ファイルを開くのに必要なアプリケーションが見つからないか、ファイルが見つかりません" end if end こんな感じで"開きたいよ.pdf"の所のファイル名を置き換えればオッケ〜です。一応アプリケーションがインストールされていなかった場合や、自分のミスでファイル名が間違っていた場合などのためにアラートを付けると良いかもしれません。
Last update... 2004年11月16日(tue)
DirectorMX [フォルダを開く]
XTRAS・・・BUDAPI.X32 ムービーと同一階層にあるフォルダをボタンを押すことで開きたい場合は以下のスクリプトをボタンにアタッチするか、ここで紹介したプッシュボタンの設定でおこないます。以下のスクリプトはムービーと同一階層にあるDataというフォルダを開きます。 on mouseDown baopenfile(the moviePath & "Data","") end 確かWinとMacで表記の仕方が違ったような気がしますが、そんな大それたことでもなかったと思われます。 フォルダを開きまくってみましょう・・・必要性ゼロ。
Last update... 2004年11月05日(fri)
DirectorMX [フルスクリーン3]
フルスクリーン第3弾です。 元のmainmovie.dirに戻るボタンなどの設定をします。 ところがフルスクリーンにすると元が800×600のサイズで作成していますので、そこで配置していたボタンがフルスクリーンにしても位置が変わらずとても見苦しいことになるので画面のサイズに合わせて変更するようにします。 まず、ボタンのセンターポイントを以下のように変更します。 このセンターポイントを画面の基準点(0,0)に合わせます。 次にこのスプライト5のボタンに以下のビヘイビアをアタッチします。 property pstagewidth on enterframe pstagewidth = the stageright - the stageleft sprite(5).locH = pstagewidth-800 end これは以下のようにするための設定です。 例えば画面の解像度が1152×870だった場合元に作成したfullmovie.dirのサイズが800×600なので差分がでてボタンの位置がおかしくなるため、上記のスクリプトで常にボタンのセンターポイントを画面のサイズから800ピクセル引いた場所に置くというふうにさせます。 つまり元の画面が800×600なら位置はそのまま。1152×870なら左上から352ピクセル右の位置。 これで常にボタンの位置は比率に合わせて画面の右上にくるようになります。 う〜説明しづらくなってきた・・・ これでボタンの設定もできましたので、後は元のmainmovie.dirに戻るためのスクリプトです。 これも戻るボタンにプッシュボタンをアタッチし、メッセージをgobackmainとする。 次にムービースクリプトに以下のように記述します。 on gobackmain tell the stage"・・・ステージから実行しないとエラーになる the windowlist = [] go to movie "mainmovie" end tell end これでばっちりフルスクリーンから戻れます。 もっと簡単なのあるよ〜なんていうのがあれば笑って見過ごしてやってください。 フルスクリーン作成バックアップは以上で終了です。
Last update... 2004年11月05日(fri)
DirectorMX [フルスクリーン2]
フルスクリーン第2弾です。 前回の時点で別ウインドウでムービーを開くところまできましたが、その開いたウインドウを擬似的にフルスクリーンにします。 今回はデジタルムービー(DirectMediaXtra使用)を再生させることを目的に作成します。 まず、デジタルムービー再生用にステージに配置した枠のスプライト(サイズは任意。どちらかと言うと画面マックスにしておくのがフルスクリーンらしくていいかな〜)に下のように作成したビヘイビアをアタッチします。 property spriteNum on beginSprite me sprite(spriteNum).rect = rect(0,30,the stageRight - the stageLeft,the stageBottom - the stageTop) end ここでデジタルビデオの位置とサイズを設定しています。中にrect(0,30,the〜なぜ位置が上から30ピクセルのところなのかと言うと、もろもろの事情でこのデジタルビデオの前にボタンなどを配置できないため、その30ピクセルの中にボタンを仕込もうとしているからです。 ここですでにデジタルビデオだけはフルスクリーンになるはずです。
Last update... 2004年11月05日(fri)
DirectorMX [フルスクリーン1]
今回はプロジェクターに書き出した時のフルスクリーンではなく、ムービーの途中で別ウインドウで仮想フルスクリーン状態にするためのスクリプトです。もっとうまくやる方法があるかもしれませんがこれが今の私の限界。 とりあえず、これは少しめんどくさいので(私が勝手にめんどくさくしてるだけ・・・)何回かに分けてバックアップをとります。 まず準備するのは、メインで走るムービーの)mainmovie.dir と別ウインドウを立ち上げたときに表示されるfullmovie.dir 画面のです。 基本画面サイズは800×600 の設定で作成しますが、このサイズですでにフルスクリーンになってるのは構いませんが、モニタが1024×768などの場合フルではうまらないので、これを擬似的にフルにもっていきます。 とりあえず第一回目はmainmovie.dirの設定からです。 まずはフルスクリーン用のボタンにこのバックアップですでに説明したプッシュボタン)(管理人お気に入り) をアタッチします。ボタンが押されたときに発信するメッセージをgofullなどとつけ、他にムービースクリプトを作成してその中に以下のように記述します。 on gofull size = the desktopRectList[1] WindowName = "fullmovie"・・・開いた別ウインドウの名称 close window WindowName window(WindowName).windowtype = 2・・・開いたウインドウのタイプ(影付とか) window(WindowName).rect = size open window WindowName tell window "fullmovie"・・・ここはフルスクリーンで表示されるfullmovie.dirのこと go to marker ("movie01")・・・以下は各個人の設定 end tell go to marker ("top") end とこんな感じで、まずはメインのムービーの設定が終わります。これでとりあえず別ウインドウで立ち上げるところまではきました。まだここではフルスクリーンになっていないので次回はその立ち上げた別ウインドウをフルスクリーンにするための設定を説明します。
Last update... 2004年10月26日(tue)
DirectorMX [キューポイント]
今回はムービーと音声を同期させる場合によく使うキューポイントについてです。基本的にキューポイント自体それほど難しいことでもないですが、この項目のポイントはそのキューポイントの落とし穴についてです。 まず、使用する音声を音声編集ソフト(多分Director8以降からDigiOnSound Lightが同梱されているはずなのでこれを使用)で必要な箇所にキューポイントをつけてます。 Director側でのLINGOは on exitframe go to the frame end on cuePassed go to the frame+1 end としてビヘイビアチャネルに配置します。あとは再生したときにちゃんと同期されていればオッケーなのですが、ここでちょっとした落とし穴があります。 それは音声のキューポイント間とムービーのタイムラインがほぼ同時でギリギリで通過する場合のスピードの速いマシンと、遅いマシンの読み込み速度の問題です。 速いマシンではなんの問題もないようなときでも遅いマシンの場合は、ムービーの進みが遅くなりますのでポイントがギリギリですと、ポイントなしと認識してムービーが止まってしまいます。 こんな事にならないためにも、回避策としてはムービーを縮めることが可能であれば、通過箇所の距離を縮めてムービーのポイント到達を早めるか、音声を問題がおきない程度に伸ばしてキューポイントの通過の時間かせぎをして対応しましょう。 根本的に問題が起こらないようなLINGOにすればいいのでしょうが、できないときはこれがオススメです。
Last update... 2004年10月22日(fri)
DirectorMX [URLを開く]
ボタンを押したらそのURLを開きたい!! まずは設定したいボタンにBackupですでに説明したプッシュボタンのスクリプトを使い、それのカスタムメッセージにgourlと記述します(別にこのスクリプトを使う必要はないですが・・・他に機能どうとかないならもっと簡単にすみます・・・管理人が好きなだけ)。 あとは別にムービースクリプトを新規で作り、その中に以下のように記述します。 on gourl gotoNetPage "http://char-shock.com(開きたいURL )" end 以上。かんた〜ん。