THE PSP攻略+α ~SONYへの挑戦状~

PSP関連ブログ?いいえ、ただのゆとりブログです

スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
[ --/--/-- --:-- ] スポンサー広告 | トラックバック(-) | コメント(-)

Nスク(ONS)でボイス待ちしたり口パクさせたり 

/*どうやら大分前にテンプレートの改変をしたとき、少しミスがあったようで記事内へのリンク(クリックしたら指定の場所にジャンプする奴)がうまく作動しなかった模様。
前回の記事で久々に使って気づいた^^;
修正したので多分ちゃんとジャンプするはず。*/

Nスクでもボイスの再生が終わるのを待ったり、ボイスの再生時に口パクさせたりできそうな気がしたのでちょっと組んでみた。
Nスク、ONSの両方でそれっぽいことが出来るのを確認。

ボイスの再生待ちをするサンプル
*define
numalias wait_mode_flag,10
textgosub *text_lb
defsub voice
defsub wait_mode
game

*text_lb
btndef clear
if %wait_mode_flag == 0 goto *text_lb2
~;ボイス再生待ち
btntime2 1
btnwait %0
if %0 != -2 jumpb;この行を消せばクリックで飛ばせる
; dwavestop 0
texec
return
*text_lb2
~;通常モード
btnwait %0
if %0 != 0 jumpb
dwavestop 0
texec
return

*voice
getparam $0
dwave 0,$0
return

*wait_mode
getparam %0
mov %wait_mode_flag,0
if %0 != 0 mov %wait_mode_flag,1
return

*start
erasetextwindow 0
通常@モード\
voice "voice.ogg"
通常モード\
wait_mode 1
voice "voice.ogg"
ウエイトモード\
wait_mode 0
終わり\
end

;この行~ってところを消して、その下のdwavestopを有効にすればクリックで飛ばせる。
wait_mode命令で有効、無効にできる。
ウエイトモード時はボイス無しのテキストがすぐ消えるので、voice命令でフラグを立てておいて、フラグが立ってない場合は指定時間ウエイトを入れるとか、テキストの後に!wを入れてテキストごとに指定すれば良いかと。


ボイス再生中のみアニメーションスプライトを表示するサンプル

*define
numalias ani_sp,10
textgosub *text_lb
defsub voice
defsub wait_mode
game

*text_lb
btndef clear
~;ボイス再生待ち
btntime2 1
btnwait %0
if %0 == -2 jumpf
csp ani_sp:print 1
dwavestop 0
texec
return
~
csp ani_sp:print 1
btndef clear
~
btnwait %0
if %0 != 0 jumpb
texec
return

*voice
getparam $0,$1
dwave 0,$0
if $1=="" return
lsp ani_sp,$1,0,0
return

*start
erasetextwindow 0
ボイスの再生が終わると消えます
voice "voice.ogg",":l/3,100,0;cursor0.bmp"
クリックで飛ばしても消えます\
終わり\
end

これを応用すれば口パクにもつかえる、はず。
私は口パクがあるゲームを持ってないので実用的なサンプルは組みにくいです^^;
キャラの口の位置とか配列変数で記憶して、口のアニメーションスプライトを上に乗せてください。
元の立ち絵に口が無い場合は先に立ち絵とアニメーションの間に口を表示しないとえらいことになるかも。


どちらもbtntime2が鍵になってます。ちゃんとONSでも実装されてたので安心w
一応サンプルなのでこのまま組み込んでも上手くいかないでしょう(変数の競合とかあるし)
とりあえず、それっぽいことができるということで。
もっと高度なことがしたいならボイスの長さを事前に取得しておき、それを利用してタイマーをまわしてやれば実装できると思います。


最近全然人来NEEEEEEEEE!!!

