上に戻る
風情 エリア配置のコツ
(補足:2008年3月29日)
 バージョン0.03でエリアの見かけが変わりました。
 以下の図は、バージョン0.02のもので、若干見かけが異なります。
 T字であることは間違いないので、適当に置き換えて見て下さい。
エリアって?
 エリアは、CPUマシンの挙動と、壁に当たったとき跳ね返る方向を指定するものです。
 プレイヤーもCPUマシンも、いつも「今のエリア」と「次のエリア」の間に居ます。
エリア概要
こんな感じで
壁に当たったときの跳ね返り
 もし壁に当たると、「次のエリア」に向けて跳ね返ります
前反射
「ぼふっ」と
 が、もし逆走していると「今のエリア」の方に跳ね返ります。
(※「逆走」基準は良くわかっていないですが……)
後反射
これがピンボール現象の正体……
 ちなみに、市街地など「マップ外部」も壁扱いです。
 壁の上に着地→大破 ということです。
エリアの更新
 1個目を除く全ての「エリア」には向きが必要です。
エリア
T字の足の方向が進行方向
 エリアの更新は「次のエリア」の進行方向に車体があるとき、及び、「今のエリア」の逆走方向に車体があるときに行われます。
 上図のようなエリアを考えたとき……
 車体が、緑のところにあればエリアが1つ進みます。
 オレンジ色のところにあると、エリアが1つ戻ります。
エリア更新する場所
常に、こういうスキマに居るのが好ましいかと。
ついでに、「オレンジ」かつ「緑」のようなところ(この図なら、図の外部、右下のほう)には行けないことが望ましいかと。
エリアがズレると悲惨なことに……
 実は、このソフト初回公開版のサンプルには不具合があります。
 以下のようなマップです。
失敗作
うわ、なんか画像がでかい^^
 一見して問題ないように見えますが、このカーブでインを攻め、その後右に走行しているといきなり逆走判定になり、さらに次に壁に当たったときに、ドンドン壁にめり込んで車体が大破するというものです。
 これは、「今のエリア」が想定とズレてしまったため起こった現象です。
 なぜこの「エリアズレ」が起きたのでしょうか……?
 特に問題があるエリアはこいつです。
ダメなやつ
犯人
 こいつのエリアが更新される範囲に色を塗ると……
ダメなやつの更新範囲
こっそーり……
 なんと、インベタ走行すると図のように範囲に入らずにコーナーを曲がることが出来ます。
 もちろん、エリアの更新はされません。
 ですので、「今のエリア」は
結局の現在エリア
お前は……悪くない……
 これのままです。
 さらに右に走行を続けます。
逆走開始の図
オレンジに突っ込む
 「今のエリア」の逆走方向の範囲に入ってしまいました。
 もうこうなるとどんどん不具合は凄惨な方向に向かっていく……というわけです。
 そして、発症するのは壁に当たったとき。あらぬ方向に跳ね返り、そして……というわけです。
 このような「エリアズレ」を起こさないようにエリアを配置する必要がありそうです。
 今回の問題は、問題のエリアの位置を少し移動すればよさそうです。
修正例
もうちょい下でもいいかも……

 また、ジャンプを置くときは、変なところに着地できないようにしないと、同様の不具合を招くのは見当がつく思います。
 というか、実際の製品で、強制送還マシンがあるのは、この不具合を起こさないようにです。
 実は、製品版でも、とある場所でめり込み現象を起こすことが出来るようです。
以上を踏まえて、一例
90°コーナー
 
 このような90°コーナーを考えます。
 左から来て、上に走っていくことにします。
 模範(?)例は以下のようになります。
模範例
模範……なのか?
・1つめと3つめは、ややコーナーから離して置く
・2つめは、45°の線の延長戦がきちんとコーナーの角に突き刺さるように置く
 がコツです。
 悪い例を挙げます。
