アットウィキロゴ

基本ギミック集

とりあえず要望があったものや、簡単で重要なことから追加する方向で。
ごちゃごちゃしているので、わかりやすく書き直したりスクリーンショットの追加などしてくれる方を歓迎します。
公式がゲーム内にサンプルのアップロード機能を追加してくれると非常に助かるのですがorz


  • 何かのイベントを一回だけ発動させる(難易度E(簡単)、重要度S(超重要))
  • バイクが指定位置に来たら大火災発生(難易度E、重要度S)
  • 起動後一定時間後に停止(トリガーならなんでもOK)(難易度E、重要度A)
  • 移動しない物体を回転モーターで回す(難易度E、重要度S)
  • 有効などの設定を変数データソースに出す(難易度:D、重要度:A)
  • 鉄球をコントローラーで操作する(フォースを使用)(難易度D、重要度B)(2012/05/16)
  • UFOやヘリコプターをコントローラーで操作する(フォースを使用)(難易度D、重要度C)(2012/05/16)
  • FPS視点のキャラクターや飛行機をコントローラーで操作する(フォースを使用)(難易度C、重要度B)(2012/05/16)


■何かのイベントを一回だけ発動させる(難易度E(簡単)、重要度S(超重要))
インパルスの経路:
インターバルトリガー > 何かのイベント > 該当オブジェクト

設定例:スタート直後にライトをつける(画像右)
インターバルトリガー 間隔:1 Nインパルス後に無効化:ON フィルターを状態イベントへ
ライト 適当な場所に配置 > 光源の設定>ライトを有効化:OFF
状態イベント 有効:ON ターゲットをライトへ 

解説:
インターバルトリガーの「Nインパルス後に無効化」をONにすると、指定した回数(デフォルトでは1回)のみトリガーが発生します。あとはサウンドを鳴らすなどの効果を発生させて終了です。発動を遅らせたいならば「開始時間」の数値を0以上にすれば、その分だけ遅らせることができます。。
「サウンドソース(ループ)」で鳴らした音を消したり、自動で消えない火を消化したい場合は、追加で終了処理が必要です。
なお、上記の例では「状態イベント」を使用しましたが、ライトならば「ライトイベント」というように、対象によっては複数から選べるものもあります(画像中央)。

使用例:
主にスタート直後にトリガー&イベント>イベントの項目を一回だけ発動させる時に使います。
あまりコースに組み込むためには使いませんが、いろいろ自作のギミックの動作テストをする時などに、何かトリガーがないと発動しないのでこの方法を使うこともあります(いろいろ方法はあるので好みで)。

■バイクが指定位置に来たらイベント発生(難易度E、重要度S) (2012/05/26)

設定例(大火災エフェクトを発生させる):
エリアトリガー(接触時:「エフェクトイベント」)
エフェクトイベント(イベントターゲット:エフェクト(大火災))
エフェクト(大火災)(有効:OFF)

解説:
大火災エフェクトは配置した時点で燃えてますが、途中から燃やすために有効:OFFで発動を停止させておきます。
ライダーやバイクがトリガーに接触すると、インパルスがエフェクトイベントに伝わって、ターゲットの大火災エフェクトをONにして燃え始めます。
エフェクトイベントの代わりにサウンドソースとサウンドイベントにすれば、ライダーが接触した時に効果音が流れます。
ライトオブジェクトとライトイベントなら、ライトが点灯します。

エリアトリガーはイベントを発生させるための基本パーツです。
今回は簡単な例でしたが、バイク以外のオブジェクトで反応させたり、何回も使いまわしたりと凝ったコースやスキルゲームを作りたいならば、覚えることはたくさんあります。


■起動後一定時間後に停止(難易度E、重要度A)(2012/05/26)

設定例:ライトをつけて1秒(60フレーム)後に消す
インターバルトリガー(間隔:1、Nインパルス後に無効化:ON)
ライトイベント(タイプ:オン)、ライトをターゲット)
遅延フィルター(遅延時間:60)
ライトイベント(タイプ:オフ、ライトをターゲット)

