Siren to silent あとがき
投稿者: kage1215 投稿日:2013/11/29 02:09
台本に付いて
十年ぐらい前 当時バリバリの演劇「少年」(←ここ大事)だった頃の作品です。
といっても、公開するための脚本ではなく
スタッフワークショップ(練習)用に書いた脚本
私は専門は照明だったので
(まあ木材と布を切る以外はほとんどなんでもしたけど)
特に、照明のプランニングの練習になるようなものを
つくろうというコンセプトだったはずと思います。
なので、
公開する前提ではなかったので落ちがベタベタです!
まあこれを久しぶりに読んで
10年ですっかり薄汚れてしまったなぁ
おい頭皮の話じゃないよ!!
なんて思ったり思わなかったり・・・。
小説ではなく、戯曲なので
どうしても、人間の感情を表す表現は省きがちなので
(行動や言い回しで察するようには書こうとしてますが)
あまり、戯曲を呼んだことがない人にはとっつきにくかったかな・・・
と反省はしております。 はい
セリフの表示について
ここからは、技術的なことをボチボチと
メッセージウインドウはオリジナルのを作成して
メッセージウインドウ1
setVariable("speakBG",createSprite(▲▲▲))#画像IDを入れる setVariable("speakBG1",createSprite(▲▲▲))#画像IDを入れる setSpriteZOrder(getVariable("speakBG"),5) setSpriteZOrder(getVariable("speakBG1"),5) setTextFontSize(18) setTextFontColor(255, 255, 255) setVariable("talkareaN", createText(30, 400, 800-12, 28))#名前欄ポジ・サイズ setTextFontSize(24) setVariable("talkarea0", createText(40, 430, 800-12, 28))#一行目ポジ・サイズ setVariable("talkarea1", createText(40, 460, 800-12, 28))#ニ行目ポジ・サイズ setVariable("talkarea2", createText(40, 490, 800-12, 28))#三行目ポジ・サイズ setVariable("talkarea3", createText(40, 520, 800-12, 28))#四行目ポジ・サイズ setVariable("talkareaC", createText(750, 570, 50, 28))#click待ちのポジ・サイズ setVariable("waittimevalue", 450) #ウエイトの調整 def click_wait()#click待ち関数 ################# startInput() loop = true while loop while hasInput() takeInput() if isMouseDown() loop = false end end waitTime(30) end endInput() end ############################## def Ospeak(name,talk)#name 0ト書き 1男 2女 talkは改行時は/で区切る if name==0 y=400 text="" elsif name==1 y=0 text="男" elsif name==2 y=200 text="女" end talkA=splitString(talk, "/") setSpriteRect(getVariable("speakBG"), 0,y,800 ,200 ,0 ,400 ,800 ,200) setSpriteRect(getVariable("speakBG1"), 0,y,800 ,200 ,10 ,400 ,100 ,25) setSpriteZOrder(getVariable("speakBG"),4) if name>0 setSpriteZOrder(getVariable("speakBG1"),4) end drawCanvas() setText(getVariable("talkareaN"), text) c=0 while c<getArrayLength(talkA) if talkA[c] name="talkarea"+toString(c) waitTime(getVariable("waittimevalue")) setText(getVariable(name), talkA[c]) end c=c+1 end setText(getVariable("talkareaC"), "▼") #クリック待ち用テキスト 画像ファイルにしてもいいかも click_wait() setText(getVariable("talkareaN"), "") setText(getVariable("talkarea0"), "") setText(getVariable("talkarea1"), "") setText(getVariable("talkarea2"), "") setText(getVariable("talkarea3"), "") setText(getVariable("talkareaC"), "") setSpriteZOrder(getVariable("speakBG"),0) setSpriteZOrder(getVariable("speakBG1"),0) drawCanvas() end
Ospeak(0,"空を見ろ!あれは何だ!/鳥か!/飛行機か!/いや大迫カメンだ!!")
こんな関数使って表示させてます。
ところどころ
setVariable("waittimevalue", 450) #ウエイトの調整
の数値をいじって、表示のタイミングをいじってみてます。
女の子の表情について
フリーソフトサイト
vector>
立ち絵素材 皐 ~さつき~
を利用しています。
顔パーツなどがレイヤーごとにわかれているので
分割したものを1枚の画像ファイルにしてスプライトを使って表示させています。
setVariable("body",createSprite(213671))#ポーズ setVariable("cheek",createSprite(213671))#頬紅潮有無 setVariable("eyeB",createSprite(213745))#眉毛 setVariable("eye",createSprite(213745))#目 setVariable("mouse",createSprite(213745))#口 def Face(base,eyeB,eye,mouse,cheek) # 0 1 2 3 4 5 6 #体 普通 腰当て お願い #眉毛 怒り 困り 素 普通 #目 上弦 下弦 虚ろ細 虚ろ 細め 上目 通常 #口 閉じ 呟き 叫ぶ 半笑い 笑い 通常 #頬 無し 紅潮 x=375 #X Position setSpriteZOrder(getVariable("body"),3) setSpriteZOrder(getVariable("eyeB"),4) setSpriteZOrder(getVariable("eye"),4) setSpriteZOrder(getVariable("mouse"),4) case cheek when 0 setSpriteZOrder(getVariable("cheek"),0) when 1 setSpriteZOrder(getVariable("cheek"),4) end setSpriteRect(getVariable("body"),base*375,0,375,600,x,0,375,600 ) setSpriteRect(getVariable("cheek"),3*375,0,375,600,x,0,375,600 ) setSpriteRect(getVariable("eyeB"),eyeB*375,0,375,600,x,0,375,600 ) setSpriteRect(getVariable("eye"),eye*375,600,375,600,x,0,375,600 ) setSpriteRect(getVariable("mouse"),mouse*375,1200,375,600,x,0,375,600 ) drawCanvas() end def FaceC()#女の子非表示 setSpriteZOrder(getVariable("body"),0) setSpriteZOrder(getVariable("cheek"),0) setSpriteZOrder(getVariable("eyeB"),0) setSpriteZOrder(getVariable("eye"),0) setSpriteZOrder(getVariable("mouse"),0) drawCanvas() end
Face(1,3,2,0,0)#体/眉/目/口/頬
と言った感じで表示しています。
あの後ろから発せられるおどろおどろしい光
あの形の赤い光を作っている・・・・わけではなくて
背景画像の
「光らせたい場所の透過率を下げて」
後ろフィルターに普段は黒 光らせたいときに赤いフィルター
を仕込んでいます。
「フィルターチップ」
setVariable("Ofilter",createSprite(188174)) setSpriteZOrder(getVariable("Ofilter1"),0) c=0 while c<10 #赤い光フェードイン setSpriteRect(getVariable("Ofilter1"),6 ,9-c ,1 ,1 ,0 ,0 ,800 ,600 ) drawCanvas() waitTime(300) c=c+1 end c=9 while c>0 #赤い光フェードアウト setSpriteRect(getVariable("Ofilter1"),6 ,9-c ,1 ,1 ,0 ,0 ,800 ,600 ) drawCanvas() waitTime(300) c=c-1 end setSpriteRect(getVariable("Ofilter1"),6 ,9-c ,1 ,1 ,0 ,0 ,0 ,0 )#サイズ0で非表示
こんなかんじです。
技術的な説明は以上です。
コメントする
コメントするには、ログインする必要があります。
コメント一覧
コメントはありません。