ダメな例
 
 2つめは別に良いのですが、1つめ、3つめはコーナーからもう少し離さないとダメです。
 1つめに対して、エリア更新範囲に色を塗ると……
ダメな理由
うぉぉぉぉ
バリバリバリバリぃぃ……ってか
ともあれ、ガードの上は走行可能なことに注意です
 これは事故を起こしそうですね^^
 まぁ、ダメージゾーンを突っ切る走行をする人は居ないとは思いますが、この後左方向に曲がるとしたら、不具合がおきそうです。

 180°カーブでも同様ですね。
 模範(?)例。
180°例
 
 悪い例。
180°ダメな例
 
 これは間違いなくダメですね。
180°ダメな理由
 
 こう通行するだけで不具合発動です。

 全体的に「そのエリアに垂直な線の延長がカーブの内側に突き刺さっているか」が大事なような気がします。
 45°ずつ向きは変えたほうがいいかもしれません。
 サンプルコースを参考にしてください……といいたいのですが、実はかなり多くの箇所でエリアズレを起こす可能性があります^^
 ジャンプには特に注意が必要のようです。また、2段ジャンプにも注意です。
 さらに「逆走ジャンプ」にまで気を使わないといけないようです。
最後のエリア
 最後のエリアは、1番目のエリアとピッタリ重ねて、右向きに置くのがいいかと思います。
周回変更
 周回変更は、1つめのエリアのみが決め、他のエリアは全く関係ありません。
 1つめのエリアにより決まる「赤線」を左から右に踏み越えたとき周回が+1され、逆に超えると−1されます。
 周回変更したからといって「今のエリア」がリセットされたりはしません。
CPUマシンの挙動
(追記:2008年3月29日)
 バージョン0.03でイロイロ追記されています
 エリア編集【パラメータ設定】において、CPUマシンの挙動をセットすることが出来ます。
 まず、CPUマシンは、3タイプに分類されるようです。
 「名有りマシン」「紫など」「緑など」です。
 名有り・紫・緑はそのままですが、黄色や点滅マシンは、後ろ二つのどちらかになるようです。
(よくわかってないのよ^^)
 基本的に、CPUマシンは、「次のエリア」に向かって走行します。
 しかし、この3タイプそれぞれに対して、「次のエリア」から少し横にずらした位置に向け走行させることが可能です。
 まぁ、うだうだ言っていてもわかりづらいので……下図を見てください。
走行位置
良く見ると、「青」「紫」「緑」のポイントが、
それぞれのエリアに割り当てられています。
 「青」が「名有りマシン」、「紫」が「紫など」、「緑」が「緑など」の走行位置を表します。
 このような設定を行うと、「名有りマシン」は、ピットエリア(に見えないけど)を走行し、「紫など」は道のセンターを、「緑など」は画面下側を走行することになります。
 この設定は、エリア編集【パラメータ設定】において、設定したいエリアを選んだ後……
 「名有り」……I/O
 「緑など」……K/L
 「緑など」……,/.
 キーを押すと設定できます。キー操作を覚える必要は無いです。画面下部に表示されているので。

 なんで「走行位置」なんていう一番わかりづらいのを最初に説明したのかはわかりませんがw
 もっとわかりやすい項目に、「速さ」と「旋回性能」があります。
 これらも上の3タイプの分類別にセットすることが出来ます。
 0が一番劣っており、3が最も優れています。
 これらも、設定したいエリアを選んだ後、画面下部に表示されているキー操作をすることで、設定することが可能です。
 速さ3はあまり使わないほうがいいかもしれません。
 マスターの「名有りマシン」に速さ3をセットしてしまうと時速478kmで走行してしまうようです。追いつけません。
(サンプルでは平然と使ってますけどね……)
 旋回性能はお好みで設定してください。3にすればかなりの急カーブでも曲がってくれます。

 さらに、各エリアには、まだパラメータをセットすることが可能です。
 「1」〜「3」キーでOn/Offを切り替えます。それぞれ説明します。