ライト(光源の設定>ライトを有効化:OFF)


解説:
ライトをつけた後、遅延フィルターの指定時間後にライトイベント(オフ)にインパルスが伝わってライトが消えます。
遅延フィルターの指定時間を30ぐらいにすれば、一瞬だけ点灯して消えるフラッシュ処理になります。
インターバルトリガーの無効化をOFF + 間隔を120にすれば、1秒ごとに点滅を繰り返します。

ライトでなくサウンドソースとサウンドイベントならば、長めの効果音を途中で打ち切る効果があります。
また、物理イベントならば一定時間だけオブジェクトを落下させて止めたりと、いろいろ応用が利く重要な基本ギミックです。

なお、画像だと遅延インパルスが右にずれていますが、「ライト(オン)」のインパルスの経路先が「遅延フィルター」か「ライト(オフ)」かわかりやすくするためのものです。
複雑なギミックを作る場合、パネルを全部直線に並べると経路が紛らわしくなります。ある程度ジグザグに配置するのも接続ミスを無くすためのテクニックです。

■移動しない物体を回転モーターで回す(難易度E、重要度S)
インパルスの経路:
なし、タイヤなどの回すものと軸が物理ジョイントの軸でつながっています

設定例:
物理ジョイント プロパティ:詳細 ターゲット1と2にオブジェを指定 衝突を無効化:ON 回転動作の設定> 下限X:0 回転モーター>有効:ON
軸にしたいオブジェを配置 個人的にはダミーオブジェ(表示なし、物理法則なし)でやってます
回転したいオブジェを配置 > 物理法則:ON 物理法則詳細:重力:OFF(推奨)

解説:
「高度なサンプル」の「回転するタイヤ」や「複雑なサンプル」の「列車」を参考にしてください。
前作のヒンジは今回は物理ジョイントにまとめられて、プロパティでタイプを設定する方式になりました。
回転軸が微妙にずれるので、手動で微調整が必要です。
みんなが試行錯誤で安定した方法を模索している最中です。
面倒でもオブジェ位置イベントで直接角度指定して回転させた方が安定するようです。
なお、回転モーター設定の「ターゲット速度」は最高速(マイナスにすると逆回転)、最大フォースはモーターの馬力みたいなものです。最大フォースを大きくしても最高速までしか上がりませんし、重い物体を回すなら最大フォースを上げないとパワー不足で最高速まで達しません。

■有効などの設定を変数データソースに出す(難易度:D、重要度:A)

解説:
オブジェクトやイベントのプロパティでチェックボックスのある項目は、Yボタンで値オブジェクトを選択できるものが多いです。チェックボックスはチェックがついている状態が「1」(true)、ついてない状態が「0」(false)です。
ここで変数データソースを値オブジェクトに選択することによって、数値設定イベントで変数データソースの値を書き換えることで、オブジェクトやイベントの項目を設定や参照ができるようになります。
例えば、オブジェクトの「表示」と「物理法則」とイベントの「有効」を一度にON/OFFできるようになります。
また、汎用フィルターと組み合わせて、インターバルトリガーが有効(変数データソースが1)の場合にだけ、ある処理をするといった使い方もできます。
コース設定でゲームタイプをスキルゲームにして、カウンター設定に変数データソースを選択すれば、テストプレイ中に値のチェックも可能です。


■鉄球をコントローラーで操作する(フォースを使用)(難易度D、重要度B)
サンプルコースのS.P.H.E.R.E Exampleにそのまま載っているので、コピペでも構いません。
原理は、「コントローラー - スティック」の各パネルでスティック押し続けている時にエリアエフェクタ(動的オブジェを指定)をON、離した時にOFFにしているだけです。
ただしこの方法は平行移動だけでOKの鉄球向きで、、FPSのように旋回する必要がある場合には別の方法が必要です。


