トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF ログイン

番組作成

番組作成

概要

  • FLASH」で流す、ラジオのようなもの。の作り方などをまとめる。
  • わかりにくい。根性が要る可能性。
  • 人気に応じてGOLDが支払われるのが大きなメリット。

  • 音楽ファイル(MP3形式のみ)を用意する。
  • 基本、再生するファイルは「ウェブサイトを作る(安易だが大ファイル取扱難)」「自宅サーバーを構築する(高度だが大ファイルも楽)」などしてそこに置き、自分で管理する。
  • 一部、自由使用可な音楽ファイルができるかも。
  • 詳細は策定中。

構成

  • 基本、スケジュールファイルは自分で構成する。書式は後述。ややこしく不自由な可能性。
  • 作ったスケジュールファイルは、拡張子を「.ini」としわかりやすい名前を付けて、所有ウェブサイト上などに置く。そしてそのスケジュールファイルのアドレスを管理者に個人宛で送ったりすれば管理する人が持ち帰って眺めると思います。
  • 最初、よく分からなければ、やりたいことを詳細事細かに書いて管理する人に送れば代わりに作るかなんかするかもしれないが多分報酬は減るよ。
  • 詳細は策定中。

放送

大要

番組にはチャンネル(ch)が割り当てられ、リスナーはFLASHでチャンネルを選択して聴く。
人の集まりやすい時間帯に複数の番組が競合できる。!!チャンネルの取得
プレイヤーは、開設手数料を払うことでチャンネルの使用権を取得できる。

開設手数料

ch名の種別 金額
数字1字 1000万G
数字2字 300万G
数字3字以上 200万G
英数混合 400万G
英字1字 700万G
英字2字以上 500万G
その他の文字 不可

 天引き

放送を1度行う度に、報酬金庫から1万Gを徴収する。
報酬金庫が赤字になった時点で、そのチャンネルの使用権は消滅する。

 チャンネルの管理

放送スケジュールの作成、放送申請、報酬の分配は全てチャンネル管理画面(仮)上で行う。

スケジュール作成

番組を放送するには、スケジュールファイルを作る必要がある。
番組スケジュールのためのプログラム言語のようなもの(仮)』を用いて作成する。
いくつかの音楽ファイルを連続で再生するだけなら簡単な構造で可能であるし、凝った作りにすればジャンプを付けたり対話型にしたりと少し立派なものになる。(そもそもの言語が貧弱だが…)
詳しい書き方は後述「スケジュール書式」にて。

放送申請

かきかけ。

報酬の分配

かきかけ。

報酬

  • 番組を放送するとmBからJTGOLDを支払うが、その額の基本計算は聴いた人数である。
    • スケジュールファイルの中に3〜10個程度のチェックポイント(始+中間いくつか+終)を作る。
    • チェックポイント時点で聴いているプレイヤーは記録される。
    • それぞれのプレイヤーのそのチェックの数と番組の長さをどうにかして計算する。(きっと100%のリスナーは高ポイント)
    • チェックポイントの数を増やすと、途中ちょっとだけ聴いたようなプレイヤーも計算に入れられるが、ちょこちょこ満点が出にくいかも。
    • チェックポイントの数を減らすと、チェック単価が上がり最初のチェックで聴いていた人を高く計算できるが、途中ちょっと聴いたような人は無得点。
  • 報酬計算は各リスナーごとに行われる。
1リスナー分報酬 = 100000 × 番組長さ倍率 × チェックポイント倍率× 各種リスナー倍率 × 各種作成者倍率
  • 詳細は策定中。

 番組長さ倍率

倍率
240〜 0.00
120〜239 2.50
90〜119 2.00
75〜89 1.71
60〜74 1.59
45〜59 1.37
30〜44 1.00
20〜29 0.51
10〜19 0.27
1〜9 0.05
0 0.00

 作成者倍率

作成者の転職回数と報酬倍率

回数 倍率
10〜 1.31
5〜9 1.25
2〜4 1.00
1 0.71
0 0.29

作成者の人数と報酬倍率

人数 倍率
7〜 3.00
5〜6 2.65
3〜4 1.91
2 1.37
1 1.00
0 0.00

 リスナー倍率

チェックポイントの数に対するチェック数の割合と報酬倍率