「1:マシンごとにずれた位置を走行」(デフォルトOn)
  これをOnにすると、上の3タイプ分類が同じだったとしても、若干マシンごとにずれた位置を走行します。
  通常はOnにしておいたほうがいいと思います。極めて正確なマシンコントロールが要求される場面ではOffにするといいと思います。

「2:好成績者がワープ」(デフォルトOn)
  「自機の背後、かつ、この設定をOnにしたエリア」には、好成績者がワープしてくる可能性があります。
  全てのエリアでOffにしても、グダグダな展開になるだけなので、素直にほぼ全てのエリアでOnにします。
  唯一、Offにすべき場所があります。それは、分岐です。別れた道両方とも、別れている間はOffにしておかないとイロイロまずいことがおきます。

「3:スタート直後には直進」(デフォルトOff)
  レース開始直後にスタートラインに並ぶCPUマシンは、これがOnのエリアの間直進します。
  ただし、何かに衝突するとこの状態は解除されます。
  ホームストレート付近のエリアは、コレをOnにしておかないと、スタート直後にCPUマシンが「もめて」しまうようです。
分岐
 まず、簡素的な分岐を考えます。
 分岐というよりも、道がいったん左右に分かれ、平行に走行し、すぐ合流する感じ……
簡素な分岐
まぁ、あまり面白い分岐とはいえないかも……
 こういうものを考えます。
 道を隔てるものは、「壁」ではいけません。(上の例ではガード。ダートでもいい)
 こういう簡素的な分岐では、前述の、CPUタイプごとの走行位置を別の道にセットすればOKです。
簡素分岐に対する対応
この例では、「名有り」は上の道を、「紫など」「緑など」は下の道を走行します。
 この分岐方法は、製品のコースでも1箇所使われています。さぁ、どこでしょう?

 さて、以上述べたものだけでは、あまりいろんな分岐を作ることが出来ません。
 本格的な分岐を作成するには、ちょっと手間が必要です。
 また、この「本格的な分岐」は、各コースで1箇所しか使えません。
 それでは、「本格的な分岐」の作成方法を、具体例を上げて解説します。
 以下のコースを考えます。左から来て、右に走りぬけるコースだと考えてください。
本格的な分岐
なんか、幅が広いってだけで上の例との違いがわかりづらいですね……
 「本格的な分岐」では、分岐路間に壁を設けたり出来ますし、もっとグネグネいろんなところを回った後で合流してもかまいません。
 「本格的な分岐」では、どちらか片方を「通常道」、もう片方を「わき道」とします。
 この例では、上を「通常道」、下を「わき道」とします。
 さて、分岐を作るには、「分岐」状態を走行マシンに知らせるチップが必要です。
 fzeeclipフォルダの、
 _BranchMain.fzeeclip
 _BranchByway.fzeeclip
 を利用してください。
 まず、「通常道」の入り口と出口に、「_BranchMain.fzeeclip」で取得できる「M」と書かれた路面を配置します。
「通常道」の入り口を指定
わかりづらいですが「M」と書いてあるのです……
 続いて、同様に「わき道」の入り口と出口に、「_BranchByway.fzeeclip」で取得できる「B」と書かれた路面を配置します。
「わき道」の入り口を指定
またまたわかりづらいですが「B」と書いてあるのです……
 最後に、「わき道」に居る間にぶつかる可能性がある全ての壁に「_BranchByway.fzeeclip」で取得できる「B」と書かれた壁を配置します。
B壁配置
「斜めの位置」にもおいてやら無いとダメです。厚めに。
 以上で、マップのほうは準備完了です。続いて、エリアの配置に取り掛かります。
 まず「通常道」の方に、普通にエリアを配置します。