('A`)
[ 2009/04/06 19:42 ] 未分類 | TB(0) | CM(6)
No.620
お疲れ様です。
なんか最近はゲームにばっか走り廃人化している気がする自分です。

ボイス再生待ちは試してみたいゲームがあったのでありがとうございます。
一気に完成させちゃおうかな…
あ、でも今はEVER17やってるしn(ry


自分は1日に結構な回数見に来てますよw
元々ブクマが少ないやつなので1度登録したサイトは何回も行ってしまうww
七次元さんの所はためになることが多いですし。
[ 2009/04/06(月) 21:03 ] [ 編集 ]
No.621
半年前くらいから
ほぼ毎日このサイトを見てました。
初カキコになります。
お疲れ様です。
口パクできるようにとかすごいです。

これからもがんばってください。

パニーニ。
[ 2009/04/06(月) 22:31 ] [ 編集 ]
No.622
はじめまして、
いつも、このサイト見させてもらってます。
勉強になることが多いのですごく気に入ってます。

もっと、早く挨拶をと思っていたのですが記事の内容がすごすぎて、なかなか勇気が出ませんでした。

今、「system4.0用シナリオデコーダ」と
「system4.0用逆アセンブラ+α」使わせてもらってます。
ひとつ聞いてもいいですか?

ハルカは動作確認済みとあったのですが、私の製品版ではデコードも出来なかったのですが、何か特殊な作業が必要なのですか?
あと、戦ランの逆アセに対応してもらえないでしょうか?
記事と関係ないことなんですが、時間があればでお願いします。
[ 2009/04/06(月) 23:14 ] [ 編集 ]
No.623
おー口パクスクリプトだー
乙です
よし放置してるefに導入……出来ません(何
口パクしてるゲームは画像形式が特殊なのとかだと再現しんどいですねぇ
minoriは.aniの拡張子でアニメーション管理してるような気がします
[ 2009/04/07(火) 01:23 ] [ 編集 ]
No.624
ソフトウェアを更新してたので返信が遅くなりました
多分VC++でDLLを作れるようになった^^;

最近コメントが少ないので通りすがりの方が多いのかと思ったら、定期的に訪れる方が居たのでびっくりw
皆様には感謝感謝です
初見だと書き込みづらいのかな?


>>tales fanさん
>ボイス再生待ちは試してみたいゲームがあったのでありがとうございます。
EDでの演出とかで使うならそこの部分だけボイスの時間を先に調べてwaitなり入れた方が、他の処理がやりやすいんですよねぇ…
再生ファイル名.csvとかに時間を記録しておいて、ボイス再生用のdefsubの中でcsvopenすれば管理も簡単でシナリオサイズを増やすことも無いのですが、ONSではcsv系命令に対応していないという…

>自分は1日に結構な回数見に来てますよw
うちのブログをアクセス解析で見るとリピーターばかりなんですよねw


>>NGSWさん
始めまして。
半年間も下らないブログを見て下さってるとは…(他の人に失礼w)
痛いことばかり書いてますが、今後も暖かく見守ってやってください
パニーニ!\(^ワ^)/
[ 2009/04/08(水) 03:23 ] [ 編集 ]
No.625
>>今宵の空さん
始めまして。
>勉強になることが多いのですごく気に入ってます。
俺様用メモ的な記事が多いので理解し辛いことも多いと思いますが、気に入って貰えたのなら幸いです。

>もっと、早く挨拶をと思っていたのですが記事の内容がすごすぎて、なかなか勇気が出ませんでした。
中身はただのゆとりなのでお気軽にコメントしてくださいw

>ハルカは動作確認済みとあったのですが、私の製品版ではデコードも出来なかったのですが、何か特殊な作業が必要なのですか?
逆汗の方のreadmeに書いてありますが、新型のainは圧縮されてるので解凍が必要です。
今のところ、海外のツールでも対応してないみたいなので、普通は方法がわかりませんね^^;
拙作のツールには、それに関するコメントがあれば追加する機能がいくつかあり、これもそのひとつです。
対応したものを公開所に上げておきました^^

>あと、戦ランの逆アセに対応してもらえないでしょうか?
戦ランとは戦国ランスのことでよろしいでしょうか?
system4.xでは改行コードがLFだけだと思って放置していたのですが、戦国ランスではCRも含まれていたようなのでHSPのgetstrを使うと正常に文字列が取得できない不具合が発生したので修正しておきました。
あと、戦国ランスで使用されてる未確認のオペコードも追加しました。


>>ざれさん
>よし放置してるefに導入……出来ません(何
>口パクしてるゲームは画像形式が特殊なのとかだと再現しんどいですねぇ
>minoriは.aniの拡張子でアニメーション管理してるような気がします
ちょっと体験版をDLして見てみました。
aniに目パチと口パクの差分が含まれてますね。
目パチは時間がランダムなので上のスクリプトじゃ不完全ですね(というか普通はランダムだろうw)
口パクはwaveの大きさによって変化するので、完全に対応するには先にwave情報を取得する必要があります(こっちも普通はwaveの大k(ry)
これもcsv系命令が使えれば楽に実装できそうなんですが…


>>ROM含めた閲覧者の皆様
自己満足な俺様用メモばかりですが、今後ともよろしくお願いします。
[ 2009/04/08(水) 03:27 ] [ 編集 ]
コメントの投稿













管理者にだけ表示を許可する
プロフィール

七次元

Author:七次元
永遠の18才
夢を追い求める学生
プログラミング初心者(笑)
愛用言語はHSP(スイーツ)
プログラマーを目指すものの「C言語?読むだけ^^」「C++?知らんがな。クラスって何?おいしいの?」
というゆとりっぷり。
Delphi入れたりVC++2008入れたり迷走中。
夢はコミケで何かやりたい。一般参加すらしたこと無いけど。
PSP-1000(CFW)持ち。PSP-4000マダー?
よく難波周辺のゲーセンに出没するらしい。
STGも格げーも初心者。
ろ、ロリコンちゃうわ!!!

連絡先:homepage_touroku[a]yahoo.co.jp
(メールはほとんど確認してません。掲示板に書き込むのが確実です)

関連リンク
そふとうぇあこうかいじょ
公開したファイルが置いてあります。

掲示板
連絡やら雑談やら適当にどうぞ。
カウンター



現在の閲覧者数:
ブロとも申請フォーム


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。