4.101 kittens

どうか、どうかこの作品だけはリバースを付けずに。


「とりあえずタイミングよく押すとオニギリがしゃべっているように見えるかもしれません。
こういって2年前に出したネタを蒸し返してみました。

「101の会は文字通り消えて無くなりましたが、我らが101 kittensは永久に不滅です!」
というわけで、おにぎりの「ワショーイ」の部分を弄ってみました。
「101は猫のボーカルなんです><」とかいういつぞやの自分の発言とはあんま関係ないですが、無理矢理な空耳とか沢山入ってます。
空耳のつけようもない何て言ってるか分からん部分は読めなくするとかいうひでえ逃げ方してますがw
自分からそういうふうに聞こうとしている、ってかんじでだいぶ自分本位に歪めた部分もありますが、
自分はこんな作品を作ろうと考える前から「がんばってね〜」とか「ターベールーナー」とか「干してよ」とかは普通に聞こえてました。
自分としては、どこかひとつでも今後101を聞いたときに頭に思い浮かべて、思わずクスッとしてしまうような箇所があれば幸い。
とりあえずワショーイ以外のおにぎりの上の言葉適当につなげたのはこちら。
ちなみに、個人的には「そこでやめちゃう」はガチ。
ちゃんとそう聞こえるって意味でも、イントネーション的な意味でも。
BOOMBOOMDOLLARとか知ってる人ほとんどいないだろうな…

7key/Hardは、今回メインの譜面。
基本的におにぎりを見てもらおうという譜面構成になってます。矢印があまり邪魔にならないように心がけました。
ちなみに、Another譜面でもそうなのですが、2,3回ほど譜面の中で「101」が吹っ飛んできます。
その演出の関係上どうしてもやむをえないと判断したため、3つ以上のキーの同時押しがごく一部に含まれています。
押せない方ゴメンナサイ。

1key/Hardは、7key/Hardから矢印だけ全部抜いた、おにぎりだけの譜面。
7keyムズいよできないよーって方々のために用意しました。
画面を無駄遣いしてる感がすさまじいですけどw
おにぎりだけってのは誰か四月馬鹿のときにやってましたっけか?
ちなみに、2年前にあの甘雪話の作品をサロンに出したとき、
「これは面白い。矢印いらないくらい」
と言われたのを、言った本人はおそらく
「アイデアはまあいいけど、矢印の配置がウザ過ぎてそれを殺してる」ことを皮肉って言われたのだと思いますが、それを馬鹿正直に受け取った結果この譜面ができたわけだったりします。

7key/Anotherは、自己満足のための譜面。
おにぎりの上の言葉とは一切関係なく、ただこの曲での最高の譜面を、とだけ考えて作りました。
自分が縦連と端っこ刻みが大好きなのがよく分かるかと思います。
たぶん、縦連がすきなのはパカパカ、端っこ刻みがすきなのは弐寺の影響かと。
まぁ、自己満譜面なんで3つ押しとかもう全然気にしてません。やりたい放題です。

 

ここからはAS的なオハナシでも。

ダンオニでswf改造をやるって人には大きく分けて2つのレベルの人がいると思います。
一方は、ソースを完全理解していて、ソースを根っこから弄れる人。
もう一方は、ソースの表面的な部分だけを眺めて、コピペ改変とかその程度までな人。
言うならば、着せ替え人形を作れる人と着せ替えて遊ぶだけの人ですかね。実際そこまでの差はなさそうですがw
というか、調べてみる意欲の差でしょうかね。
ということで無論自分は後者です。ソースは部分部分ならどうにか理解できる程度です。

今回の改造では、この自分のプログラム的なアタマの弱さが致命的な重荷となってしまいました。
まあもっと致命的だったのは、自分のチームに折角tickleさんみたいなASマスターがいるのに土壇場までほとんどASとかに関しての質問をしなかったことなんですが。

たとえばこんなことがありました。

「あれっリザルトコピーのトコでDifficultyが何やっても全部1key/Hardになってる…?」バグ発見。
ちゃんと動いてたソースからコピペしても直りません。
それどころか、難易度名を変えても変わりませんでした。
うんうん唸って苦し紛れに"1key/Hard"で検索してみると、「メイン」の部分でヒットが。
そしてそこに書いてあったASを見て愕然。

今回は1keyがあるので、1keyのときだけオニギリ以外のステップゾーンを消す必要がありました。
そのときに「あれ?ちゃんと書いたのに何でこれでもステップゾーン消えないんだ?」と思いながら放置した部分が諸悪の根源。
その記述がメインにあったのですが、こう。

if(_global.difficulty = "1key/Hard")
{
_root.StepZone0._alpha=0;
_root.StepZone1._alpha=0;
_root.StepZone2._alpha=0;
_root.StepZone4._alpha=0;
_root.StepZone5._alpha=0;
_root.StepZone6._alpha=0;
}

(ちなみに消さないで透明にしただけな訳は、自分ではremoveMovieClip()の用法が理解できなかったからですorz)
まあ、別段プログラミングとかASとか詳しくない人でも一瞬でダウトできますよね。

……一行目、等号がひとつ足りません。=じゃなくて==です。
比較せにゃならんのに代入してどーする。

これはただ単に自分がアホだったというそれだけの話で済むのですが、
アホだったせいで膨大な時間を浪費する羽目になってしまった事態がありました。この作品のキモともいえる、オニギリの上の言葉のASです。

大筋としては、「ワショーイ」の部分のテキストをダイナミックテキストにして、その中身を経過時間で場合分けするだけです。非常に単純です。
ただ、単純に経過時間だけで場合分けすると、台詞が出ている数フレームの間に中身が変わってしまうことがあるので、「スペースキーが押されたときの経過時間」で場合分けすることにしました。

で、こう。

this.onKeyDown = function() {
var keyID = Key.getCode();
switch (keyID) {
<中略>
case _global.keyControl[3] :
this.judgeArrow(3, keyPush[3]);
if(_root.oreore._currentframe<453)
{
_root.StepZone3.ans="ワショーイ";
}
else if(_root.oreore._currentframe<464)
{
_root.StepZone3.ans="ゆっくりして";
}
else if(_root.oreore._currentframe<476)
{
_root.StepZone3.ans="ワショーイ";
}

…以下延々と、数え切れない量のif〜else文の行列。
文コピペして、dos.txtからオニギリのフレーム数読んで、場合分けの数値決めて、台詞部分も変えて。。。なんというマゾゲー。
ここをかくだけでいったい何時間かかったことか。
肥大化したこの記述は3000行にも及びました。まぁ普通にプログラミングは数千行なんて当たり前の世界でしょうが、
あとから聞いてtickleさんが言ってたように外部テキストとか使ってコピペじゃなくてもっと一般化した書き方してたら10行もかからなかった所なんで、今猛烈に萎えてます。萎え萎えです。

というわけで、この究極的スパゲッティソースの簡略化の方法を募集中ですw

戻る(ダンおに)
戻る(TOPへ)