「通常道」エリアを配置
まぁ、普通におきます
 続いて、「わき道」にもエリアを配置します。
 「Shift+Ctrl+クリック」で、「わき道」用のエリアを配置可能です。
 (とりあえず「サブエリア」と呼ぶことにした。対比して、今までのエリアを「メインエリア」と呼ぶことにします。)
 これを利用します。
サブエリアを配置
ぽんぽん……と、これも普通に
なにやら青い線が沸いてきました……
 最後に、分岐を開始する(メイン)エリアを選択した後で、「B」を押します。
分岐開始エリアを指定
青い線が移動します……
 実は、分岐している間のエリアとサブエリアの数はそろえることが望ましいようです(良くわかっていない)
 青い線は、番号が一致するエリアとサブエリアが結ばれます。
 上の例だと、数が揃っていません。ちょっと修正します……
サブエリアを修正
この場合は道が対称ですし、青線はまっすぐにしちゃいました。
実際は複雑な分岐にすると、こうはならないと思いますが……
 ちゃんとサーキットにした後、プレイすると、ちゃんと分岐が作成されていました。
 「ちゃんと分岐が作成」というのは……
(1)CPUマシンが分岐してくれる
(2)どちらの道を通っても、通行中に壁に接触したとき、きちんと跳ね返る
 ……ということです。
 たとえば「B壁」を配置し損ねていると、「わき道」の壁にぶつかったとき、「通常道」の方にどんどんめり込んでいってしまいます。
 実行してみたら、なかなかCPUが右(下側)のコースに行ってくれないという問題がありました。その辺は微調整ですかね……
入り口を修正
まず、マップをちょっと改造して、分岐開始エリアギリギリまで「M」「B」路面を引っ張りました。
で、さらに、直前のエリアでわざと位置をずらし「揺さぶり」をかけてやりました。
 これで、まぁ、大体均等に左右に行くようになった様な気がします。
 正直、分岐について詳細な動きはわかっていないのですが、大体設置すればうまく行くようです。

 以下、分岐に関する仕様を「予想」します。
(1)エリアには実は2系列ある。
  ○メインエリア系列
  ○サブエリア系列
  メインエリア系列は、まぁ、メインエリア0番から最後のメインエリアまでですね。
  サブエリア系列は……
  「メインエリア0番」→「分岐開始メインエリア」→「サブエリア0番」→「サブエリアの最後」→
  「(説明が大変ですがw)(分岐開始メインエリアの番号+サブエリア最後の番号)のメインエリア」→
  「メインエリアの最後」
  です。まぁ、メインエリアの途中を、サブエリアに入れ替えたものですね。
  ……説明があまりにアレなので、図を描いてみたが、果たして理解の手助けになるか……
エリア図
赤が「メインエリア系列」、緑が「サブエリア系列」
数字はテキトーです。
(2)各マシンには、(1)のどちらの系列をたどるかという指定がある
(3)もし、「M」「B」の床を踏んだとき、その指定が対応するほうに入れ替わる
(4)壁に当たったときは、その壁に対応するエリアの方向に飛ばされる?
 まぁ、あくまで「予想」ですけどね……


 もうちょっと積極的に書き換えてみた例。
積極的に分岐
 コースファイルを置いておきます。こちらからどうぞ。
 適当に、region0.txtとかリネームして、workingフォルダにぶち込んで、梱包してみてください。
(大事なデータを上書きしないように^^  関係ないのだが、分岐のことはbranchとは言わないのだろうか……)

 ともあれ、以上で分岐は作成可能だと思います。
 うまく行かなかったら調整しつつやってみてください。
 ちなみに、エリアは、メイン・サブエリアあわせて255個くらいしか置けません。
 うーん、合流した振りをして、実はまだ分岐が続いている……という仕様にすれば、2箇所以上分岐を作れるかな……?
(54)2008年2月6日 プレさ兵衛
(151)2010年11月7日 改:配布物のURLを変更
(63)2008年4月6日 改:主に、エリアパラメータの項目と、分岐の項目を改訂
inserted by FC2 system