「小鳥さんトーク」の編集履歴(バックアップ)一覧はこちら
「小鳥さんトーク」(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)