001 はじめに
002 ゲーム作成
003 各種メニュー確認
004 「キャラクター」作成
005 「ステージ」作成
006 「デモ」作成
007 「テストプレー」
008 「ステージ」編集
009 「キャラクター」編集
010 パレット管理
011 アニメーション
012 「座標移動」
013 重力の設定
014 その他スクリプト
015 「リアクション」
016 ヒットエフェクト
017 スクリプトの並べ方
018 攻撃動作
019 「コマンド入力」
020 攻撃判定
021 やられ判定
022 やられ動作の設定
023 「タイトル画面」作成
024 タイトルカーソルの表示
025 「キャラクターセレクト」
026 各種インターフェイス
027 ラウンド関連の表示
028 CPUの動作指定
029 「ストーリー」の作成
030 ヒット数の表示
031 投げ技の作成
032 ゲージ消費技の作成
033 ステージの組み方
034 デモシーンの組み方
035 格闘ツクールの仕様
■ コマンド解説
001 画像呼出
002 座標移動
003 防御枠
004 攻撃枠
005 リアクション
006 サウンド
007 キャンセル条件
008 色変更
009 オブジェクト発生
010 変数による分岐
011 条件分岐:技中有効
012 条件分岐:基本分岐
013 条件分岐:ランダム分岐
014 条件分岐:コマンド入力
015 スクリプト移動: 移動
016 スクリプト移動: 呼出
017 スクリプト移動: ループ
018 座標・画像変更
019 スクリプト変更
020 スペシャルゲージチェック分岐
021 ライフゲージチェック分岐
022 ゲージ変更
023 パレットアニメ・揺らし
024 停止
025 残像
026 終了
■ テクニック解説
002 画面レイアウト
003 カラーセレクトの設定
004 ヒットエフェクトの研究
005 ヒットエフェクトの描き方
006 スクリプト一覧のテキスト化
007 通常立ちの設定
008 VSで開始位置指定
009 雛型キャラの作成
010 INIファイルの内容
011 変数の大小チェック
012 当て身投げの作り方
013 必殺技コマンドの設定
014 アニメ作成_通常攻撃
015 ゲームモードによる分岐
016 変数の一覧を記録
017 受け身入力の判定
018 ダウン値による分岐処理
019 飛び道具の作成
020 ワープ技の作成
021 ヒット硬直のコントロール
022 ステージの地面表現
023 ヒット数表示の固定
024 横方向のホーミング攻撃
025 1P/2Pの判別
026 ライフ減少アニメ
027 画面下部の表示内容
028 ステータス表示の意味
029 ガードクラッシュの表現
030 押せないOBJ
031 アイテムのあるゲーム
032 復活する技の作成
033 空ガードの作成
034 ステージ選択付きキャラセレ
035 ゲージMAXの表示
036 固定ダメージを表現する
037 ラン動作の作成
038 投げ技によるKOの作成
039 ボタン溜め押し技の作成
040 中段攻撃の作り方
041 製作に役立つツール
042 カラーセレクトに適した画像
043 相手によって動作変更
044 横幅のあるキャラを表現
045 ラウンド限定の動作
046 影色の塗りを効率化
047 モードを切り替えるキャラ
048 当たり判定設定のコツ
049 空中ジャンプを表現する
050 キャラの向きを判別する
051 途中でKOしない乱舞技
052 カウンターヒットの作成
053 OBJの動作を停止
054 ハイジャンプの作成
■ バグ・よくあるミス
Q_A よくあるミスQ&A
001 消せない画像
002 リスト選択とキーボード操作
003 アニメプレビューで落ちる
004 起動直後に落ちる
005 OBJ発生位置がずれる
006 着地すると技終了
007 画面端でのヒットバック1
008 グラデーションが汚い
009 画面端でのヒットバック2
010 境界のアンチエイリアス問題
011 ガードされてもキャンセル可能
012 プレーヤーの読込に失敗
013 謎の残像が発生する
014 コマンドが左右反転する
015 パレット管理でよくあるミス
016 下溜め技が失敗する
017 パレットウィンドウで落ちる
018 コンボが途切れない
019 やられ中にしゃがみ可能
020 ソフトのバージョン表記
021 空中でコマンド左右反転2
022 左右押しでガード前進
023 真空投げが発生する
024 空中でコマンド左右反転3
■ テスト時のチェック項目
■ 解説用データ ダウンロード
025
1P/2Pの判別
2D格闘ツクール関連のテクニックは色々ありますが、
それらの中には1P/2Pの判別が必要なものも多いです。
そこで今回は、
色々と便利な1P/2Pの判別テクニックについて説明していきたいと思います。
作成する内容の確認
まずは、今回作成する処理の内容について確認しておきます。
ゲーム実行画面です。
1P、2Pとも同じキャラを使用していますが
足元を見ると、影の代わりに1P・2Pの表示があります。
考え方
1P/2P判別の考え方についても説明しておきます。
以下の画像を見てください。
赤色の枠で囲んであるのが、
キャラのスクリプトによって表示されている部分になります。
画面左上、右上を見るとキャラの
顔グラフィック( ステージフェイス )が表示されています。
キャラ自体は画面内を動き回りますが、
これらステージフェイスは常に同じ位置にあります。
( レイアウト設定にもよりますが「左上に1P、右上に2P」 というのが一般的 )
この性質を利用して1P/2Pを判別するのですが、
2D格闘ツクールの変数には丁度
キャラ・OBJのX座標を取得する機能があるので、これを利用します。
2D格闘ツクールのゲーム実行画面は 幅が640なので、
「ステージフェイスのX座標が250より大きいかどうか?」
あたりを基準にすると良いでしょう。
先に「ゲームシステム」−「基本イメージ」でステージフェイスの
レイアウト設定を済ませておいてください。
MEMO
「変数使用」によるデータ取得
変数による分岐命令で「変数使用」をONにすると
様々な変数値を参照することが出来ます。
中には、X座標やY座標などデータ的なものもあるので
うまく活用すると表現の幅が大きく広がるでしょう。
スクリプト作成
上で説明した処理を実際に組んでいきます。
「キャラクター」−「技」 に移動してください。
スクリプト解説
以下、ステージフェイス 行での大まかな処理の流れです。
なお今回はキャラ変数Fに1P/2Pの判別結果を記録します。
ステージフェイス用の画像が手元に無い場合は、以下の画像を使ってください。
※ゲーム用BMPは上記画像のリンク先にて提供しております。
番号 | 命令 | 設定内容 |
1 | タスク変数AでX座標取得、250より大きいなら 4 へ | |
2 | キャラ変数Fに0を代入( キャラ = 1P ) | |
3 | 5 へ | |
4 | キャラ変数Fに1を代入( キャラ = 2P ) | |
5 | ステージフェイス画像 WAIT = 0の場合、6 が不要 | |
6 | 5 へ |
1 で取得したX座標を基準にして、処理を分岐しています。
X座標が小さい( 1P )の場合は 2 で変数に0を代入
X座標が大きい( 2P )の場合は 4 で変数に1を代入が
2 〜 4 での変数記録が済んだら、
5 以降は通常通りステージフェイス表示の処理になります。
ここで注意するのが、判別結果が記録されるタイミングです。
ゲーム開始時から1P/2Pの区別を利用したい場合は、
判別結果が記録するまで待つ必要があります。
( 具体的には、処理の手前にWAIT=1以上の画像をセットすればOKです。 )
以上で1P/2P判別の仕組みは完成ですが
今回は、これに加えて処理確認のスクリプトを組みたいと思います。
以下は今回使用するグラフィックになります。
1P/2P表示
上が1P用、下が2P用となっています。
透明画像
※ゲーム用BMPは上記画像のリンク先にて提供しております。
「影」のスクリプトに移動したら、以下の処理を組んでください。
番号 | 命令 | 設定内容 |
1 | 透明画像 WAIT=3 | |
2 | キャラ変数F = 1なら、5 へ | |
3 | 「1P」の画像 WAIT=5 「キャラの向きを無視」 中心軸( 4, 40 ) | |
4 | 3 へ | |
5 | 「2P」の画像 WAIT=5 「キャラの向きを無視」 中心軸( 0, 40 ) | |
6 | 5 へ |
1ブロック目で1P/2P判別の取得を待つための
ウェイトを入れている点に注意してください。
( 最低でもWAIT=1以上待つ必要があります )
続く2ブロック目では
キャラ変数Fを見て1P/2Pでの処理分岐を行っており、
この後の「1P」「2P」表示へとつなげています。
テストプレーで処理確認
設定が済んだら、テストプレーで処理を確認します。
ゲーム開始。
キャラの足元を見ると、影の代わりに「1P」「2P」の表示があります。
表示が正しいことを確認するため、少しダメージを与えてみます。
格闘ツクールのメニュー表示をONにして
ライフを見比べてみると、画面上の1P/2P判別が正しいことがわかります。
以上、1P/2Pの判別について説明しました。
先述した通りこのテクニックは幅広い応用パターンがあるのでつ
色々試してみると良いかと思います。
なお、今回の説明内容について質問がある場合は
掲示板 にて受け付けておりますので気軽にお尋ねください。