ハム祭りのラキボで「タイピングするとタンバリンの音が鳴る」というネタアイテムを頂いた。ふとそれで友達と話してるときに、小鳥のさえずりとかにしたら可愛いかも~!と思いついたので、作ってみました小鳥バージョン。
とりあえず「タイピングすると小鳥がさえずる音が鳴る」という条件を満たすために必要なのは以下のふたつです。
- スクリプト
- 小鳥のサウンド
タイピングサウンドのスクリプト
スクリプトのほうは海外のフォーラムで発見。たぶん転載しても大丈夫だと思うので以下にまるっと載せておきます。
default
{
state_entry()
{
llSetTimerEvent(1);
}
timer() {
if (llGetAgentInfo(llGetOwner()) & AGENT_TYPING)
{
llLoopSound(“再生するサウンドのUUID“, 1.0);
}
else
{
llStopSound();
}
}
}
llLoopSound(“再生するサウンドのUUID”, 1.0);
当然ながら、ここの部分はサウンドのUUIDに書き換えないと動きません。(参考:セカンドライフ デフォのサウンドUUID一覧)その次の1.0という値は音量です。1.0が最大で0.5とかそんな感じに調整できます。
サウンドのアップロード
さてさて続いてはサウンドを用意しなくてはなりません。
さすがに録音からとか無理ゲーなので、いくつかのフリー音源を有難く頂戴して、10秒以内でなおかつループしても自然に聞こえるように繋ぎます。てか、最近編集系ぜんぜんやってなかったら、編集ソフトの操作を忘れてたよね・・・ (‘A`)
あ、何気にセカンドライフに音アップロードするの初めてじゃないですか。
セカンドライフのサウンドはひとつのファイルが10秒以内、wav形式、そしてアップするときに怒られて知ったんですが、サンプリング周波数 44,100Hz以下のファイルです。アップロードのお値段10L$也。
ついでに小鳥も作ろうぜ
小鳥の声だけなってるのもアリっちゃアリですが、せっかくなので小鳥も作ってみます。
羽根とかまで細かく作るとたぶんシヌので、その辺は割愛。でも、最終的に10432△ポリゴンとかなってたけど、rezするアイテムじゃないからシラネ。
メッシュアニメーションで囀らせてみる
ついにあの、三次元のパラパラ漫画というべきセカンドライフのメッシュアニメーションです。でもやることは意外と無くて、フレーム数分のメッシュモデルを作ればいいだけ。
今回は口が開閉するだけなので骨すら仕込む必要もないですね。とりあえず適当にテクスチャを描いてみた。黒とか茶色とかの鳥の方がリアルなんだろうけど、見た目に華が無いのでついインコ系カラーに走る。あとでカラーバリエを増やしてみよう。
上のは8フレくらいで口が開く動きをさせてみましたが、滑らかに動かそうとすればその分だけメッシュが増えます。
今回はそんなに滑らかさが必要ってわけでもないので、閉じてるのと開いてるのの2コマでいきます。GIFアニメな感じですね。再生速度はスクリプトで調整します。これ、うまく使えばメッシュヘッドの瞬きとか作れそうですね。
2コマなのでインワールドではこんな感じにピヨピヨしています。
メッシュ代18L$ テクスチャ代10L$。あ、あとサウンド代で10L$か。それでも計40L$以下で中々楽しいものができました。アニメのフレーム数を増やすとなると、メッシュ代がもうちょっと高くなるんでしょうね。
タイピング中だけアニメーションして、普段は動かないようにスクリプトを改造しました。が、タイピングが終わった時のタイミングでアニメも止まってしまうので、1/2の確率で鳥の口が開きっぱなしという事案が発生しますw
一応、それ以外のときは閉じてるほうだけ表示するって書いてみたりしたんですが、たぶん書き方的にそこじゃない、もしくは全体的に構造を組み替える必要がありそう。つまりにわかではよくわかりません!\(^o^)/ 自由ひろばのスクリプト教室にでも通おうかしらまったくもう。
とりあえず、頭の上と肩あたりに装着するのが無難な様子。アイキャッチの画像みたいに手に止まらせるとなると、平常時も止まり木のポーズをさせて鳥をとまらせるか、タイピングのときだけ鳥を可視化してポーズを再生しなければなりません、んが後者は↑で口の開きっぱなしを直せない時点でタイプ時だけ可視化が無理。やってるのはほぼ同じことです。
因みに実用してみた感想ですが、二人以上つけて長話になるとやかましいですw