XXX4Fans
シガタケ from fanbox
シガタケ

fanbox


(無料記事)StgBuilderの使い方-6(サンプル完成)

●StgBuilderの使い方(一覧)


ローカルにDL&解凍して、「サンプルSTG(VER.0.10)」フォルダを

「ShootingGameBuilder/samples」フォルダに移動した上で

「サンプルSTG(VER.0.10).sbd」を起動して下さい。

(サンプルSEとBGMを使用しています)

サンプルSTG(VER.0.10)

■ver.0.02からの調整・追加箇所

※最低限、スコアアタック作品と呼べるものになったので、一旦完成とします

・自機の性能を調整 Bボタンで低速移動を追加(UI表示追加)

・スコアシステムを追加(早期破壊でスコア倍率アップ)

・大型敵にHPゲージを追加 敵02(ピンク色)の追加

・オートデモの追加

・視認性を考慮して、キャラクタの表示優先を調整

 (倍率表示>敵弾>自機>敵02>敵01>大型敵>爆発)

・ランキング画面で、リプレイの存在しない項目で決定を押した際

 フリーズしていたのを修正(バグ修正)

・敵の出現位置が完全ランダムだったのを半ランダムに調整

・自機の当たり判定を追加(オプションで切換可)

・インターフェイス情報量をオプションで変更可

・ゲームプレイ中、セレクトボタンを押した時「RESET」表記を追加

・アイコン・スプラッシュ画像(起動画面)を追加


●「①保存されるシステム変数」と「②コンフィグ変数(カスタム)」の違い

共に「保存される変数」という意味では同じですが

①はリプレイ再生時に再現される変数

②はリプレイ再生時に影響のない変数(コンフィグ用途)

という違いがあります。

コンフィグ変数(カスタム)は「0~9」で10種使用可能です。

(今回はオプション項目「自機の当たり判定」でコンフィグ変数を使用しました)


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


※以下はサンプルSTGのソースを解析しつつ参照下さい

(大事な部分のみ解説しています。詳細はソースを確認下さい)


●敵(継承スクリプト)(スクリプト)

(タスク10)防御ヒット

 ショットが当たった時のSEと明滅


全ての敵キャラクタに「継承スクリプト」を登録する事で

共通のタスク(今回の場合、防御ヒット処理)を纏める事が可能


●敵(制御追加)(スクリプト)

・「敵の表示数」の書き換え

・「敵の総数」の書き換え

・スコア倍率カウント(時間経過で倍率ダウン)

・スコア倍率カウントの表示

・敵破壊時、倍率込でスコアに加算

の処理を担当。

敵キャラクタに「敵(制御追加)」を「子生成」

「制御.信号送信(シグナル)」を使って

「スコア・敵の数・カウント数・開始判定」を子に送信


全ての敵キャラクタに「敵(制御追加)」を「子生成」して

必要な情報をシグナル受送信する事で、共通の処理を纏める事が可能


●ゲージ01(スプライト)

今回は「UVスクロール」を使って

そのまま表示→HPゲージ100%

右方向にスクロール→HPゲージ現象(50ドットでHPゲージ0%)

となるよう画像を作成

(スケールを使う、パターンを使う等、HPゲージを表現する方法は複数あります)


●敵(HPゲージ)(キャラクタ)

☑色を親に同期しない

 敵キャラ明滅時、HPゲージがつられて明滅しないようにする

☑親の描画優先に影響を与えない(カスタム編集→初期優先「上空」)

 UIなので、HPゲージの表示優先を一番上(自機や弾より上)にする


●敵(HPゲージ)(スクリプト)

「大型敵」に「敵(HPゲージ)」を子生成

「最大HP」と「HP(毎フレーム)」を、子「敵(HPゲージ)」に送信

取得した最大HPとHPから、現在のHPの%を計算

現在のHPの%を元に、UVスクロールのU値を利用して表示


●敵02(スクリプト)

他の敵キャラと違い、画面外に逃げていくタイプの為

「(タスク02)消滅管理」を追加


●弾幕01(早→遅)(弾幕)

敵02の攻撃に使用

初弾の角度をキープしつつ、速度の異なる弾を連続で発射等

「攻撃.ショット」とは異なる設定で敵弾が作成可能


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


●「オートデモ」について

StgBuilderの標準機能の中に「オートデモ」がある

(タイトルで●●秒間、放置するとデモ開始)


・「オートデモ」の使い方

ゲーム設定→オートデモ ☑オートデモを使用する(☑を入れる)

リプレイファイル「replay****.bin」を

sbdファイル(●●.sbd)直下に移動

「demo00.bin」にリネームすると、「オートデモ」として参照される

(連番で複数登録すると、順番に再生される)

今回のサンプルソースの場合

「タイトル画面」と「自機選択画面」を「タイトル」上で表示している為

標準機能をそのまま使うと「自機選択画面」でも「オートデモ」に遷移してしまう

「タイトル画面」のみで遷移させたい場合、スクリプトで遷移条件を自作する


・「オートデモ」の手動管理

ゲーム設定→オートデモ ☐オートデモを使用する(☑を外す)

(「デモ再生時間」はここで設定したものが使われる)


●タイトル画面(スクリプト)

