小鳥さんトーク

「小鳥さんトーク」の編集履歴(バックアップ)一覧はこちら

小鳥さんトーク」(2008/02/27 (水) 21:00:34) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

*小鳥さんトーク部分ベータ版 2008/02/27版 いずれは関数本体に統合。 #codehighlight(avs){{{ Import("syumas_func.avs") # メッセージのセット SetTalkMsg(1, \ "プロデューサーさん、毎日お疲れさまです!", \ "先日、アイドル達がチョコ作りに挑戦したりして、", \ "事務所中に甘~い香りが広がっていました。", \ "試食のしすぎで体重計に乗るのが怖いかも。。。┠") SetTalkMsg(2, \ "さて、イベント盛りだくさんの2月ですが、", \ "千早ちゃんの誕生日、そしていよいよ新作", \ "『Live For You!』の発売が近づいてきましたね!", \ "ファン代表の皆さんにお会いできる日が楽しみです┫") # トークパートの前フレーム数算出 start_frame = 20 last_frame = start_frame + GetTalkFrame(1, 5) + GetTalkFrame(2, 5) # 小鳥さんフレーム読み込みとBGMの合成 clip = ImageSource(ImageDir + "kotori_talk_2.png", end=last_frame, fps=29.97, pixel_type="RGB32") bgm = WavSource(BgmDir + "town.wav") clip = clip.AudioDub(bgm) # メッセージ合成 clip = clip.Talk(1, start_frame) clip = clip.Talk(2, start_frame + GetTalkFrame(1, 5)) clip = clip.FadeIO(10) return clip # ---------- トークメッセージのセット function SetTalkMsg(int id, string msg1, string "msg2", string "msg3", string "msg4") { msg2 = Default(msg2, "") msg3 = Default(msg3, "") msg4 = Default(msg4, "") Eval("global g_talkmsg" + String(id) + "_1 = " + chr(34) + msg1 + chr(34)) Eval("global g_talkmsg" + String(id) + "_2 = " + chr(34) + msg2 + chr(34)) Eval("global g_talkmsg" + String(id) + "_3 = " + chr(34) + msg3 + chr(34)) Eval("global g_talkmsg" + String(id) + "_4 = " + chr(34) + msg4 + chr(34)) } # ---------- トークメッセージの取得 function GetTalkMsg(int id, int index) { Eval("msg = g_talkmsg" + String(id) + "_" + String(index)) return msg } # ---------- トークパートのフレーム数取得 function GetTalkFrame(int id, int index) { len = ((index >= 1) ? StrLen(GetTalkMsg(id, 1)) : 0) len = len + ((index >= 2) ? StrLen(GetTalkMsg(id, 2)) : 0) len = len + ((index >= 3) ? StrLen(GetTalkMsg(id, 3)) : 0) len = len + ((index >= 4) ? StrLen(GetTalkMsg(id, 4)) : 0) frame = Int(len * 1.2) frame = frame + ((index == 5) ? 100 : 0) return frame } # ---------- トークパートの文字合成 function Talk(clip clip, int id, int start_frame) { clip = (GetTalkMsg(id, 1) != "") ? clip.TalkSub(id, 1, start_frame) : clip clip = (GetTalkMsg(id, 2) != "") ? clip.TalkSub(id, 2, start_frame) : clip clip = (GetTalkMsg(id, 3) != "") ? clip.TalkSub(id, 3, start_frame) : clip clip = (GetTalkMsg(id, 4) != "") ? clip.TalkSub(id, 4, start_frame) : clip return clip } # ---------- トークパートの文字合成(Talkから呼び出される) function TalkSub(clip clip, int id, int index, int start_frame) { end_frame = start_frame + GetTalkFrame(id, 5) f1 = start_frame + GetTalkFrame(id, index - 1) f2 = start_frame + GetTalkFrame(id, index) y = Int((index - 1) * 20 + 295) clip = clip.ApplyRange(start_frame, end_frame, "TalkAnim", GetTalkMsg(id, index), 10, y, f1, f2) return clip } # ----- トークパートの文字合成(TalkSubから呼び出される) function TalkAnim(clip clip, string msg, int x, int y, int sta_f, int end_f) { len = StrLen(msg) return clip.Animate(sta_f, end_f, "PutText", msg,x,y,0, msg,x,y,len) } # ----- トークパートの文字合成(TalkAnimから呼び出される) function PutText(clip clip, string msg, int x, int y, int len) { s = LeftStr(msg, len) clip = (len < StrLen(msg)) ? clip.SubTitle(LeftStr(msg, len + 1), x, y, font="あずきフォントP", size=19, text_color=$00999999, halo_color=$FFFFFFFF) : clip return clip.SubTitle(s, x, y, font="あずきフォントP", size=19, text_color=$00000000, halo_color=$FFFFFFFF) } }}}
*小鳥さんトーク部分ベータ版 2008/02/27版 いずれは関数本体に統合。 -テスト映像 &ref(kotori_talk.avi)

表示オプション

横に並べて表示:
変化行の前後のみ表示: