複数難易度の作成

EasyとNormalや、それに加えてHardも一緒に作りたい! みたいな人へ。

1.難易度を2つ作る方法
  今回は複数の難易度を搭載する方法と、どういう原理で複数難易度を実現しているのかを説明します。
  まずはエディターを入れているフォルダを開いてください。
  その中に「template.txt」というファイルがありますね?
  その記述こそが複数難易度を搭載するための重要なポイントになっています。
  下の方に「テンプレ説明」っていうのが書いてあるので読んでみましょう。
  全文読んでどこがポイントなのか分からなかった人のために答えを書いておくと、5〜6行目です。
  ここを読んだ限りでは、どうやら[i]という部分に何かの数字を入れるといいようです。

  その答えがどうなっているのか。今度はソースの方を見てみましょう。
  ID:0206の[◎難易度設定]というスプライトを開いてください。
  それの上から2つ目のイベント(ID:0509)のスクリプトを見てみましょう。

on(press){
      if(_root.diffi=="easy")
      {_root.diffi="normal";
      _root.diffin="2";}
      else if(_root.diffi=="normal")
      {_root.diffi="easy";
      _root.diffin="";}
      GotoAndPlay(3);
}

  こんなのがありますね。
  これの意味、分かりますか?

  on(press) は以前説明したとおり、「ボタンを押した時」です。
  その下の if(_root.diffi=="easy") は「もし、_root.diffiが easy なら」です。
  3,4行目はセットで「_root.diffiを normal にして、_root.diffinを 2 にする」ですね。
  5行目以降も似たような内容です。
  さて、何をどうすればいいのか。

  ひとつずつ意味を考えていけば答えが出ることは明白です。詳しく見ていきましょう。
  まず、_root.diffi ってのがなんなのかから。とりあえず何らかの変数なのは確定ですね。
  えー、これは「難易度を表す変数」に指定されています。
  つまり難易度がeasyのとき、normalのときにそれぞれどうなるかの話がこのスクリプトで繰り広げられていると。
  (ちなみにおそらくですが、_root.difficulty を省略したものと思われます)
  では。
  _root.diffin って何でしょう?
  これはおそらく、_root.difficultyNumberを省略したものでしょう。
  つまり「譜面番号を表す変数」です。
  この譜面番号とは?
  先ほどエディターのtemplate.txtで見かけた[i]で設定する数値のことです。

  前置きが長くなりました。結論を大きい字で書いておきましょう。
  譜面番号が無ければ「easy」、譜面番号が2なら「normal」になります。

  では譜面番号を変更する手順の説明に入りましょう。
  エディターを起動して、譜面を作成してください。
  今回のシチュエーションはこうです。
  「easyとnormalの2譜面を作成するつもりで、まずはeasyから作っている」
  それではいってみましょう。

  理屈と方法を理解するためだけですので、譜面の配置は適当にしますよ。
  そちらで色々変換しながら読んでください。

easy譜面

  まぁこんな感じでやりますね。
  すると譜面ファイルのdos.txtにはこのように書き出されますね。

※見やすいようにあえて途中で改行しています※
left_data=200,600&down_data=250,550&up_data=300,500&right_data=350,450&space_data=400
&speed_data=&frzLeft_data=&frzDown_data=&frzUp_data=&frzRight_data=&tuning=

  いつも見慣れた感じの譜面ですね。(少々短いですがw)
  では今度は、譜面番号を変更してから、譜面の書き出しをしてみましょう。
  番号設定は「2」にします。
  template.txtを開いてください。
  一行目に、「i=」っていうのがありますね?
  その「=」の右に、半角で2を入力して上書き保存してください。
  (一行目が、i=2ってなってればOKです)
  その上で、もう一度譜面を作ってみましょう。

normal譜面

  こちらはnormal譜面ということで、easyより若干難易度を上げて配置してみました。
  それはともかく、これをそのまま譜面出力してしまうとeasyの譜面が消えてしまいますね。
  エディターの左上のファイル(F)を押して、「保存位置初期化」を選択してください。
  こうすることで、自動で「dos.txt」に譜面を書き出していたのをリセットできます。
  今回はeasyの譜面を「dos.txt」として書き出し、normalの譜面を「dos2.txt」として書き出します。
  というわけでnormalの譜面の名前をdos2.txtにして書き出しましょう。
  (セーブファイルも「save2.txt」で書き出すと良いでしょう)

  すると譜面はこのようになっていますね。