■UFOやヘリコプターをコントローラーで操作する(フォースを使用)(難易度D、重要度C)
サンプルコースのUFO Exampleにそのまま載っているのでコピペで構いません。
あまり応用できないので重要度は高くないですが、もちろん該当の乗り物を動かしたい人には重要度Sです。
特にUFOやへりに興味が無ければ、このサンプルよりはFPSのサンプルを流用したほうが汎用性が高いです。

やってることですが、常に前傾した状態で機体の上部にフォースをかけることによって、上に行くフォースと前に行くフォースを1つのフォースで同時に行っています。後退したいときは後傾(ウイリー状態)にするだけです。速度や高度の調整は、前傾の角度と(斜め)上にかけるフォースの強さで行っています。
スキルゲームで公開されているユーザー自作のヘリコプターは、このサンプルにカメラ位置を機体後方にしてFPS視点サンプルコースの原理で左右移動と旋回を追加したものが多いです。

問題は機体の挙動が安定しにくい点で、プレイヤーが動作原理を知っていないと、まともに飛ぶことすらできません。
前傾の角度を緩めることで飛びやすくはなりますが、安定飛行したいならば他の方法をとった方が無難です。


■FPS視点のキャラクターや飛行機をコントローラーで操作する(フォースを使用)(難易度C、重要度B)(2012/05/16)
サンプルコースの一人称視点ゲームのサンプルに載っています。
結構複雑な仕組みですが、スタートポイントと直結しているカメライベント以外は全部無駄なく使ってるので、丸ごとコピペで構いません。
文責が使っているシステムと違うので断定はできませんが、少し改良することで飛行機に使え(宙返りは無理かも)、ジャンプの代わりに上下移動を追加すれば安定したUFOやヘリに使えると思います。

キャラクター:
見えない鉄球が本体(ゲームキャラクター)です。重さが50kgとかなり重いのでジャンプ用に巨大なエリアエフェクター(上矢印)が設置されています。
障害物との当り判定や、基本的な位置決めの基準になっています。
このように、見えないオブジェを本体にするテクニックは使い勝手がいいので、覚えておいて損はありません。
当り判定がいらない場合は、ダミーオブジェを使ったり、物理法則タイプを装飾にしたりして調整します。

視線移動:
2つの「ゲーム変数データソース」で右スティックの上下と左右を分担して、角度を増減させています。
スティックの値は3から-3で、スティックを離している時は0なので、現在の角度に0を足すことになり何も起こりません。
割る2で速度調整(旋回速度が半分)とか、マイナスを掛けて調整するとか、85度以上にはしないように制限とかの計算をした後、位置イベントにローカル座標で角度を入れています。
位置イベントの対象ですが、前後左右移動用のフォースとカメラだけで、本体の鉄球には行っていません。

本体の前後左右移動
左スティックの前後と左右の値をそれぞれのフォースと連動させることで、その方向に本体鉄球をフォースで動かしています。
本体が重いので、かなり大き目のフォースにしています(フォースの初期値が100で今回は1923*最大3)。
また、本体の位置を参照して前後、左右、ジャンプ用の各フォースとカメラも連動して動かしています。

Yボタンでジャンプ:
巨大なエリアエフェクター(有効:OFF)をYボタンを押した時だけ状態イベントでONにして上昇し、遅延トリガー>状態イベント(OFF)で一定時間後にまた無効にし、後は重力に任せて着地しています。
エリアエフェクターは有効範囲が限られているので、オブジェクト位置イベントで本体鉄球のY軸+1の位置に絶えず移動するように設定されています。
あと、「コントローラー(Y)」パネルに衝突トリガーと状態イベントがありますが、これはYボタン連打で無限に上昇するのを防ぐためのものです。
一緒にくっついているフォース以外のオブジェクトに本体が触れていない時は、Yトリガーの有効をOFFにしてYボタンに反応しないようにしています。

タグ:

+ タグ編集
  • タグ:
最終更新:2012年06月02日 14:35
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。