ライフを改造

ライフゲージ関連の中ではかなり気楽に変更できる最大ライフにいきましょう。

1.最大ライフの変更方法(ASの方)
  tanishiさんのソースのデフォルトのライフ&ダメージ設定をご存知ですか?
  調べていけば分かることなんですけど、ここで紹介します。
    最大ライフが100
    ショボーンのダメージが3
    ウワァァンとイクナイのダメージが共に4
    スタート時のライフが20です。
  ……どの辺を見ればそれが分かるのかも合わせて紹介しておきましょうか。
  個人的には自力で調べて欲しい気持ちもありますが。

  一行空けたので、その隙をついて調べてみてくださいねw
  では答え行きましょう。
  数箇所にわたっているのですが、ID:0123とID:0205です。

  詳しく行きましょう。
  まずID:0205の中身から見ていきましょう。スプライトを編集。
  スクリプトのあるイベント、2つありますね?
  まず下のほうを見てください。
  _root.startlife=20; ってなってますね。これは見たままの意味です。
  じゃあ、その下の_root.d3とかは?
  これは上から順にショボーン、ウワァァン、イクナイのダメージ量です。
  数字の配分が微妙だと思った人は、d1やd5などに何が入るのかを考えてみましょう。

  では同じ要領で上のイベントも見ましょう。
  何やら長ったらしいですが、見覚えのあるのが並んでいます。
  特に説明の必要はありませんねw

  ……それでは。
  もう一ヶ所確認してみましょう。
  まずイベント画面(ParaFla!の画面右側)を最初の画面(_root)に戻してください。
  オレンジの部分をダブルクリックしてみればいけるかと。
  そしていっぱいイベントありますが、その中でID:0123のものを探してください。
  それをダブルクリックしてください。
  すると何やら出てくると思います。スクリプトを編集しましょう。
  その中に、if (_root.life>100) _root.life=100; って部分がありますよね?
  これ、分かりますよね。
  最大ライフをここで設定してるんです。
  特に変更したくない場合はスルーでOKですが、変更する場合は値を2つとも同じように変更しましょう。
  このASの意味なんですけど、じっくり読んでみてその内容は読めても理解しがたいかもしれません。
  日本語にすると「もし、_root.lifeが100より大きければ、_root.lifeを100にする」ですね。
  なんのこっちゃ。
  理解できた人はいいんですけど無理だった人には説明してみます。

  いいですか。
  ダン☆おにでイイとかの判定を出すとライフが回復していきますよね。
  多くの作品ではライフバーでライフ残量を表現してますが、内部では数値で処理してるんですね。
  その一部がさっきのASです。
  さて、さきほどのASが無かったとしたら一体どのようなことが発生するのか。
  ……イイを出せば出すほど、ライフに回復量分の値がプラスされていきます。
  それはいずれ本来最大量として設定した値を上回ってしまうでしょう。
  ところが、「100より大きくなった値は全部100にしてしまう」というASを仕組んでおけば。
  ライフが99の状態で2足されようとも、101にならずに最大値である100に収まるわけです。
  最大ライフを先ほどのASで制御するのはそのためですね。
  ここの数値を200にすれば、まぁどうなるのかは予想がつくでしょう。
  そんな感じです。

2.最大ライフの変更方法(ゲージの方)
  さて、AS関連は一通り設定できました。
  ですが今の状態では、実はまだ最大ライフを設定できているわけではないんですね。
  もう一つ大事な仕事が残っています。
  それはゲージ。ライフゲージの方も最大ライフの値に合わせて調整してやら無いといけません。
  早速見てみましょう。

  ID:0123[■ライフ]のスプライトを編集します。
  画面右をご覧下さい。
  上から順に、「ライフゲージの枠」「黄色いの(ライフバー)」「MAXゲージの文字」「また黄色いの」ですね。
  ぱっと見てこれが何を意味しているのか理解できた人は正直作成講座を読まなくてもいい気がします。
  何が起こっているのか上手く説明できない人が多いと思います。
  一回プレビューで見てみましょうか。

  ……ライフがものすごい勢いで増え、ほんの一瞬文字が見えてループする。
  そんな感じだと思います。おかしい。こんな挙動、ゲーム中に見たこと無い!!

  そう思われるのは当然で、実際こんな動きはゲーム中見られません。
  じゃあ何なんだということですが、ポイントは2つ。
  まずは上から2番目のイベントに注目。
  こいつの「カウント」が99になってますね?
  つまりこのイベント、99フレームも使っているわけです。
  さらに、それによってこのID:0123のスプライトは全体で100フレーム使うイベントになってます。
  ……100? どこかで見た値だなぁ。
  そうです。
  この「100フレーム」という値がそのまま「最大ライフは100」という値につながるのです。
  どうつなげているのか?
  それは別のASを見ることで確認できます。
  先ほど最大ライフを設定する時に見たASをもう一度参照しましょう。_rootのID:0123です。
  その中にGotoAndPlay(_root.life);という記述がありますね。
  (あんまり正しくない表記らしいですけど、その辺は割愛します)
  これこそがダン☆おにのライフ表示の最大のポイント。
  何が起こっているのか。
  このgotoAndPlayが、「どこに」goして、「何を」Playするのか。
  まずは、「どこに」go? という疑問点。
  これは行き先が表記されていないため、「自分自身」に向かいます。
  今回の場合はID:0123のスプライトに向かいますね。先ほど見たものです。
  そこで「何を」Playするのか。
  ASを見るに、_root.lifeというのが関係しそう。これはライフの残量を表してますね。
  そして、このgotoAndPlayっていうASは、行き先として「値」か「ラベル」を設定します。
  今回は「ラベル」ではなく「値」です。
  なぜか。それは_root.lifeってのは見た目は文字ですが、中身は値になってるからです。
  じゃあ、その値を使ってどういう行き先になるのか。
  例えば_root.lifeが45の時には、ID:0123の45フレーム目にgoしてPlayします。
  45フレーム目っていったらどの辺でしょうか。
  先ほどと同様にプレビューで見て、いいところで止めたり調節してみましょう。
  ……ちょうど真ん中あたりでしょうか。(最大が100なら)
  そうです。
  目まぐるしく_root.lifeの値が切り替わるのに合わせてライフゲージも増減するわけです。
  この仕組み、理解できました?

  では本題。
  結局ID:0123のスプライト編集、どこをいじれば最大ライフが変更できるのか?
  答えは99フレーム分あった上から2番目のイベントです。
  ここの値を199にすると、合計フレーム数が200になりますよね?
  はい、これで最大ライフが200になりました。
  この値はASの方で決めた値と同じにしましょう。
  勘違いしてはいけないこととして、「合計」が同じになるようにするということ。
  増やしたり減らしたり自由自在ですよ。

3.変更する利点
  そもそも何のためにこの値を変更する必要があるのか。
  まぁ特に無いと言えばないですし、あると言えばある。
  人それぞれなんですよね。
  ダメージと回復量と最大ライフの割合を設定する中で、整数では扱いきれなくなった時に役立つ……
  そんなところでしょうか。
  全ての値を5倍したとしても結果として起きることは何一つ変わりません。
  算数的に利点を理解できない場合は無理してする必要の無い内容かも知れませんね。


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