※見やすいようにあえて途中で改行しています※
left2_data=200,350,450,600&down2_data=300,500&up2_data=250,550&right2_data=200,400,600
&space2_data=400&speed2_data=&frzLeft2_data=&frzDown2_data=&frzUp2_data=&frzRight2_data=&tuning=

  これを先ほどのeasy譜面と比較してみてください。
  大きな違いがあるのが分かりますね。
  それは、easyの時には「left_data=」となっていたのがnormalでは「left2_data=」となっていることです。
  もちろん、leftだけに限らずdownやup、spaceなどでも同じく2がついていますね。
  この「2」こそが、譜面番号が2になっているという証拠です。
  この譜面を読み込ませれば、ダン☆おにに2譜面搭載させることができます。
  ……が、このままやっても上手くいきません。
  どうすればいいのか。もうしばらくお付き合い下さい。

  さて、以前お話しましたように、ダン☆おにのSWFファイルは譜面を読み込むことができます。
  それは内部で指定されたファイルを読み込むというものです。
  最初から指定されている譜面ファイルの名前は「dos.txt」です。
  ということは。
  何もしなければ「dos2.txt」なんていうファイルはSWFに完全シカトされてしまいます。
  というわけで結局1譜面しか読み込まれず、涙を飲んだ方もいらっしゃるかも。
  (僕も最初はその一人でしたw)

  じゃあどうすればいいのか。
  結論から言うとeasy譜面もnormal譜面もdos.txtに入れるということをします。

  先ほど作成した2つの譜面データを並べてみましょう。
  上がeasy(dos.txt)で下がnormal(dos2.txt)です。

※見やすいようにあえて途中で改行しています※
left_data=200,600&down_data=250,550&up_data=300,500&right_data=350,450&space_data=400
&speed_data=&frzLeft_data=&frzDown_data=&frzUp_data=&frzRight_data=&tuning=

left2_data=200,350,450,600&down2_data=300,500&up2_data=250,550&right2_data=200,400,600
&space2_data=400&speed2_data=&frzLeft2_data=&frzDown2_data=&frzUp2_data=&frzRight2_data=&tuning=

  この2つの譜面を、つなげて一つのものにして、dos.txtとして保存します。
  方法は簡単。単純なコピー&ペーストです。
  (この作業を行う上ではエディターは使用しません。メモ帳とかで)
  ですが。
  その際に注意点もあるので気をつけてください。

  まずはところどころにはさまっている「&」のことです。
  これを間違って消してしまったりすると譜面が正常に作動しなくなります。
  よって消さないようにしてくださいね。
  そしてもう一つは「改行しない」ということです。
  見づらいからといって譜面を勝手に改行してしまうとこれまた正常に作動しなくなります。
  (だからわざわざ赤で注釈を入れているわけです)

  では完成品を見てみましょう!

※見やすいようにあえて途中で改行しています※
left_data=200,600&down_data=250,550&up_data=300,500&right_data=350,450&space_data=400
&speed_data=&frzLeft_data=&frzDown_data=&frzUp_data=&frzRight_data=
&left2_data=200,350,450,600&down2_data=300,500&up2_data=250,550&right2_data=200,400,600
&space2_data=400&speed2_data=&frzLeft2_data=&frzDown2_data=&frzUp2_data=&frzRight2_data=&tuning=

  注目すべきところに色をつけました。分かりますか?
  素直にそのままつなげてしまうのですが、一箇所だけ注意点があります。
  それは「left2_data=」の前にきちんと「&」をつけることです。
  これをつけずにそのままコピーしてしまったとすると、直前のfrzRight_data=と混ざってしまいます。

  あともう一つは、「tuning=」も最後だけにしてあとは消すと言うことですね。
  この「tuning=」は譜面作成者の名前を入れる箇所です。
  あまり気にする必要は無いような気もしますけれども、template.txtで変更できます。
  ……さぁ、では準備ができました。
  作成したテキストデータを「dos.txt」として保存。
  SWFを使って上手くいっているかどうかを実験しましょう。

  まずはDifficultyをeasyにしてPLAYします。

easy譜面

  こんな譜面が流れてきましたか?
  でしたら次はnormalです。

normal譜面

  こんなのが流れてきましたか?
  流れてきたら大成功!
  今回の実験は終了です。
  あとは1つの曲に自分の好きな譜面を2つ搭載することを楽しんでください。

2.3つ以上はソースを改造する必要があることについて


ダン☆おに作成講座に戻る