割合 倍率
100% 1.00
90%〜99% 0.72
80%〜89% 0.64
70%〜79% 0.61
60%〜69% 0.53
50%〜59% 0.47
40%〜49% 0.40
30%〜39% 0.35
20%〜29% 0.32
10%〜19% 0.28
1%〜9% 0.20
0% 0.00

シーズンと報酬倍率

シーズン 倍率
β 1.00
γRC 1.78
1.19
α 1.24
TT 1.13
EGMI 1.66
RE 1.42

転職回数と報酬倍率

回数 倍率
10〜 1.72
7〜9 1.58
4〜6 1.34
2〜3 1.20
1 1.00
0 0.26

スケジュール書式

TITLE<>朝までゆっくりしていってね<>まめ<>0:00 〜 4:59<>----------
# GO<>3<>---
 100<>mes_change<>〜朝までゆっくりしていってね〜<><><>true<>[5:00-23:59]S Wed<>0<>0<>
110<>cno_change<>200<><><>true<>[5:00-23:59]S [0:01-4:59] Wed<>0<>0<>
 120<>bmusic_play<>http://mames.dip.jp/intro_b.mp3<>80<>true<>false<><>0<>0<>
 130<>bmusic_fade<>-50<>3<>false<>true<>bmusic<>0<>0<>
 140<>mmusic_play<>http://mames.dip.jp/intro_m.mp3<>70<>true<>false<><>0<>0<>
200<>FLG<>Talk<><><>true<><>0<>0<>
210<>cno_change<>300<><><>true<>[0:03-0:00]<>0<>0<>
 220<>bmusic_play<>http://mames.dip.jp/talk_b.mp3<>50<>false<>true<><>0<>0<>
 230<>mmusic_play<>http://mames.dip.jp/talk_m.mp3<>80<>true<>false<><>0<>0<>
300<>FLG<>Ending<><><>true<><>0<>0<>
 310<>bmusic_fade<>0<>5<>true<><><>0<>0<>
320<>cno_change<>400<><><>true<>[1:13-1:05]<>0<>0<>
 330<>bmusic_play<>http://mames.dip.jp/ending_b.mp3<>50<>false<>true<><>0<>0<>
 340<>mmusic_play<>http://mames.dip.jp/ending_m.mp3<>80<>true<>false<>bmusic<>0<>0<>
400<>FLG<>End<><><>true<><>0<>0<>
 410<>bmusic_fade<>0<>10<>true<>false<><>0<>0<>
 420<>mes_change<>default<><><>false<>!bmusic<>0<>0<>
end<>--------------------------------------------------

基本仕様

Command-No<>Command<>arg1<>arg2<>arg3<>Next<>If<>

Command-No
実行No。最後にどの行を実行したのかは、これを元にする。
Command
実行するコマンドの種類。後述。
arg1 / 2 / 3
引数。実行内容の詳細を入れる。コマンドにより内容は異なる。後述。
Next
true(=Yes)かfalse(=No)を入れる。trueにすると、実行後即座にもう一度読み込む。
If
特殊な実行条件。主にこれを用いて実行をコントロールする。後述。

  • 上から1行ずつ読み込む。
  • 始めは、上から順番に、1行ごとにその行の「If」を解釈・判定し、実行条件を満たす行が見付かると、それを実行する。->上から見て『条件を満たす最初の行』を実行する。
  • 2回目以降は、ひとつ前に実行した行を(Command-Noをもとに)探し、その次の行から1行ごとにその行の実行条件を判定し、満たす行を実行する。->『最終実行行以降で条件を満たす最初の行』を実行する。
  • ひとつ前に実行した行が見付からなかった場合は、始めの状態にリセットする。
  • 行頭の「スペース(全角/半角)」「タブ」は無視されるので、インデント可。
  • タブは全て無視される。みやすくなるはずなので積極的に入れるべき。(例では入れられず)
  • かきかけ

 コマンド

bmusic_play

  • BGMをかける。
arg1 ファイルURI
arg2 音量(1〜100の自然数)