(タスク01)オートデモ(キャンセル

・上下左右、決定キャンセルの入力があった場合、タスク02を再起動

(タスク02)オートデモ(遷移

・一定時間後、オートデモに遷移(再起動で時間リセット)


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


●アイコン・スプラッシュ用画像の登録(ついでにゲーム設定→システムの説明)

①②③⑤については上記の通り

④スプラッシュ画像=アプリ起動時に出る画像(未登録時はStgBuilderロゴ表示)

⑥⑦キャラクタの最大数を指定(最大10000)

表示されないと支障をきたすもの(システムやボスなど)は重要キャラクタ

表示されなくても支障がないもの(爆発エフェクト等)は通常キャラクタ

に(キャラクタ設定のフラグ管理で)分類しておくと安心

⑧BGM再生バッファサイズ

16384(最小)~65536(最大)

BGM再生時にゲームが一瞬止まる場合、数値を下げると解決するようです

(数値が高い方が同期ズレが発生しにくくなるようです)


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


●「システム変数」を読み取り、書き込みしているスクリプトを追跡する方法

・デバッグウインドウで、調べたい変数の上で右クリック

 ウォッチポイント→読み取り・書き込み・両方 から選択

・タブを「ログ」に変更 ☑ログ有効 ☑ウォッチ有効

↑の画像の場合、「《システム03》自機セレクト数」を

「●●自機セレクト画面」の(タスク0)が、「0~2」の値に

書き換えている事が分かります。


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


●防御・攻撃の判定について

キャラクタ編集→メイン→種類の項目で

「自機」「敵(空中物)」「対空対地攻撃」等

使用したい種類が選択できます。これはプリセットの一種で

そのまま使用する事もできますが、「カスタム編集」を選択すると

「攻撃側」「防御側」(表示優先)の確認とカスタムが可能になり

自由に判定を組む事が出来ます。


例えば、プリセットを確認すると

「自機」  → 攻撃側 ☑アイテム

「アイテム」→ 防御側 ☑アイテム

となっており、

「自機」の攻撃判定で、「アイテム」にダメージを与える

仕組になっている事が分かります。


「敵弾(ノーマル)」 → 攻撃側 ☑自機

これは自機に対して攻撃判定がある事を示しており

「敵弾(ノーマル)」 → 防御側 ☑敵弾(ノーマル)

「ボンバー」     → 攻撃側 ☑敵弾(ノーマル)

「ボンバー」の攻撃判定で、「敵弾(ノーマル)」に

ダメージを与える仕組になっています。


例えば、作品によっては、自機のオプションが

敵弾を消したり消さなかったりしますが

「攻撃側」と「防御側」の判定の設定次第なので

思い通りの判定が発生しない場合は

「カスタム編集」で判定の☑を確認・調整してみましょう。


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


●処理負荷の軽減について

(スプライト編集)

・大量に表示されるオブジェクトは、パターンリスト上で

 上下左右の余白をなるべくカットする事で、表示負荷を下げられる

・「☑当たり判定の細分化」は、回転させるオブジェクトに

 当たり判定を追従させる為の機能なので、

 「当たり判定が正方形のままで良い場合」

 「キャラクターを回転させない場合」は☑を外した方が軽い

(キャラクタ編集)

・「☑描画を最適化」に☑を入れる事で

 エフェクト等、一部機能は使えなくなるが負荷は下がる筈

 (64bit版で仕様が少し変わったので要検証)

・エフェクト機能使用時、ラスター未使用の場合は分割数を「1×1」にする

 ラスターX・Y片側のみ使用の場合、不要な方の分割数は「1」にする

・「物理演算」は処理が重いので、必要な所のみ使用する

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


●エラーでSBDファイルが開けない時の対応法

・STEAM→StgBuilder→歯車マーク→プロパティ→ベータ

 ベータの参加「なし→experimental」

ベータ版は常に新機能を試す事が出来ますが

ベータ版で保存したSBDファイルを安定板で開こうとすると

バージョンが下がる為、エラーメッセージが表示されます。


・StgBuilderの設定→エディタ設定

 ☑SBDファイルのバージョンチェックをしない

上記の設定でSBDファイルが開けるようになります。お試し下さい。

(※但しベータ版の新機能を使った箇所は欠損します)


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

●今回のサンプルで未使用の機能

●制御.振動(スクリプト)

モーター0、モーター1に、各々0~100の強度が設定できます。

振動機能は他の機能とは違いシングルタスクなので

・時間差でモーター0を振動させた場合、重ならず上書きされる

(振動だけでなくフレーム数も上書きされる)

・モーター0とモーター1は別扱いなので重複可能

「振動用キャラ」を作成して、振動させたい時は、

「振動用キャラ」を発射すると、管理が楽そうです。


●編隊機能

敵の編隊を作る時に有用

敵ジェネレーター(敵を発射するキャラ)でも代用可能なので

得手不得手で使い分けると良さそう(デビルブレイドでは未使用)


●パス機能

敵をパス移動で有機的に動かしたい時に有用

直線移動は「直交座標」、曲線移動は「極座標」でも作成可能なので

用途に応じて使い分けると良さそう

パスの中でパス速度を設定する方法と

スクリプト内でパス速度を設定する方法の2種がある

(デビルブレイドでは1面ボスの曲線弾等で使用)


●その他機能

多関節・ブラー・物理演算など

他にも未使用の機能は沢山ありますが、

公式のサンプルデータなどを参考に、各自解析してみて下さい。

(サンプルの格納場所についての説明)


(無料記事)StgBuilderの使い方-6(サンプル完成) (無料記事)StgBuilderの使い方-6(サンプル完成) (無料記事)StgBuilderの使い方-6(サンプル完成) (無料記事)StgBuilderの使い方-6(サンプル完成) (無料記事)StgBuilderの使い方-6(サンプル完成) (無料記事)StgBuilderの使い方-6(サンプル完成) (無料記事)StgBuilderの使い方-6(サンプル完成) (無料記事)StgBuilderの使い方-6(サンプル完成) (無料記事)StgBuilderの使い方-6(サンプル完成) (無料記事)StgBuilderの使い方-6(サンプル完成)

Related Creators