arg3 動作
doubletrue 読み込みながら再生して、再生が終了したら通信する(reason:bmusicstop
true 読み込みながら再生
falsedoubletrue 全て読み込んでから再生して、再生が終了したら通信する(reason:bmusicstop
falsetrue 全て読み込んでから再生(1度だけ)
false 全て読み込んでから再生(ループ)
doublefalse 読み込む。再生はしない。完了すると通信する(reason:bmusicload
triplefalse 読み込む。再生はしない。<default>
playonly あらかじめ読み込んでいるものを再生。停止後なら再開する。

読み込みながら再生すると、大きなファイルでもスムーズに再生されるが、通信速度が遅ければプツプツ途切れたりする。
doublefalsetriplefalseは、読み込んだ音楽ファイルはキャッシュ(貯蔵)されるので再読み込み時に時間がかからない(ハズ)。またtriplefalseplayonlyで再生できる。

bmusic_stop

  • BGMを中止する。ブチッと切る。
  • 停止場所は記録し、bmusicplayのplayonlyモードで再開できる。
arg1 なし
arg2 なし
arg3 なし

bmusic_fade

  • BGMの音量をゆっくり変化させる。
arg1 最終的な音量(-100〜100の整数)。先頭にマイナスをつけると「それ以下になるまで下げる」、つけないと「それ以上になるまで上げる
arg2 変化の遅さ(自然数)。1なら1秒に30下がり、30なら1秒に1下がる。反比例「y=30/x」。

arg3 動作
doubletrue 完了後にBGMを停止して、その直後に通信する(reason:bmusicstop
true 完了後にBGMを停止する
false 完了後に何もしない

mmusic_play

  • メイン音楽ファイルを再生する。
  • 仕様はbmusic_playと同じ。
  • doubletrueの終了時通信reasonはmmusicstop

mmusic_stop

  • メイン音楽ファイルをブツッと停止する。
  • 仕様はbmusic_stopと同じ。

mmusic_fade

  • メイン音楽ファイルの音量をゆっくり変化させる。
  • 仕様はbmusic_fadeと同じ。
  • doubletrueの終了時通信reasonはmmusicstop

mes_change

arg1 変更後の文章。defaultと指定すると初期値に戻る。
arg2 なし
arg3 なし

文章の中の特殊文字列は入れ替えられる(置換)。
特殊文字列 入れ替わる文字
%bsecond% BGMを読み込んだ秒数
%msecond% MMusicを読み込んだ秒数
%bminute% BGMを読み込んだ分数(小数点以下2桁)
%mminute% MMusicを読み込んだ分数(小数点以下2桁)
%bplaysecond% BGMを再生した秒数
%mplaysecond% MMusicを再生した秒数
%bplayminute% BGMを再生した分数(小数点以下2桁)
%mplayminute% MMusicを再生した分数(小数点以下2桁)
%bplayper% BGMを再生した割合(小数点以下1桁)
%mplayper% MMusicを再生した割合(小数点以下1桁)
%bloadsize% BGMを読み込んだバイト数
%mloadsize% MMusicを読み込んだバイト数
%bsize% BGMのバイト数
%msize% MMusicのバイト数
%bloadper% BGMを読み込んだ割合(小数点以下1桁)
%mloadper% MMusicを読み込んだ割合(小数点以下1桁)
例:

...<>mes_change<>スペシャルトーク 第一回(12分34秒/Played:%mplayminute%min. Loaded:%mminute%min.)<>...
# 再生済み分と読み込み済み分を表示
# 表示例:スペシャルトーク 第一回(12分34秒/Played:0.37min. Loaded:7.52min.)

cno_change

  • FLASHの最終実行Noを変更する。ジャンプ代わりに使う。後から聴き始めた人に、追い付いてもらう為「ここまで実行したことにする」など。
arg1 変更後のNo。
arg2 なし
arg3 なし

button_make

  • 真ん中少し下にボタンを出現させる。押すと、最終実行Noを変更して通信する(reason:button)。ボタン付きのcno_change
arg1 押した後の最終実行No。
arg2 ボタン内の文字。

arg3

  • big:大文字(1行、全角5.5文字分)<default>
  • medium:中文字(2行、全角9.5文字分×2)
  • small:小文字(2行、全角17文字分×2)

button_delete

  • ボタンを消す。
arg1 なし
arg2 なし
arg3 なし

 If(実行条件)

  • 複数指定できる。条件同士の間は空白を空けるのが望ましい。
  • 判定順序があるので注意。

…<>bmusicS [22:00-20:59]S [21:01-21:59] Wed<>…
22:00〜20:59は実行せず待機。BGMがかかっていたら実行せず待機。水曜の21:01〜21:59は実行。いずれでもなければスルー。
これは21:00のみスルーされる。
「bmusic_fade」で徐々にBGMを停止したあと、「後から来て開始時間の21:00に間に合わなかった人を先に誘導して次の読み込みまで待ってもらう」
 cno_changeにおいて非常に有効な条件である。
ただし、これは「水曜以外の21:00」にも実行されてしまう。
 無理矢理には、次の行に「日月火木金土の21:00なら最後へ飛ばす」ことでどうにかなるが面倒。
 「水曜以外なら実行せず待機」が実装されれば楽。

判定順序<条件>

  1. 時刻
  2. 曜日
  3. reason系
  4. bloaded
  5. mloaded
  6. bmusic
  7. mmusic

<接尾子>

  1. !S
  2. !
  3. S
  4. 無印

接尾子

各条件の後ろに付けて意味を変える。
〜(何も付けない;例:button):〜ならば実行(〜でなければ無視して次へ)
〜!(例:button!):〜でなければ実行(〜ならば無視して次へ)
〜S(例:buttonS):〜ならば実行せず待機(〜でなければ実行)
〜!S(例:button!S):〜でなければ実行せず待機(〜であれば実行)

条件を複数並列に指定できる場合、ストップは一つでも真ならば即待機、実行はひとつでも真ならば実行(OR)。どの条件も偽であった場合のみ「無視して次へ」となる。

時間

[12:00-14:59]
12時00分から14時59分までであるかどうか。
[23:00-00:59]
23時00分から00時59分までであるかどうか。(日付をまたぐこともできる)
※!、S、!Sに未対応。

曜日

{}の中に曜日を入れる。半角スペースなどで複数指定も可。

  • Sun
  • Mon
  • Tue
  • Wed
  • Thu
  • Fri
  • Sat
{Wed} # 水曜日のみ実行、それ以外ならスルー
{Sun Sat}! # 土日はスルー、平日なら実行
{Sun Sat}!S # 土日なら実行、平日ならストップ待機
{Mon Wed Fri}S # 月・水・金は入れない

※{}は、最初に出現する1つのみ有効。

{Sun Sat} {Fri} # 土日は実行、平日(金曜も)はスルー

日付

(1/3-3/17) # 1月3日から3月17日までなら実行、以外はスルー
(12/3-1/6) # 12/3から1/6までなら実行、以外はスルー(年もまたげる)
(1/3-1/3)! (1/5-1/5)! # 1/3と1/5以外なら実行

※!、S、!Sに対応。

reason系

通信した原因。
reason 意味
click クリックによる通信
button ボタンによる通信
bmusicstop doubletrueのBGM終了による通信
mmusicstop doubletrueのMMusic終了による通信
bmusicload doublefalseのBGM読込完了による通信
mmusicload doublefalseのMMusic読込完了による通信
※!、S、!Sに対応。

bloaded

BGMが読み込み完了した状態であるかどうか。
※!、S、!Sに対応。

mloaded

MMusicが読み込み完了した状態であるかどうか。
※!、S、!Sに対応。

bmusic

BGMが再生されているかどうか。
※!、S、!Sに対応。

mmusic

MMusicが再生されているかどうか。
※!、S、!Sに対応。

 メタコマンド

上級。
Commandのところへ入れて、サーバー側処理の命令を実行する。

GO

<arg1>行目以降になるまでスキップ。
If判定なし。

DO

その行から見て<arg1>行先(前)のコマンドを強制実行する(実行先のIf判定なし)。arg1は整数。マイナスを付けても良い。
このメタコマンド自体のIfは判定する。
というかIfで何かしらのスルー条件を記述しないと(特にマイナス行指定の場合)無限ループになる。
用途としては、再生やロードの状況を毎回mes_changeで更新するとか。

throughflg

無視して次の行へ進む。実行内容は、次の行へ進むこと。
If判定をするため、bloaded!Sなど指定で、読み込むまでのストッパーになる。
また、番組終了後に置き、番組中のbuttonのジャンプ先にこれを設定しておいてIfにbutton!Sを指定(ボタン押下時にはどうせこれは実行済み扱いなので、このIfはただの通常時ストッパー)、その後に各種コマンドを記述すれば、「buttonが押された時用の関数」みたいなのが作れる。

番組


          written by まめ(β)