初心者のためのアクションゲームツクールMV講座

アクションゲームツクールMV(アクツクMV)を使ってゲームを作る方法を紹介します。

アクツクMV初心者講座プチ 属性攻撃 弱点・耐性の作り方

今回は質問のあった属性攻撃によるダメージ増加について説明します。

オブジェクトの設定に[攻撃判定に触れた時の被ダメージ設定]というものがあります。ここで設定できます。

f:id:AIAntbear:20180828224331j:plain

属性と被ダメージ係数を設定すると、その属性の攻撃に触れたら係数分ダメージを変更することができます。

f:id:AIAntbear:20180828224649j:plain

後は攻撃アクションの前に実行アクションで攻撃属性を指定すればOKです。

弾の場合や最初から属性が決まってる場合はオブジェクトのスタート位置に実行アクションを設定すれば終わりです。

f:id:AIAntbear:20180828225042p:plain

以上で講座は終わりです。

ちなみに、固有のやられモーションが作りたい場合は、リンク条件に攻撃判定に当たる攻撃の属性を指定を設定しましょう。

※この時、優先度は他のやられ条件よりも高く設定しましょう。

f:id:AIAntbear:20180828225406p:plain

アクツクMV オブジェクト考察 リンク条件と実行アクションを眺めてみる

どうも、あいあんとべあです。

最近、他のゲームをやりながら、アクツクだとこのリンクと実行アクションの組み合わせで再現できるなと考えるようになってきました。

 

今回は講座ではなく、小ネタ集というか、自分用のメモに少し手を加えたものを情報共有したいと思います。

 

アクツクMVってどういうことができるの?って疑問に対して、とりあえずリンク条件と実行コマンドを眺めながらどういうことができそうか考察しようと思います。

購入を検討されている方はどんな実行コマンドがあるか確認いただければと思います。

※ver0.8.4時点の情報です。

 

 

リンク

前の講座でも書いた気がしますが、すべての条件入力に関する条件設定その他の条件設定の両方が満たされている場合、いづれかの条件入力かその他、そのどちらかの条件設定が満たされている場合です。

その他の条件はAND、OR、NOTの組み合わせで詳細な条件を指定できます。

入力に関する条件

f:id:AIAntbear:20180824210436p:plain

プレイヤーやメニューを動かすのに使います。その他の条件と組み合わせたり、ボタン同時押しなんかでアクションの幅を増やせます。

ANDを使ってA+B+X+Y同時押しで必殺技、Xを押しっぱなしでチャージ、Xがはなれたら発射とかできます。

※押さ(離)れたら、と押さ(離)れた瞬間の違い

 押しっぱなしで反応し続けるのが押されたら、一回押しっぱなしにしてももう一回押さないと反応しないのが押された瞬間です。

Aが押されたらジャンプの場合、着地後もAを押してたらもう一度ジャンプします。Aが押された瞬間ジャンプする場合、着地後もAを押しててもジャンプしません。

弾やキーカーソルの移動は1回入力したつもりでも、押し続けた場合だと連続で数回入ることがありますので使い分けましょう。

その他の条件設定

f:id:AIAntbear:20180824211344p:plain

足元はジャンプした後の着地条件としてよく使ってます。

他にも左右は重力無視の実行アクションと組み合わせて壁張り付きや落下速度低下、ジャンプと組み合わせて壁キックなども実現できます。

他にも敵が壁に当たったら方向転換して移動するときにも使ってます。

上は天井張り付きとか、天井に当たって落下とかでしょうか。

f:id:AIAntbear:20180824211828p:plain

これは足元に判定をつけて敵が下に落ちない、とか、壁があるからジャンプするとかで使えそうです。

私が試したときはうまく条件が機能しませんでしたのでバグがあるかもしれません。

f:id:AIAntbear:20180824212143p:plain

これは浮遊するオブジェクトの上にプレイヤーが乗ったら移動する/落ちるときに使ってます。あとはジャンプ、着地の条件にも使ってます。

特定のオブジェクトの上に乗ったらハイジャンプ、とかもこれを使って実現できます。

f:id:AIAntbear:20180824212609p:plain

私はジャンプ攻撃がヒットしたらちょっとジャンプするときに使いました。

敵に設定すれば当たった方向でモーションを変えるとかできます。

他にも格闘ゲームみたいに攻撃がヒットしたら連続攻撃、スカッタら硬直が長いといった使い方もできます。

コンボ数を数えるときもこの条件を使う気がします。

f:id:AIAntbear:20180824213823p:plain

使った事はないですが、特定の属性攻撃を受けたり、大ダメージを受け時に専用のやられモーションを表示できそうです。

f:id:AIAntbear:20180824214043p:plain

こちらも使ったことは無いです。

ボタン入力とANDで使うことで、突進系の攻撃や弾攻撃を当たる直前に特定のボタンを押してカウンターが発動、みたいな動きを作れそうですね。

あとは弾をぎりぎりでよけると高ポイント!とか、特定のエリアで攻撃したらダメージ!攻撃に反応して敵が一斉に出てくる!みたいなギミックにも使えそうです。

f:id:AIAntbear:20180824214657p:plain

これはアイテムを取得するときや、プレイヤーが近づいたら敵が行動開始など、結構な頻度で使ってます。

攻撃判定の無い攻撃(状態異常)の当たり判定扱いとしても使えます。

下の動画の足場も、この他のオブジェクトとの距離を利用して、壁判定を追加してます。(原点を高めに設定して左右の一定距離内に入ったら壁判定を追加してます。)

f:id:AIAntbear:20180824215641g:plain

ちなみに、角度は調べてませんが、こんな感じの視野を持ってます。

f:id:AIAntbear:20180824214938p:plain

f:id:AIAntbear:20180824220130p:plain

これは向かい合ってると動かないで、後ろを向いている(≠にする)と近づいてくるオバケをつくるのに向いてますね。他には目が合ってると石化するとか、後ろを向いている敵を攻撃したらダメージアップもできそうです。

私は敵を倒した時のやられ方向を指定するときに使ってます。

f:id:AIAntbear:20180824220755p:plain

これの使い道はあまり思いつきませんね。

あっちむいてほい、とかのミニゲーム、謎解きの条件で特定の方向を向いている、複数プレイヤーと協力しているときに同じ方向を向いて攻撃するとダメージアップ、とかそんな感じの使い方でしょうか?

上でも書いた、後ろを向いている敵を攻撃したらダメージアップにも使えそうです。

f:id:AIAntbear:20180824221700p:plain

これも使ったことが無いですが、敵の行動条件やロックする条件、トラップの発動条件として使うと良さそうです。

敵に見つからないように行動するゲームでは活躍しそうです。

f:id:AIAntbear:20180824221854p:plain

対象のオブジェクトがどっちを向いているか判定するときに使います。

右を向いているときと左を向いているときでモーションや行動を変えるときに使えます。オブジェクトと向かい合ってるか、と組み合わせて、敵のやられモーションを4パターン(向かい合う、後ろから攻撃×左右)をつくることができます。

f:id:AIAntbear:20180824222215p:plain

敵の消滅判定や、ゲームオーバー判定に使います。

f:id:AIAntbear:20180824222339p:plain

穴に落ちた時や画面外に出たときにゲームオーバーやダメージを与えるのに使えます。

カメラ外に出たら敵を消滅させたり、逆向きに移動させて戻ってこさせたりできます。

f:id:AIAntbear:20180824223211p:plain

レイヤーを移動するゲームを作るときに壁に埋まったら元のレイヤーに戻るといった処理に使えます。

不具合で壁に埋まった時の救済処置としても使えそうです。

f:id:AIAntbear:20180824223531p:plain

ロックしたら弾を発射する敵、ロックされたら逃げる敵などが作れそうです。

ロックした敵を攻撃したらダメージアップとかもできそうです。

f:id:AIAntbear:20180824224438p:plain

敵の行動を確率で変更したい場合に使います。

他のオブジェクトとの距離が50以下だったら、30%の確率で攻撃するオブジェクトを作った時に、他のリンク条件をミスしたせいで、50以下の距離で常に30%の判定がでてしまい、結果、その距離で100%攻撃するプログラムになったことがありました。

f:id:AIAntbear:20180824225205p:plain

アクションを切り替える条件に同じものがありますが、こちらは他の条件とAND、ORで組み合わせたい場合に使います。(コンボで攻撃モーションをキャンセルして攻撃など)

フレームを計算すれば下の一定時間経過でも同様の条件を満たせます。

f:id:AIAntbear:20180824225216p:plain

単体で使えば無条件で切り替え、モーションが全て終わったらと同じ感覚で時間調整に使えます。私も攻撃後の硬直、移動距離の調整などでよく使ってます。

他の条件と組み合わせれば、以下のようなこともできます。

①一定時間ボタンを押されているとチャージショット

②一定時間同じ場所にいるとダメージ

③横を2回押すダッシュの条件として→を押して0.2秒以内に横を押されたら移動速度UP、押されなかったら歩き

f:id:AIAntbear:20180824234212p:plain

スイッチは鍵を取ると扉が開くなどステージギミックの変化や、武器のアンロックなど色々な使い方ができます。

[共通変数]

f:id:AIAntbear:20180824234401p:plain

この辺りは複数プレイ用のゲームを使う時に使いそうですね。

マウス座標XYを変数として取得できるので、プレイヤーの座標と比較すればプレイヤーをマウスの位置に移動させることができそうです。

ファイルスロットはセーブするときの変数です。

[オブジェクトの変数]

f:id:AIAntbear:20180825000438p:plain

色々と種類はありますが、私がよく使うのはX座標位置、Y座標位置です。

プレイヤーと敵のX座標を比較して、敵の方向をプレイヤーに向かって移動させるような使い方をしています。

f:id:AIAntbear:20180825001850p:plain

ついでに、私の場合は右と左でモーションを別に作って振り向きとかを表現してます。

(アクツクは振り向かせる実行アクションがないので、色々考えてこれが一番楽かなと思ってます。作るのが面倒なのですが、難しく考えなくてよいのが利点です。)

f:id:AIAntbear:20180826155513p:plain

体力:残り体力に応じて敵の行動を変化、プレイヤーの色を変更、体力ゲージのモーション変更などができます。

移動量、加速度など:前の講座でダッシュしてるしてないの判定で使いました。

あと、エリア判定の使い方は分かりません。(タイルにオブジェクトのエリア判定を代入する処理があるので、特定のタイルの上に乗ってたら、という処理が作れるかもしれません。)

 この他、独自で準備した変数も使えるので、演算処理結果を条件として使えます。(前の講座の武器セレクトなど)

f:id:AIAntbear:20180825153537p:plain

 プレイヤーがジャンプ中だと敵が上方向に攻撃してくる、など状態に応じて行動を変えるときに使えます。

≠を使えば、その状態以外のときの条件を指定できます。サンプルゲームでは、ダッシュ用の残像の消滅条件が「プレイヤーがダッシュしているとき」でした。

後は、「弾を撃つ」アクションを「オブジェクトを重ねる」で使っている場合、「やられ状態のとき」とすればやられモーション中は弾を撃てなくできます。

 

f:id:AIAntbear:20180825155111p:plain

 ジャンプ上昇とジャンプ下降でモーションを変えたい時に使います。

後は敵にジャンプ攻撃させたい時に、ジャンプが頂点になったら攻撃モーションって感じで使ってます。

f:id:AIAntbear:20180825155647p:plain

坂での移動モーションの変更や、坂での移動速度の変更、ジャンプ・着地の条件などで使います。坂で下を押したら滑り台のように滑って攻撃なんかも表現出来ます。

あと、坂に下から接触したら逆方向に転がる岩なんかも表現できます。

実行アクション

f:id:AIAntbear:20180825160249p:plain

[ジャンプ]

ジャンプの速度を変更と合わせて、特定の場所でハイジャンプだったり、物が落下したときのバウンドを演出したりできます。(文字をバウンドさせたりもできます。)

ジャンプ速度を小さくして、無限にジャンプできるようにすれば水泳も表現できます。(「ギミックタイルで水タイルに触れてたらスイムスイッチをON」もしくは、「水オブジェクトに触れてたら」を条件に無限ジャンプをさせる。など)

[動作中の移動入力を受け付けない]

一定距離移動するタイプのダッシュであったり、クリアモーション、イベント演出中など左右に移動されたくない場合に使います。

後は麻痺攻撃などで行動できない!を表現する場合にも使えます。

[動作中の表示方向を受け付けない] 

弾攻撃中は表示方向を変えたくない、強制横スクロールステージで後ろ向きにさせたくない、などゲームデザインの都合上表示形式を変えたくない場合に使います。

[重力の影響を受けない]

100%は文字を固定させたい場合や、飛んでるオブジェクトを作りたい時に使います。

100%以外は、壁張り付き、水中でゆっくり落下させたい場合や、乗ったら落下するオブジェクトを作るときに使います。

滑空スキルにも使えます。

[移動速度を変更]

ダッシュやチャージ中、状態異常、床や坂などで速度を変化させたい時に使います。

その他の実行アクション

前の講座でも書きましたが、その他の実行アクションは、上から順番に処理されます。

f:id:AIAntbear:20180825163542p:plain

表示方向に移動し続けるため、敵を移動させるときに使います。

プレイヤーに対して使う時は、動作中の移動入力を受け付けないと併用しないと、途中で移動が終了してしまいます。

移動方向を指定して移動ジャンプ+移動方向を指定して移動を組み合わせれば強制横移動のゲームが作れます。

f:id:AIAntbear:20180825232312p:plain

これは使い道が多いです。

・移動速度変更と組み合わせて移動距離が決まっているタイプのダッシュ

・重力無視と組み合わせて空中ダッシュ

・上記に攻撃判定を付けて突進攻撃

・ダメージを受けた時のノックバック

・イベントでオブジェクトを移動 

f:id:AIAntbear:20180825233603p:plain

バウンドはカメの甲羅的な動きをするので使えそうですが、ランダム移動は自由すぎて使ってないです。

 この辺は個人的に変数とか使って自分で設定する方が楽です。

f:id:AIAntbear:20180825233904p:plain

 ロックは使ったことないです。

弾の設定で追尾させたり、ロック状態の敵にダメージを与えたら特殊な演出とかダメージアップとかできそうです。

プレイヤーをロックして襲い掛かる敵とかも作れそうです。

f:id:AIAntbear:20180825234333p:plain

敵を生み出すオブジェクトだったり、足場を定期的に生み出すオブジェクトとかに使えます。他にも敵が倒されたときのアイテムドロップもこれとリンク条件の確率を使えば実現できます。

ダッシュ講座の残像にもこれを使いました。

f:id:AIAntbear:20180825235702p:plain

※モーションを設定なしにしていると表示されないので注意です。

プレイヤーをチェンジしたり、変身しながら進むゲームを作れます。他にも敵の攻撃で攻撃できないキャラに変身させられる事もできます。

スイッチを踏むととコインをブロックに変えるとか、敵を別のものに変えるギミックも作れます。

f:id:AIAntbear:20180826000755p:plain

移動距離を0ドットして、表示方向を移動方向に合わせれば、好きな方向に向かせることができます。

また、座標を指定した場合は、対象の座標に一直線で向かうので、UFOキャッチャーみたいなプレイヤーをつかんで落とし穴に落とすような敵の動きを作る事ができます。

ブラックホールのように吸い込む攻撃を作れないかと思いましたが、移動可にすると普通に移動できてしまうのでそういった使い方は出来なそうです。

後は弾とか足場オブジェクトの起動には良さそうです。

全てのオブジェクトを移動できるので、イベントシーンで全員が同時に飛び跳ねる演出などにも使えます。

f:id:AIAntbear:20180826003725p:plain

使ったことが無かったので使ってみましたが、イメージと違いました。

範囲内にあるオブジェクトを、効果の範囲で指定した強さで後ろに移動させます。

力が強すぎると下のように瞬間移動して見えます。(これでもデフォルト値より小さいです)

f:id:AIAntbear:20180826141159g:plain

効果範囲と力を小さくすれば普通に物を押すように見えます。効果範囲を広くして、小さい力で連続実行すれば突風で吹き飛ばされる感じを演出できそうです。

試してないですが、「引く」もできるので、上のオブジェクトを移動させるよりもブラックホール的なものを作れそうな気がします。

f:id:AIAntbear:20180826142227p:plain

待機の状態でアクションを実行してしゃがみ攻撃を実行した場合、赤矢印のリンクに遷移します。

f:id:AIAntbear:20180826143907p:plain

汎用性は高く、ステージセレクト、キャラクターセレクトなど1つの選択したときに、周りのオブジェクトを連動して変更したい時などに使えます。

他にも、無敵アイテムに触れたらアイテム側でプレイヤーを無敵に変化させることもできます。

なお、単体の場合はシーンで単体の対象にチェックを入れたもの、(指定してない場合は配置順?)に実行させます。

敵が複数の弾を設置させて、敵の別のアクションで設置した弾を爆発させることもできます。

片方のボスが倒された時、もう片方のボスの攻撃パターンを変える、といった使い方もできます。

 私はステージクリアのアクションをこのようにリンクさせてましたが、ゴールオブジェクトにこの実行アクションを仕込んだ方がより良い気がしました。

f:id:AIAntbear:20180826144905p:plain

 

f:id:AIAntbear:20180826145243p:plain

f:id:AIAntbear:20180826145355p:plain

敵を奥のレイヤーに隠す、プレイヤーがレイヤーを行き来して奥行きを出すなど通常の使い方以外にも、レイヤーの動作をOFFを使うことでポーズ画面を実現できます。

特定のレイヤーだけONにして、そのレイヤーに動かしたいものを移動させれば、時を止めたままメニューの操作などをすることができます。

f:id:AIAntbear:20180826150312p:plain

これを実行後、以降このオブジェクトの全ての攻撃判定が指定された値に変更されます。戻すには、攻撃力100%、属性を指定しない攻撃の判定を実行する必要があります。

オブジェクトのアクションを実行と組合せて、敵の属性をさせる変更アクション、怒りで攻撃力が上がるアクションを作ることができます。

また、攻撃判定も変更できるので、敵の弾を跳ね返して敵にダメージを与えたいときに使えます。(弾の性能自体を変えたい場合はオブジェクトを変更したほうが楽かもしれません。)

※跳ね返す方法は、弾が特定のオブジェクト(跳ね返すモーション時にオブジェクト(透明可)を生成させる)に触れたら逆方向に移動、敵に当たるようにするといった感じです。

f:id:AIAntbear:20180826152843p:plain

前の講座でも説明してますが、オブジェクトを発射させます。

基本的な使い方はオブジェクト生成に近いものがあります。

f:id:AIAntbear:20180826153015p:plain

オブジェクトの消滅は完全に消えます。オブジェクトの無効は見えないだけでモーションやアクションの状態は維持されます。

そのため、消滅から復活させると初期配置位置から復活し、無効を有効にすると止めた位置、行動から再開します。

オブジェクトは沢山あると動作が重くなるので、弾などは必ず消すように設定しましょう。

※仕様かバグか分かりませんが、v0.8.4時点でオブジェクトを無効にしても、攻撃判定ややられ判定が残っているようです。

f:id:AIAntbear:20180826154709p:plain

スイッチのON、OFFやパラメータの増減をさせることができるので、非常によく使う実行アクションです。(変更できる変数の内容はリンクを参照してください)

セーブ・ロード・セーブデータの削除もスイッチから行います。

共通スイッチのセーブをONにすればセーブされ、ロードをONにすればロードされます。共通変数のスロット番号を変更すれば、スロット=1にセーブ、スロット=1をロードといった処理ができます。どこまでセーブされるのか、共通変数はセーブスロットに限らず共有なのか、とかはまだ検証してません。

(攻撃判定に関するバグがあるので、ステージセレクト画面でのみ、敵がいないフィールドのみセーブ可、攻撃判定は全て弾のみ、など回避策を考える必要があります。)

四則演算のほかに%=(割った余りの値を計算:主な用途は%=100で小数点以下の端数切)ができるので、独自変数を使えば大体の処理は作れそうです。前回の講座の武器セレクトやライフバーでもループ用に使ってます。

オブジェクトのXY座標に変数を代入できるので、プレイヤーの頭上にワープする敵とかも作れます。(独自変数X=プレイヤーX座標、敵X座標=独自変数X、敵Y座標=定数)

 

他にも、カメラの位置情報に変数は仕えませんが、[シーン]のカメラ設定から追従するオブジェクトを指定できるので、カメラオブジェクトを作成すれば変数を使ったカメラ位置の変更ができるようになります。

f:id:AIAntbear:20180826160640p:plain

f:id:AIAntbear:20180826162055p:plain

チェックが付いている部分については演出面が大きいので省略します。

f:id:AIAntbear:20180826162337p:plain

壁歩きとか、天井歩きみたいなステージギミック、スキルに使えそうです。

f:id:AIAntbear:20180826162408p:plain

3ページ目についても、記載の使い方以外思いつかないので省略します。

カメラの領域はオブジェクトの復活条件にカメラの枠外を指定していると、拡大から戻ったタイミングで復活している場合があります。

 

以上でオブジェクトの考察は終わりです。他にも使い方は色々あると思うので、考えてみてください。

アクツクMV初心者講座ミニ 超簡単 ライフバー(ライフゲージ)の作り方

今回はお手軽にライフバーを作る方法をご紹介します。

一見難しそうですが、シンプルなものであれば簡単に作れます。

f:id:AIAntbear:20180815234048g:plain

ライフバーは、実行アクションの変数を変更で、オブジェクトのスケールX(%)、もしくはスケールY(%)の値を変更することで実現できます。

f:id:AIAntbear:20180815210227p:plain

スケールX(Y)(%)は、設定した数字だけオブジェクトのX(Y)軸方向のサイズを変更できます。そのため、変数を使って、現在の体力が最大体力の何パーセントかを計算して、長方形のイラストのスケールX(Y)を変更すれば、上の動画のような体力ゲージを表現できます。

[計算式]

スケールX(Y)=[現在の体力]/[最大体力]×100

[画像] ※今回はスケールX用の画像です。

f:id:AIAntbear:20180815211513p:plain

f:id:AIAntbear:20180815214252p:plain

今回はプレイヤーの体力について、スケールXを変更する方法を説明していきます。

体力変数の対象オブジェクトを変更すれば任意の敵のライフバーを作ることができます。

 

※v0.8.3時点で、オブジェクトの変数を変更すると指定したオブジェクトとは別の変数が変わったり、テストプレーで落ちる現象がありました。おかしいと思ったら共通変数を使ってみるか、修正されるのを待ちましょう。

 

[アニメーション]

※注意 ライフバーは画像のようにライフバーの端をX(Y)座標0の位置にする必要があります。

※スケールXの場合、右端を0にすると左から右に、左側を0にすると右から左にゲージが減少します。

※スケールYの場合、下端を0にすると上から下に、上端を0にすると下から上にゲージが減少します。

f:id:AIAntbear:20180815205619p:plain

[オブジェクトの作成]

次のようなオブジェクトを作成していきます。

f:id:AIAntbear:20180815232041p:plain

まずは新規でオブジェクトを作成します。

f:id:AIAntbear:20180815205954p:plain

ここで、スケールXを計算するための変数を2つ用意します。

変数は何を使っても問題ありませんが、今回はプレイヤーオブジェクトに1つ、ライフバーオブジェクトに1つ作ります。

[現在の体力比較用の変数]

オブジェクトの変数は[アクションプログラム][基本設定]と並んでいる[変数管理]タブから追加することができます。まずは体力を表示したいオブジェクトを選択して、変数を追加します。※ここでは現在の体力(判定用)とします。

f:id:AIAntbear:20180815215707p:plain

[ライフバー計算用の変数]

同様に、スケールX(%)を計算するための変数を用意します。※ここではスケール計算用とします。

f:id:AIAntbear:20180815222013p:plain

[アクションの追加]

次に、ライフバーを作っていきます。

まずは、ライフの変化を判定するアクションを追加します。

①割り当てるモーションに作成したライフバーのモーションを追加します。

②重力に影響を受けないを選択します。

※リンクで判定するので、特に実行アクションは設定しません。

f:id:AIAntbear:20180815222501p:plain

次に、スケールを計算するアクションを追加します。

ここで、最初に紹介した計算式をその他の実行アクションで実現させます。

スケールX(Y)=[現在の体力]/[最大体力]×100

①割り当てるモーションに作成したライフバーのモーションを追加します。

②重力に影響を受けないを選択します。

③~⑦で計算式を順番に登録します。

f:id:AIAntbear:20180815224337p:plain

[プレイヤー変数:現在の体力(判定用)]=[プレイヤー変数体力]を設定します。

※[ライフ判定]に戻った時のために、先ほど作成した変数とプレイヤーの現在の体力を一緒にしてます。

f:id:AIAntbear:20180815224516p:plain

[ライフバー変数:スケール計算用]=[プレイヤー変数:体力]を設定します。

※体力/最大体力を計算するための準備として、スケール計算用の数字を体力と一緒にします。

f:id:AIAntbear:20180815224535p:plain

[ライフバー変数:スケール計算用]/=[プレイヤー変数:最大体力]を設定します。

体力/最大体力を計算しています。

f:id:AIAntbear:20180815224544p:plain

[ライフバー変数:スケール計算用]=100を設定します。

※スケールX(%)の単位は%です。そのため、体力/最大体力に100をかけて単位を揃えます。

f:id:AIAntbear:20180815224553p:plain

[ライフバー変数:スケールX(%)]=[ライフバー変数:スケール計算用]を設定します。

※最後に、スケールXを体力/最大体力×100の計算値に変更します。

※ここをスケールY(%)に変更すると、縦に変化するライフゲージになります。

f:id:AIAntbear:20180815224603p:plain

[リンクの追加]

[ライフ判定]→[スケール変更]

[プレイヤー変数:体力][プレイヤー変数:現在のライフ(判定用)]を設定します。

※ダメージを受けた、回復したなど、体力に変化があった場合に遷移するようにします。

f:id:AIAntbear:20180815231442p:plain

[スケール変更]→[ライフ判定]

無条件で切り替えを選択します。

f:id:AIAntbear:20180815231848p:plain

これでライフバーは完成です。

f:id:AIAntbear:20180815233859g:plain

[枠を作ろう]

こんな感じでライフバーに枠を用意するとよりライフバーっぽくなります。

f:id:AIAntbear:20180815214307p:plain

メニューに枠を付けるとこんな感じです。

f:id:AIAntbear:20180815235125g:plain

枠を工夫すればこのような体力ゲージも作れます。

f:id:AIAntbear:20180816195013p:plain

f:id:AIAntbear:20180816195028p:plain

f:id:AIAntbear:20180816195022p:plain

f:id:AIAntbear:20180816195205p:plain

今回はここまでです。

分からないところ、おかしいところがあればコメントにお願いします。

尚、上でも少し触れましたが、私は体力バーの代わりにゴール用のアリヅカが細くなることがありました。(オブジェクトをフォルダに移動させたことが原因かもしれません。)

アクツクMV初心者講座 ダッシュ編

今回は残像を出すダッシュの方法を説明します。

f:id:AIAntbear:20180812190350g:plain

残像はオブジェクトの生成で残像が出るオブジェクトを重ねて出すことで表現します。

 [残像オブジェクトの作成]

残像用のオブジェクトは、ダッシュが終わったら消滅するように作成します。今回は、ダッシュ速度の移動速度以外は残像が消えるような方法を紹介します。

オブジェクトを新規に作成します。今回使うアニメーションは歩くアクションと同じものを使います。※専用にダッシュモーションを用意しても構いません。

タイルの壁判定と衝突するのみチェックを入れます。

f:id:AIAntbear:20180812173310p:plain

残像アクションを追加していきます。

f:id:AIAntbear:20180812173645p:plain

次に消滅アクションを作成します。

その他の実行アクションからオブジェクトを消滅するを選択します。

f:id:AIAntbear:20180812173905p:plain

[残像]→[消滅]のリンクを追加します。

その他の条件設定で、プレイヤー変数:左右の移動量=4.00を選択します。その後、右側の[=]ボタンをクリックして[≠]に変更します。

※プレイヤー変数は自分で作成したダッシュするオブジェクトを指定してください。ここでは、講座用に用意したプレイヤー(ダッシュ)を選択しております。

※左右の運動量=4.00は後で設定するダッシュ時の速度になります。自由に変更して構いません。

※[≠]は、条件を満たさない場合にリンク先へ遷移するという条件になります。

f:id:AIAntbear:20180812175839p:plain

最後に、このオブジェクトに残像を出す設定をします。

[表示と親子関係]をクリックします。

残像を表示を選択し、残像数、残像の間隔、残像の表示時間を設定します。

子オブジェクト字の移動:で親オブジェクトから離れず追従するを選択します。

f:id:AIAntbear:20180812185621p:plain

これで残像は完成です。

[ダッシュアクションの作成]

次に、プレイヤー用のオブジェクトにダッシュアクションを追加します。

その他の条件設定で、プレイヤー変数:左右の移動量=4.00を選択します。

移動量=4.00ダッシュ時の速度になります。上の残像と変数を合わせることに意識して、自由に調整してください。

f:id:AIAntbear:20180812181448p:plain

次にその他の実行アクションで残像用のオブジェクトを呼び出します。

①生成するオブジェクトを選択:先ほど作った残像のオブジェクトを選択します。

②次のオプションにチェックを入れる

 子オブジェクトとして生成する。

 生成時のオブジェクトの向きを、このオブジェクトに合わせる

 このオブジェクトより表示優先度を下げる。にチェックを入れます。

③生成位置については、一致するように調整してください、アニメーションの原点に接続点を作成すればうまくいくと思います。※前の弾を発射させる講座で接続点については説明しておりますので参考にしてください。

f:id:AIAntbear:20180812185850p:plain

最後にリンクを作成していきます。

[歩き]→[ダッシュ]

ボタンが押された場合に遷移するように条件を設定します。

今回はBボタンが押された場合にします。

f:id:AIAntbear:20180812182708p:plain

[ダッシュ]→[ジャンプ]

[歩き]→[ジャンプ]と同じですのでコピーしましょう。

f:id:AIAntbear:20180812182839p:plain

[ダッシュ]→[待機]

Bボタンが離れた時、もしくは←も→も押されていないときに待機に戻るように設定します。

下図のように、入力に関する条件設定で[Bが離された]or([←が離された]AND[→が離された])という形で条件を設定します。

f:id:AIAntbear:20180812183113p:plain

最後に、待機になったら移動速度の変数を元に戻すアクションを追加します。

その他の条件設定で、プレイヤー変数:左右の移動量=2.00を選択します。

※2.0は講座用のプレイヤーオブジェクトの通常の移動速度です。自分のオブジェクトに合わせて変更してください。

f:id:AIAntbear:20180812183421p:plain

これで残像付きダッシュが完成しました。早速動かしてみましょう。

f:id:AIAntbear:20180812190350g:plain

今回はこれで終わりです。

不明点や不備がございましたら、コメントの方へお願いします。

アクツクMV初心者講座 メニュー活用編 武器セレクト

今回は、前回の弾の撃ち方編からの続きです。

メニューを使って弾を選択できるようにする方法を説明していきます。

弾を1つだけしか使わないゲームを作る場合は不要ですが、2つ以上を選択するタイプのゲームを作りたい人は参考にしてください。

今回紹介するのは、LRボタンを押すと弾を選択でき、攻撃ボタンを押すと選択した弾を発射する方法です。

f:id:AIAntbear:20180812001630g:plain

最初に簡単に説明すると、メニュー画面にLRボタンが押されたときにイラストが切り替わるオブジェクトを配置します。

f:id:AIAntbear:20180811175627p:plain

弾の種類ごとに変数で番号を割り振り、その番号の時に攻撃方法が変わるようにプレイヤー側のオブジェクトを変更します。

f:id:AIAntbear:20180812000659p:plain

武器セレクトに関しては、最初から全部使えるか、途中から使える武器が増えるかによって難易度が変わってきますので、順番に説明していきます。

1.最初から全ての武器が使える場合

最初から全ての武器を使える場合、このようにアクションを配置するだけで作ることができます。実行するアクションに変数=x(弾なら0、雲なら1、リンゴなら2)とするアクションを作成し、R,Lが押されたときのリンクを繋ぐだけでセレクト用のアイコンとなります。

f:id:AIAntbear:20180810080207p:plain

後は攻撃時に変数=xならその弾を発射するようにすれば完成です。

慣れてきた人ならこの説明だけで作れると思いますが、順番に説明していきます。

1.1武器セレクト用のアイコンを作る

 メニューに貼り付けるアイコンを作成していきます。

ここでは、サンプルとして、弾、雲、リンゴの画像を使用します。

f:id:AIAntbear:20180811103557p:plain

[アニメーションの作成]

メニューに貼り付けるアイコンなので、壁判定や当たり判定は不要ですので削除しておきましょう。あと、画像の位置だけは合わせましょう。

※アニメーションを追加しても大丈夫です。

f:id:AIAntbear:20180811104356p:plain

[変数の作成]

オブジェクトを作る前に、武器セレクト用の変数を用意します。この変数は、武器セレクト用オブジェクトと、[待機][歩き][ジャンプ]→[攻撃]のリンクの条件に使います。

※v0.8.4現在、個別の変数だと動作が不安定になる場合があったので、共通変数を使ってます。

[素材]-[変数]から新規に変数を追加します。初期値は0にします。

f:id:AIAntbear:20180811170509p:plain

[オブジェクトの作成]

先ほど作った変数と弾を割り当てていきます。今回は弾を変数0、雲を変数1、リンゴを変数2とします。4種類以上作りたい場合も同様に、変数を割り当てていきます。

f:id:AIAntbear:20180810080207p:plain

では、新規オブジェクトを追加していきます。今回はメニュー用なので、余計なチェックは外しております。

f:id:AIAntbear:20180811105608p:plain

 まずは通常の弾から作成してきます。

重力の影響を受けないにチェックを入れます。

②その他の実行アクションから、「スイッチ・変数を変更」にチェックを入れ、共通変数:武器セレクト=0.00を設定します。

※色分けはプレイヤーアクションを追加するときに分かりやすくするために行っております。他に意味はありません。

f:id:AIAntbear:20180811171015p:plain

 これで、弾が表示されているときは武器セレクト変数が0になります。

同様にアイコンを追加していきます。

重力の影響を受けないにチェックを入れます。

②その他の実行アクションから、「スイッチ・変数を変更」にチェックを入れ、共通変数:武器セレクト=1.00を設定します。

f:id:AIAntbear:20180811172338p:plain

重力の影響を受けないにチェックを入れます。

②その他の実行アクションから、「スイッチ・変数を変更」にチェックを入れ、共通変数:武器セレクト=2.00を設定します。

f:id:AIAntbear:20180811175942p:plain

これでアクションの配置は完了です。

[リンクの作成]

次に、Rを押されたら弾(0)→雲(1)→リンゴ(2)→弾(0)となるようにリンクをつなぎます。

[弾(0)]→[雲(1)]

[弾(1)]→[雲(2)]

[弾(2)]→[雲(3)]

以下の入力操作がされたにチェックを入れ、R1が押された瞬間を設定します。

3つとも同じ設定なので、コピーすると楽です。

f:id:AIAntbear:20180811174656p:plain

同様に、Lを押されたら弾(0)→リンゴ(2)→雲(1)→弾(0)となるようにリンクをつなぎます。

[弾(0)]→[雲(1)]

[弾(1)]→[雲(2)]

[弾(2)]→[雲(3)]

以下の入力操作がされたにチェックを入れ、L1が押された瞬間を設定します。

3つとも同じ設定なので、コピーすると楽です。

f:id:AIAntbear:20180811175755p:plain

menu sceneに配置して動作を確認しましょう。

f:id:AIAntbear:20180811175323p:plain

[F5]キーを押してテストプレイすると、こんな感じで動かせると思います。

f:id:AIAntbear:20180811180817g:plain

1.2攻撃アクションを追加する

攻撃アクションは[攻撃(判定)]で変数を確認し、数字が一致した場合に該当する弾アクションに遷移させるように作ります。

f:id:AIAntbear:20180812000659p:plain

こちらは前回の講座で追加した攻撃アクションです。これをベースに変更していきます。

※攻撃を作っていない方は②③のみを行ってください。

f:id:AIAntbear:20180811181724p:plain

①[攻撃]→[待機]のリンクを削除します。

②攻撃アクションの名前を攻撃(判定)に変更します。

③割り当てるモーションを選択で「遷移前のモーションを引き継ぐ」にチェックを入れます。

④その他の実行するアクションの[-]ボタンを押し、条件を削除します。

f:id:AIAntbear:20180811182356p:plain

攻撃アクションを追加する前に、画面が見にくくなるので[攻撃(判定)]と[待機]のショートカットを作っておきます。※この作業はやる必要ありません。

f:id:AIAntbear:20180811231328p:plain

弾を発射するアクションを追加します。

①割り当てるモーションから攻撃のモーションを選択します。

②その他の実行アクションから弾の発射を選択します。

f:id:AIAntbear:20180811232135p:plain

同じように、弾を発射するアクションを作成していきます。

※ここでは作った弾をコピーしてイラストだけ変えたものなどを用意してください。

f:id:AIAntbear:20180811233303p:plain

こんな感じで雲、リンゴと追加しました。

f:id:AIAntbear:20180811233629p:plain

[リンクを作成]

リンクの条件は武器セレクト変数が一致している場合です。変数が0なら弾、1なら雲、2ならリンゴに遷移するように設定します。

[攻撃(判定)]→[弾(0)]

その他の条件設定で共通変数:武器セレクトの変数=0を選択します。

f:id:AIAntbear:20180811234944p:plain

[攻撃(判定)]→[雲(1)]

同様に共通変数:武器セレクトの変数=1を選択します。

f:id:AIAntbear:20180811235443p:plain

[攻撃(判定)]→[リンゴ(2)]

同様に共通変数:武器セレクトの変数=2を選択します。

f:id:AIAntbear:20180812000258p:plain

[弾(0)][雲(1)][リンゴ(2)]→[待機]

モーションのアニメーションが最後まで実行されたらを選択します。

f:id:AIAntbear:20180812000515p:plain

これで完成です。

f:id:AIAntbear:20180812001146p:plain

シーンに配置して動きを試してみましょう。

f:id:AIAntbear:20180812001630g:plain

2.途中から使える武器が追加される場合

アイテムを取る、ボスを倒すなど、特定の条件を満たしたときに武器を追加するようなゲームを作りたい時はこちらの方法を参考にしてください。

攻撃方法を追加する方法については、[攻撃(判定)]から各弾へのリンク条件に、その武器のスイッチがONの場合をANDで追加すればスイッチがOFFの時は使えなくできます。

f:id:AIAntbear:20180812000659p:plain

ただ、メニュー用の アイコンについては、1.1で紹介したやり方だと、武器の種類が増えるほど複雑になってきます。

ここでは、やり方を変えて、変数計算を利用して何種類武器を追加しても同じ処理で対応できる方法を説明します。

2.1メニュー用アイコンの作り方(枠編)

今回は、LRボタンを押された瞬間に変数を増減させ、その変数と一致したアイコンを表示させる方法を紹介します。こちらの方が、スイッチによる武器の追加が作りやすいです。

具体的には、Rを押されたら武器変数を+1、Lを押されたら武器変数を-1とし、変数が-1となったら変数の最大数(ここでは2)、変数が最大数+1(ここでは3)となったら変数=0となるようなオブジェクトを作ります。

f:id:AIAntbear:20180812005833p:plain

せっかくなので、LRを押したら矢印が反応する枠と合わせてこの計算する機能を作ります。こちらが枠のサンプルになります。

f:id:AIAntbear:20180812010327p:plain

アニメーションの作成

 枠用に新規アニメーションを作成します。ボタンを押したら矢印の色が分かる程度にフレームを調整します。メニュー用なので当たり判定や壁判定は不要です。

f:id:AIAntbear:20180812072835p:plain

 オブジェクトの作成

新規でオブジェクトを作成します。今回も不要なチェックは外しております。

f:id:AIAntbear:20180812073254p:plain

まずは通常時の枠を作成します。

重力の影響を受けないにチェックを受けます。

f:id:AIAntbear:20180812073701p:plain

 次に、Lボタンが押されたら変数を-1、Rボタンが押されたら+1となるようにアクションを作成します。

[Lボタンが押された場合]

①割り当てるモーションに左側の矢印が押されたアニメーションに設定します。

②重力の影響を受けないにチェックを入れます。

③その他の実行アクションから、共通変数:武器セレクトー=1.00となるように設定します。

※-=は変数から設定した数字を引くという意味です。今回は変数-1となります。

f:id:AIAntbear:20180812074305p:plain

[Rボタンが押された場合]

①割り当てるモーションに右側の矢印が押されたアニメーションに設定します。

②重力の影響を受けないにチェックを入れます。

③その他の実行アクションから、共通変数:武器セレクト1.00となるように設定します。

※+=は変数から設定した数字を足すという意味です。今回は変数+1となります。

f:id:AIAntbear:20180812075128p:plain

今回は武器を3種類つくりますので、変数は0、1、2の3つしか使いません。

0のときLを一回押される、もしくは2のときRを一回押されると武器を選択できなくなってしまいます。そこで、変数が-1のとき変数を2に、変数が3のとき変数を0にするアクションが必要となります。

[変数が-1の場合]

①割り当てるモーションで遷移前のモーションを引き継ぐにチェックを入れます。

②重力の影響を受けないにチェックを入れます。

③その他の実行アクションから、共通変数:武器セレクト2.00となるように設定します。

※武器が4種類の場合は=35種類なら=4といったように、ココの数字を増やすことで対応できます。

f:id:AIAntbear:20180812105256p:plain

[変数が3の場合]

①割り当てるモーションで遷移前のモーションを引き継ぐにチェックを入れます。

②重力の影響を受けないにチェックを入れます。

③その他の実行アクションから、共通変数:武器セレクト0.00となるように設定します。

f:id:AIAntbear:20180812105407p:plain

[リンクの作成]

まずはL、Rを押された瞬間に遷移し、モーションが実行されたら待機に戻るリンクを追加していきます。

[待機]→[L(変数ー1)]

以下の入力操作がされたにチェックを入れ、L1が押された瞬間を設定します。

f:id:AIAntbear:20180812100730p:plain

[待機]→[R(変数+1)]

以下の入力操作がされたにチェックを入れ、R1が押された瞬間を設定します。

f:id:AIAntbear:20180812100921p:plain

[L(変数ー1)][R(変数+1)]→[待機]

[L(変数ー1)]→[待機]、[R(変数+1)]→[待機]のリンクを追加し、

モーションのアニメーションが最後まで実行されたらを選択します。

f:id:AIAntbear:20180812101206p:plain

[L(変数ー1)]→[変数ー1→2]

ここでは、武器セレクトの変数<0(0より小さい)場合に[変数ー1→2]へ遷移するように設定します。待機に遷移しないように、判定の優先度を→[待機]よりも大きい数字に設定します。

※優先度について、同じ条件を満たす場合に判定優先度の数字が高いリンクが適用されます。今回はモーションが終わると待機に遷移してしまうため、優先度を高くして待機に行かないようにします。

①判定優先度を1に設定します。

②その他の条件判定から、共通変数:武器セレクト<0.00となるように設定します。

f:id:AIAntbear:20180812101906p:plain

[R(変数+1)]→[変数3→0]

同様に、武器セレクトの変数>(より大きい)場合に[変数3→0]へ遷移するように設定します。待機に遷移しないように、判定の優先度を→[待機]よりも大きい数字に設定します。

①判定優先度を1に設定します。

②その他の条件判定から、共通変数:武器セレクト>2.00となるように設定します。

※4種類の場合は>3、5種類の場合は>4といった感じで変数を変更してください。

f:id:AIAntbear:20180812103531p:plain

[変数ー1→2][変数3→0]→[待機]

[変数ー1→2]→[待機]と[変数3→0]→[待機]のリンクを追加し、

モーションのアニメーションが最後まで実行されたらを選択します。

f:id:AIAntbear:20180812104538p:plain

これで枠のオブジェクトは完成です。

武器の種類を増やす場合は緑色の箇所を変更します。

※重力の影響を受けない、モーションを引き継ぐの設定が漏れていると、L,Rを押したときに表示がズレますので注意してください。

f:id:AIAntbear:20180812104801p:plain

2.2武器セレクト用のアイコンを作る

1.1では、弾の変数を決めるために武器セレクト用のアイコンを作成しましたが、今回は何の弾が選択されているかプレイヤーに見せるために作成します。

大きな違いは、スイッチがONか判定するアクションを追加しているところです。

変数=0の時にLボタンを押すと、枠の変数計算で変数=2となり、[判定:L]アクションで[スイッチ(リンゴ)がON]AND[変数=2]と一致するか確認します。一致する場合は[リンゴ(02)]へ遷移し、一致しない場合は[変数-1]へ遷移し、変数が2-1=1となります。同様にスイッチ(雲)がONであれば[雲(01)]へ遷移し、スイッチがOFFであれば変数=0となり[弾(00)]に戻ります。Rボタンを押した場合も同様ですが、変数>2になると変数=0にするアクションが必要になります。

f:id:AIAntbear:20180812120428p:plain

[オブジェクトの作成]

最初は1.2と同じ動きをするようにオブジェクトを作っていきます。

まず、表示する弾のアクションを追加します。こちらの実行アクションは全て、

重力の影響を受けないのみを設定します。

f:id:AIAntbear:20180812124627p:plain

次に、Rを押されたときの判定アクション、Lを押されたときの判定アクションを追加します。こちらはリンクで処理しますので、このアクション自体で何かするわけではございません。

①割り当てるモーションの選択でモーションを引き継ぐにチェックを入れます。

②重力の影響を受けないを選択します。

f:id:AIAntbear:20180812125644p:plain

[リンクを作成]

[変数0から1に変化したとき]

[変数2から1に変化したとき]

[弾(00)]→[判定:R]、[判定:R]→[雲(01)]、[リンゴ(02)]→[判定:L]、[判定:L]→[雲(01)]

その他の条件設定で共通変数:武器セレクト=1.00を設定します。

全ておなじ条件なので、コピーすると楽です。

f:id:AIAntbear:20180812130619p:plain

色分けすると動きが分かりやすいです。

f:id:AIAntbear:20180812131220p:plain

[変数1から2に変化したとき]

[変数0から2に変化したとき]

同じように、変数が2に変化した場合のリンクを追加します。

[雲(01)]→[判定:R]、[判定:R]→[リンゴ(02)]、[弾(00)]→[判定:L]、[判定:L]→[リンゴ(02)]

その他の条件設定で共通変数:武器セレクト=2.00を設定します。

f:id:AIAntbear:20180812131859p:plain

全ておなじ条件なので、コピーすると楽です。

f:id:AIAntbear:20180812131715p:plain

 

[変数2から0に変化したとき]

[変数1から0に変化したとき]

[リンゴ(02)]→[判定:R]、[判定:R]→[弾(00)]、[雲(01)]→[判定:L]、[判定:L]→[弾(00)]

その他の条件設定で共通変数:武器セレクト=0.00を設定します。

全て同じ設定のため、コピーすると楽です。

f:id:AIAntbear:20180812132127p:plain

これで1.1で作成したメニューと同等の機能をもつメニューが完成です。

f:id:AIAntbear:20180812132950p:plain

 menu sceneに貼り付けてテストしてみましょう。

攻撃の設定は1.2攻撃アクションを追加するから変更する必要はありません。

f:id:AIAntbear:20180812132643p:plain

動きがおかしい場合は設定を見直してみてください。

f:id:AIAntbear:20180812133804g:plain

 [スイッチによる使用武器の追加方法]

スイッチのON、OFFで武器を追加していく方法を説明していきます。

今回説明する方法は、変数=0をスイッチでOFFにすることはできません。その場合は、変数=0の時、[攻撃(判定)]→[待機]へ直接リンクさせることで武器無しを実現できます。

今回は[武器:リンゴ]というスイッチがOFFの場合、[リンゴ(02)]を選べなくする方法を説明します。※武器ごとにスイッチを用意すれば、全ての武器を選べなくすることもできます。

[素材]-[スイッチ]から新規スイッチを追加します。

f:id:AIAntbear:20180812135945p:plain

 [判定:R]→[リンゴ(02)]に対して

共通スイッチ:武器:リンゴがONを追加し、条件をANDに設定します。

f:id:AIAntbear:20180812140926p:plain

同様に、 [判定:L]→[リンゴ(02)]に対して

共通スイッチ:武器:リンゴがONを追加し、条件をANDに設定します。

f:id:AIAntbear:20180812141427p:plain

 次に、R:判定でスイッチがOFFの場合に、次の武器に変更するために変数を+1するアクションを追加します。

①割り当てるモーションの選択でモーションを引き継ぐにチェックを入れます。

②重力の影響を受けないを選択します。

③その他の条件設定で共通変数:武器セレクト+=1.00を設定します。

f:id:AIAntbear:20180812142241p:plain

 [R:判定]→[変数+1]の条件

 R:判定から変数+1に遷移するための条件は、下図の白丸を満たさない場合になります。今回は、この条件を満たすために、→[弾(00)]、→[雲(01)]、→[リンゴ(02)]の優先度を1に設定して、→[変数+1]を優先度0で無条件に切り替えさせることにします。

f:id:AIAntbear:20180812143113p:plain

[判定:R]→[弾(00)][雲(01)][リンゴ(02)]

優先度を1に変更します。

f:id:AIAntbear:20180812144313p:plain

[判定:R]→[変数+1]

無条件で切り替えを選択します。

f:id:AIAntbear:20180812143551p:plain

[変数+1]→[判定R]

無条件で切り替えを選択します。

f:id:AIAntbear:20180812143902p:plain

このままでは、変数が3以上になってしまうので、変数>2のとき、変数=0とするアクションを追加します。

①割り当てるモーションの選択でモーションを引き継ぐにチェックを入れます。

②重力の影響を受けないを選択します。

③その他の条件設定で共通変数:武器セレクト0.00を設定します。

f:id:AIAntbear:20180812144705p:plain

次に、[変数+1]→[変数=0]のリンクを追加します。

 

その他の条件設定で共通変数:武器セレクト>2.00を設定します。

※武器が4種類の場合は3、5種類の場合は4を設定します。

f:id:AIAntbear:20180812145036p:plain

最後に、[変数:0]→[判定:R]のリンクを追加します。

条件は無条件に切り替えるを選択します。

f:id:AIAntbear:20180812145430p:plain

これでRを押した場合の処理は完成です。

同様にLを押した場合のアクションを追加します。

①割り当てるモーションの選択でモーションを引き継ぐにチェックを入れます。

②重力の影響を受けないを選択します。

③その他の条件設定で共通変数:武器セレクトー=1.00を設定します。

f:id:AIAntbear:20180812151315p:plain

[判定:L]→[変数ー1]

無条件で切り替えを選択します。

f:id:AIAntbear:20180812151413p:plain

[変数ー1]→[判定:L]

同様に無条件で切り替えを選択します。

f:id:AIAntbear:20180812152229p:plain

[判定:L]→[弾(00)][雲(01)][リンゴ(02)]

優先度を1に変更します。

f:id:AIAntbear:20180812151726p:plain

これでスイッチを設定した場所を飛ばして表示する武器セレクト用メニューの完成です。

f:id:AIAntbear:20180812151519p:plain

※初期アクションの変更

初期アクションは[弾(00)]となっております。セーブなどの状況により、変数が[弾(00)]とリンクしていない数字になっていると挙動がおかしくなる可能性があります。念のため、初期アクションを[判定:R]または[判定:L]に変更することをオススメします。

f:id:AIAntbear:20180812161528p:plain

最後に、攻撃(判定)にも、スイッチがONの時に遷移するようにリンクの条件を追加します。

f:id:AIAntbear:20180812152814p:plain

これでスイッチがONになった時に武器が追加される武器セレクトメニューの完成です。

f:id:AIAntbear:20180812152615g:plain

今回は3つでしたが、同じようにアイコンと弾発射アクションを追加することで、いくつでも追加することができます。 

※サンプルとして、武器が4種類の時のプログラムをご紹介します。

☆のリンクに対して、スイッチがONの条件をANDで追加すれば、ロックできます。

f:id:AIAntbear:20180812153409p:plain

枠は緑色の箇所を変数=-1→3、変数>3→0と変更します。

f:id:AIAntbear:20180812104801p:plain

※空欄を作って武器を選択しない場合を作りたい場合は、このように[攻撃(判定)]→[待機]へ直接リンクさせて、変数を指定することで実現できます。

f:id:AIAntbear:20180812155137p:plain

これで今回の講座は終わりです。参考になりましたでしょうか。

不明な点、おかしなところがございましたらコメントの方にお願いします。

アクツクMV初心者講座 弾の撃ち方編 弾はオブジェクト!

今回は、一見分かりにくい弾の発射方法を紹介します。

f:id:AIAntbear:20180809235704g:plain

タイトルにもある通り、弾は専用のオブジェクトを作る必要があります。

f:id:AIAntbear:20180809201825p:plain

オブジェクトなので攻撃方法を細かく指定できたり、上に乗って移動手段にしたりと自由に作りこむことができます。

今回は普通にまっすぐ飛ぶ弾を作りたいと思います。

完成予想図はこんな感じです。攻撃ボタンを押したら弾が発射されます。

f:id:AIAntbear:20180809235421p:plain

[前提条件]

・前回の講座から、待機、ジャンプ、歩きの作成が完了している。

f:id:AIAntbear:20180809203514p:plain

[用意するもの]

・弾の絵(必須) ※ない方のために、サンプルです。

f:id:AIAntbear:20180809203211p:plain

・弾の攻撃モーション(任意)

1.アニメーションを作る

1.1接続点の使い方

アニメーションを作る前に、接続点について説明します。

接続点は壁判定や当たり判定と同じように、アニメーションで設定できます。

f:id:AIAntbear:20180809204240p:plain

接続点は文字通り、別のオブジェクトと接続するための座標になります。

接続点と接続先のオブジェクトの関係を調べたところ、次のようになりました。

左側のがプレイヤー、右側の・が弾になります。

接続点と弾の原点(オフセット0.0)が重なるような位置から弾が発射されます。

f:id:AIAntbear:20180809230914p:plain

※接続点なしに設定すると、原点同士が重なるようですが、私の環境ではなぜかオフセット(24.24)の位置と弾の原点が重なるように発射されました。(おそらく不具合かどこかで変な設定が入っている)

なるべく接続点を設定することをオススメします。

これを意識してアニメーションを配置する必要があります。

1.2攻撃アニメーションを作る

[接続点]

接続点はプレイヤー側に設定する必要があります。では、攻撃モーションの弾を発射しそうな位置に接続点を設定していきましょう。なお、接続点はいくらでも増やせます。

①接続点の右側の■をクリックします。

②右側に接続点の設定が出てくるので、「キーフレームにする」「サイズと位置を指定」にチェックを入れます。

③接続点の位置を設定します。

f:id:AIAntbear:20180809212345p:plain

左側も同じように設定します。接続点は個別に設定する必要があります。

私はこんな感じのモーションにしました。ループは1回です。

f:id:AIAntbear:20180809212851g:plain

[弾のアニメーション]

 次に弾のアニメーションを準備します。

弾は新規アニメーションを追加する形で作成します。

弾もオブジェクトのため、当たり判定や壁判定を付けることができますが、今回は敵を貫通するように攻撃判定だけをつけます。

f:id:AIAntbear:20180809214408p:plain

 左側はこんな感じです。

f:id:AIAntbear:20180809214444p:plain

 これで準備は完了です。次はオブジェクトを作っていきます。

2.オブジェクトを作る 

登録の都合上、弾オブジェクト→攻撃アクションの順番で作成します。

 

2.1弾オブジェクトを作る

弾をまっすぐ飛ばすには、重力を無視して一定方向に移動するオブジェクトを作成し、一定時間経つと消滅するようにアクションを組む必要があります。

尚、アクション側でも重力を無視、飛ぶ方向を指定できます。どちらで指定しても良いですが、統一していないと後でわかりにくくなるので注意です。今回はオブジェクト側で設定していきます。

今回は壁判定の衝突はなしに設定します。※プレイヤーグループに当たるを選択すると自分で出した弾でダメージを受けます。

f:id:AIAntbear:20180809215836p:plain

①重力の影響を受けないにチェックを入れます。

②表示方向と同じ方向へ移動を設定します。※今回は240ドット進むようにします。

f:id:AIAntbear:20180809220823p:plain

次に、消滅用のアクションを追加します。

①モーション:設定しないを選択します。

②その他の実行アクションから「オブジェクトを消滅する」を設定します。

f:id:AIAntbear:20180809221556p:plain

[リンクの設定]

[弾発射]→[消滅]

今回は、2秒経過したら弾が自動的に消えるように設定します。

f:id:AIAntbear:20180809222014p:plain

これで弾は完成です。

2.2攻撃アクションを作る

[弾の設定を追加]

先ほど作成したオブジェクトを、プレイヤーの弾として登録します。

まず、プレイヤーオブジェクトの[スイッチ管理]の右側のマークをクリックします。

f:id:AIAntbear:20180809222530p:plain

「発射する弾の設定」にチェックを入れ、[OK]ボタンをクリックすると[スイッチ管理]の右側に[弾の設定]が追加されます。

f:id:AIAntbear:20180809222837p:plain

①弾の一覧の[+]をクリックすると、弾001が作成されます。

②弾にするオブジェクトを設定:に2.1で作成した弾のオブジェクトを選択します。

③「指定方向に飛ぶ」の「発射元の表示方向に飛ぶ」を選択します。

※発射元にと飛ぶ方向を一致させないと、今回設定したオブジェクトでは左向きで弾を発射しても右側に弾が飛びます。

f:id:AIAntbear:20180809234722p:plain

※弾の出る数や飛ぶ方向、軌道の変化、重力の影響や移動速度の変化を設定できます。

[攻撃アクションを追加]

①攻撃アクションを追加します。先ほど作成した攻撃モーションを設定します。

②「その他の実行アクション」から「弾を発射」をチェックし、先ほど作成した弾を選択します。

③接続点を選択:でアニメーションを作成したときに設定した接続点を設定します。

f:id:AIAntbear:20180809224238p:plain

これで設定した弾を接続点から発射するようになりました。

[リンクを追加]

[待機]、[歩き]、[ジャンプ]からの攻撃ボタンが押されたら弾を発射するように設定していきます。※ここではYを設定します。

 [待機]→[攻撃]

 [歩き]→[攻撃]

 [ジャンプ]→[攻撃]

Yボタンが押された瞬間を設定します。

f:id:AIAntbear:20180809231450p:plain

 ジャンプ、歩きについても同様にリンクさせます。

f:id:AIAntbear:20180809233150p:plain

 [攻撃]→ [待機]

攻撃から待機に移動する条件を指定します。

「モーションのアニメーションが最後まで実行された」、または「一定時間が経過」の好きな方を追加しましょう。経過時間は作りたいゲームの攻撃硬直を考えて調整してください。※無限ループにしている場合は「モーションのアニメーションが最後まで実行された」を選択すると待機に移動しないので注意してください。

f:id:AIAntbear:20180809234115p:plain

 これで弾を発射するアクションの完成です。

※注意 テストする前に、前の講座で敵のやられ設定をオブジェクトで指定している場合は、オブジェクトグループで指定:プレイヤーグループを選択してください。 

f:id:AIAntbear:20180809235017p:plain

それでは、[F5]キーを押してテストしてみましょう。 

※今回は1画面に弾が1つしか出せない設定のため、2つ目を出そうとすると空ぶります。

f:id:AIAntbear:20180809235913g:plain

いかがでしたでしょうか。弾は出せましたか。

分からない、描いてある通りにやってみたけど上手くいかない場合はコメントにお願いします。

※今回は説明を省略しますが、[攻撃]から[やられ]へのリンクも作る必要があります。

 

今回はここまでです。次回は近いうちに武器セレクトについて説明しようと思います。

f:id:AIAntbear:20180810000249g:plain

 

アクツクMV初心者講座 まずはゲームを作ってみよう

アクションゲームツクールMV(以下、アクツクMV)を使ったゲームの作り方を紹介していきます。

はじめに

アクツクMVはイラストさえ描ければ誰でも簡単にゲームが作れる素晴らしいツールです。
しかし、アーリーアクセス版ではチュートリアルが実装されておらず、サンプルゲームもクオリティが高いので、初心者の私にはとても難しいツールでした。
しばらくの間はサンプルプログラムと睨めっこしながら購入したことを後悔していましたが、操作を覚えていくうちにとても楽しくなり、ようやくゲームに必要な機能は一通り作れるようになりました。

 同じような経験をされている方、これから始めようと思っている方に向けて、簡単なゲームの作り方を紹介します。

 

こんな感じのゲームが作れるようになります。

f:id:AIAntbear:20180804154356g:plain

 

 

0.ゲームを作る流れ

 アクツクMVではこのような流れでゲームを制作します。

  1. 絵を描く
  2. 絵を組み合わせてアニメーションを作る
  3. アニメーションを組み合わせてオブジェクト(プレイヤー、敵、ギミック)を作る
  4. オブジェクトを組み合わせてシーン(ステージ)を作る
  5. シーンを組み合わせてゲームを完成させる

説明は絵を用意してあることを前提に進めさせていただきます。まずはアクツクMVを起動するところから始めます。

[プロジェクトを作る]

空のプロジェクトを作ります。既に作ってある方は飛ばしてください。

①「プロジェクトを作成」をクリックします。

②ゲームタイトルとプロジェクト名を入力します。

③今回は空のプロジェクトを作成にチェックを入れます。

※空のプロジェクトを作成にチェックをいらないと、サンプルプロジェクトのデータが入った状態でプロジェクトが作成されます。参考になるので慣れてきたら参照してみてください。

f:id:AIAntbear:20180804160907p:plain

 ゲームタイプを聞かれるのでサイドビューアクションを選択します。

f:id:AIAntbear:20180804161943p:plain

④ゲームのサイズを選択します。

※後から変更できます。今回は説明用にカスタムを選択しますが、作りたいサイズを選んでください。

f:id:AIAntbear:20180804161946p:plain

 これで新しいプロジェクトができました。

 まだ動作が不安定なので、こまめにセーブしておきましょう。

1.素材の準備

アクツクMVではpng形式、jpg形式、webp形式、tga形式の画像を素材として使用できます。また、キャラクターサイズに指定はありません。

どのようなゲームを作りたいか、どんなアニメーションが必要かを考えてイラストを準備しましょう。

今回のゲーム制作で使うモーションは待機、歩く、ジャンプ、やられ、喜び(ステージクリア)の5つです。

※後で説明しますが、イラストを反転させることができるので、片方の向きだけ作成すればOKです。左右反転させると文字がおかしくなる場合のみ作成してください。(サンプルの一番下の段)

※注意 画像はすべて縦〇分割、横□分割といった形で分割されます。サイズがそろうように調整しましょう。
※注意 同じアニメーション内に別の画像ファイルを登録することはできません。なるべく同じキャラクターのものは一つにまとめましょう。

 

 サンプルの画像を勝手に使ってよいかわからなかったので、とりあえず私の作ったアリクイとタイル用の画像を置いておきます。自由に利用いただいて構いません。

f:id:AIAntbear:20180804163025p:plainf:id:AIAntbear:20180804163028p:plain

 [アクツクMVに画像を取り込む]

作成したイラストを登録していきましょう。

ここではサンプルの画像に合わせて説明していきますので、ご自分で用意したイラストのサイズに合わせて各自調整してください。

①[素材]-[画像]とクリックします。

②右クリック、もしくは下にある紙のようなマークをクリックします。

③[読込]ボタンをクリックし、画像を取り込みます。

④分割の初期値を設定します。サンプル画像は横5縦6です。

⑤[更新]ボタンをクリックします。

f:id:AIAntbear:20180804164311p:plain

これで画像の取り込みは完了です。

同様にタイルも取り込みます。サンプルのタイルは縦10横10です。

f:id:AIAntbear:20180804165515p:plain

SE、BGMなども取り込めます。今回はSE、BGMについては特に説明はしません。

2.プレイヤーキャラクターをつくろう

最初に、今回作るキャラクターのアクションプログラムをお見せします。何となくキャラクターがどういう行動をするかイメージが沸くと思います。

f:id:AIAntbear:20180805080149p:plain

待機:キー入力待ちの状態 [2.1で説明]

歩き:→もしくは←が入力されたら移動 [2.2で説明]

ジャンプ:Aボタンが押されたらジャンプ [2.3で説明]

踏みジャンプ:ジャンプで敵を倒した時の行動 [4.3で説明]

やられ:ダメージを受けたときの行動 [5.2で説明]

クリア:ステージクリアしたときの行動 [6.6で説明]

では、順番に作り方を説明していきます。

2.1待機モーションをつくろう

待機モーションは、一般的にキー入力がない状態のアニメーションです。

立ち絵1枚でも良いですが、髪や衣装を風になびかせたり、一定時間が経過すると姿勢を崩したり凝ったモーションを作っても面白いです。

[アニメーションの作成]

アクツクMVでアニメーションを作る方法を説明します。

①[アニメーション]をクリックします。赤枠内で右クリックし、「アニメーションを追加」をクリックします。

f:id:AIAntbear:20180804172103p:plain

②アニメーション名を変更します。※ここではプレイヤーとします。

③[+]ボタンをクリックします。

f:id:AIAntbear:20180804172108p:plain

 ④プルダウンから先ほど登録した画像を選択します。画像分割は設定済みであれば変更する必要はありません。選択が完了したらOKボタンをクリックします。

※素材を登録していなくても、[新規]ボタンから直接画像を取り込むことができます。f:id:AIAntbear:20180804172111p:plain

⑤OKボタンをクリックします。

f:id:AIAntbear:20180804172114p:plain

※1つのアニメーションにつき複数の画像を設定できますが、現時点で1つのモーションにつき、1つの画像しか使えません。(厳密にはモーション内の左右で別の画像を指定可能)

[モーションの編集]

モーションは全8方向毎のフレームをまとめたものになります。この後説明するオブジェクトはアニメーション単位で設定し、オブジェクト内のアクションはモーション単位で設定します。

では、作成したアニメーション内にモーションを追加していきます。

最初は一枚の絵をループさせるように設定します。

①作成されたモーション001をクリックして名前を変更します。※ここでは待機とします。

②ここでループ回数を選択できます。

※待機、歩きなど繰り返し表示したい場合は無限ループ、攻撃や演出などで使いたい場合はループ回数を指定しましょう。

※この後出てくるオブジェクトの動作条件にアニメーションが終わった場合を指定することができます。無限ループにチェックが入っているといつまでも条件を満たさないので注意しましょう。

f:id:AIAntbear:20180804183758p:plain

③表示方向をクリックして名前を変更します。ここでは右とします。

④[→]をクリックして緑色にします。

※ここで指定した方向キーを入力したときに設定したアニメーションを表示します。サイドビューアクションでは基本的に←と→しか使いません。

例えば、[←]に設定すると、左方向にキーを入力したとき、逆向きで移動します。

表示方向が意図した向きと逆になる場合はここの設定を疑ってください。

f:id:AIAntbear:20180804183813p:plain

⑤フレームの0s 1fをクリックします。

※フレームを追加していき、表示するフレーム数(表示時間)を設定することで、パラパラ漫画を作るみたいにアニメーションを作ることができます。左下の再生マークを押せば設定したアニメーションを見ることができます。

⑥フレームに表示する画像を選択から、待機に設定する画像を選択します。※ここでは左上を選択します。

⑦表示するフレーム数を設定します。

⑧オフセット、中心点、スケールを設定します。

※画像のサイズが同じであればデフォルトでも問題ありませんが、サイズが異なる場合は特徴ある位置に設定しましょう。ここでは足の付けが原点になるようにしております。

※中心点は画像を回転させるときに使います。

f:id:AIAntbear:20180804183816p:plain

⑨壁判定を設定します。キーフレームにするにチェックを入れ、画像にあったサイズ、位置を設定します。今回は顔と尻尾を覆うように設定します。

※壁判定はタイルや他のオブジェクトの壁判定と接触する面になります。

※壁判定が無いとタイルをすり抜けます。アクションの設定で「重力の影響を受けない」にしないと床から落ちて画面外に出てしまいます。

f:id:AIAntbear:20180804183821p:plain

⑩当たり判定を設定します。キーフレームにするにチェックを入れ、画像にあったサイズ、位置を設定します。壁判定と同じ値を設定します。

※当たり判定は他のオブジェクトの攻撃判定に当たるとダメージを受けます。

f:id:AIAntbear:20180804183825p:plain

[左向きのアニメーション登録]

右向きを設定したら左向きを設定します。

左向きは右向きの設定をコピーして反転させる方法が簡単です。

①表示方向の右をコピーして左を作ります。

②左をクリックします。[←]をクリックして緑色にします。また、[→]をクリックして白色にします。

f:id:AIAntbear:20180804183830p:plain

③0s 1fをクリックします。左右反転をクリックします。

※注意 接続点、中心位置は反転しませんので、個別に設定を変更する必要があります。

[2018/11/28追記]ver0.9.2では、接続点など反転する仕様に変更になりました。代わりに、原点反転からオフセットX軸がマイナスになる仕様に変更になっております。例えばオフセットX:10の場合、X-10になるため、X-10⇒X:10に手動で変更する必要があります。一括選択でオフセットを変更できるのでまだ楽です。

※注意 画像に文字を入れている場合など、そのまま反転させると不都合がある場合は、左向き専用の画像をあらかじめ準備して設定する必要があります。

f:id:AIAntbear:20180804183837p:plain

point: 待機モーションを凝る

こんな感じにフレームを並べれば、耳をピコピコさせるアニメーションができます。フレームの感覚は何度か再生して調整しましょう。

f:id:AIAntbear:20180805012054p:plainf:id:AIAntbear:20180805011405g:plain

point: 複数フレームの反転方法

複数画像を登録している場合はキーボードの[Ctrl]キーを押しながらクリックすると複数選択できます。複数選択した状態で左右反転にチェックを入れるとすべて左右反転します。 

f:id:AIAntbear:20180805010807p:plain

 point: モーションのコピー

モーションは新規作成するとオフセットや壁判定などを一々設定しなおす必要があり、面倒です。

テンプレートとなるモーションを準備しておくと便利です。

f:id:AIAntbear:20180805012808p:plain

[オブジェクトの作成]

オブジェクトとは、プレイヤーや敵、ゴールやコイン、弾といったゲーム画面に表示される壁以外の物全てです。オブジェクトをたくさん作り、シーン(フィールド)に配置してゲームを作ることになります。オブジェクトの追加はよく使う機能なので使っていくうちに慣れましょう。

①メニューの[オブジェクト]をクリックします。
②オブジェクト一覧の赤枠内を右クリックします。オブジェクトの追加をクリックします。

f:id:AIAntbear:20180805085233p:plain

 ③今回はプレイヤー用なので、以下のように設定します。

注意:「オプション:入力デバイスで操作するオブジェクト」にチェックを、コントローラーで動作しません。逆に、プレイヤー以外でチェックを入れてしまうと、操作できてしまいます。

オブジェクト名:ここではプレイヤーとします。自由につけて構いません。

アニメーション:先ほど作ったモーションを選択します。

f:id:AIAntbear:20180805085242p:plain

④アクションが1つ自動で作成されますので、名前を待機に変更し、モーションに先ほど作った待機モーションを設定します。

f:id:AIAntbear:20180805090641p:plain

バーを下にスクロールさせるか、待機モーションを選択の▼をクリックすることで実行アクション、その他の実行アクションを設定できます。待機モーションは何もアクションを実行しないため、特に設定しません。

f:id:AIAntbear:20180805091758p:plain

これで待機モーションは完成です。

2.2キャラクターを歩かせよう

次に、プレイヤーオブジェクトに追加する歩きアクションを作成しましょう。

まずは歩くアニメーションから作成します。

こんな感じで既に作ってあるモーションやフレームをコピーするとオフセットや壁判定などを再入力しなくてよいので楽です。

f:id:AIAntbear:20180805093256p:plain

左側も忘れずに作成しましょう。

f:id:AIAntbear:20180805093246p:plain

こんな感じに設定しました。画像は3枚もあれば歩いているように見えますね。

f:id:AIAntbear:20180805094608g:plain

[歩きアクションの作成]

作ったモーションをオブジェクトに追加します。

①[オブジェクト]メニューをクリックします。画面を右クリックして「アクションの追加」をクリックします。

f:id:AIAntbear:20180805100211p:plain

②作成されたアクションをクリックして、名前とモーションを設定します。歩きアクションは特に設定する必要はありません。※厳密には[基本設定]、[移動とジャンプ]タブで設定する必要があります。後で説明しますのでここでは触れません。

f:id:AIAntbear:20180805100508p:plain

[リンクの作成]

リンクはアクション同士をつなぐものです。様々な条件を設定でき、条件を満たした場合に繋いだ先のアクションを実行します。

ここでは[待機]→[歩き]、[歩き]→[待機]の二つのリンクを作成します。

[待機]→[歩き]

①待機アクションを右クリックします。「リンクを追加」をクリックします。その後、歩きアクションをクリックすると繋がります。

f:id:AIAntbear:20180805101331p:plain

②追加したリンクをクリックします。

③以下の入力が操作されたにチェックを入れます。

f:id:AIAntbear:20180805102402p:plain

④今回は→または←が押されたら歩きアニメーションを表示するようにします。

一括で選択できないので、一つ一つ選択します。

押された瞬間は1回だけ入力したいときに使います。メニューを十字キーで選択させたいときは「押されただ」と押されている間下に進んでしまいますので思った場所に選択できない場合があります。

f:id:AIAntbear:20180805102735p:plain

⑤同様に、「←を押された」を設定します。

⑥条件が二つ以上ある場合、ANDとORが出てきます。

AND:両方の条件を満たす場合リンク先へ

OR:片方の条件を満たしている場合リンク先へ

※アクションの切り替え条件の「すべての~」は「入力に関する条件判定」と「その他の条件判定」の両方を満たしているという意味です。

f:id:AIAntbear:20180805103746p:plain

これで、このオブジェクトは待機の時に→または←が入力されたら歩きモーションを表示するようになりました。

[歩き]→[待機]

同様に、リンクを追加していきます。

歩きから待機に戻る条件は、[←も→も押されていない]を条件に設定していきます。[何もキー入力されていない」にすると、歩き中に↑や↓を押している間、歩きモーションを取り続けますので今回の条件としては適さないです。

①入力に関する条件設定に「→が離れている」を追加します。

②同様に、[←が離れている]を追加します。

③条件はANDのままにします。

f:id:AIAntbear:20180805105822p:plain

これで→または←が入力されている間は歩きモーション、キーが離されたら待機モーションになるオブジェクトになりました。

2.3キャラクターをジャンプさせよう

次に、Aボタンが押されたら、ジャンプ行動をするアクションを追加します。

今回は同じ高さにジャンプする方法を説明します。調整ジャンプなどは別の機会があれば説明していきます。

[ジャンプアニメーションの作成]

ジャンプは無限ループではなく、ループ1回にしました。

ジャンプが頂点のときにモーションを変える事も可能です。今回は、私の書いたイラストでは頂点で手を上げるとモーションに違和感があったので、フレームを調整して上昇中に手を上げるように調整しています。

f:id:AIAntbear:20180805111556p:plain

完成イメージはこんな感じです。使った画像は画像2枚ですが十分ジャンプして見えます。

f:id:AIAntbear:20180805111858g:plain

[オブジェクトの作成]

続いて、オブジェクトにアクションを追加していきます。

①名前をジャンプに変更し、上で作ったジャンプモーションを登録します。

②右側の画面をスクロールして、実行アクションの「ジャンプ動作を行う」にチェックを入れます。

f:id:AIAntbear:20180805112958p:plain

[リンクの作成]

[待機]→[ジャンプ]

①待機からジャンプのリンクを追加します。

すべての条件が満たされていたら切り替えにチェックを入れます。

※注意 すべての条件が満たされていたら切り替えに設定しないと、タイルに乗っている間はジャンプしてしまいます。

③入力に関する条件判定の[+]ボタンをクリックし、条件にAボタンが押された瞬間を追加します。

f:id:AIAntbear:20180805113634p:plain

※これだけだと、落下中に空中でジャンプできてしまいます。いくつか、防止する方法はありますが、今回は足元のタイルに接しているという条件を加える方法で空中でのジャンプを防止します

※注意 「坂に接触」という条件も必要になります。[2018/8/8追記]

f:id:AIAntbear:20180805114424g:plain

④その他の条件設定の[+]をクリックし、タイルの壁判定に接触にチェックを入れます。その後、▼をクリックして橙色に変更します。

f:id:AIAntbear:20180805115044p:plain

※注意 初期の状態だと、ウインドウが小さくてすべての条件が見えない場合があります。見えるように枠を調整しましょう。

⑤他オブジェクトの壁判定に接触にチェックを入れます。その後、▼をクリックして橙色に変更します。

f:id:AIAntbear:20180805115047p:plain

⑥その他の条件設定をAND→ORに変更します。

f:id:AIAntbear:20180805115051p:plain

⑦同様に、坂に接触を選択し、ORを設定します。[2018/8/8追記]

f:id:AIAntbear:20180808162452p:plain

これで待機→ジャンプのリンクは完成です。

 [ジャンプ]→[待機]

ジャンプから待機へのリンクも、タイルまたは他オブジェクトに接触とします。理由は着地するまでジャンプモーションを維持するためです。

①ジャンプを右クリックし、リンクを追加をクリックします。次に待機をクリックしてリンクを繋げます。
②いずれかの条件が満たされていたら切り替えにチェックを入れます。

f:id:AIAntbear:20180805120730p:plain
③その他の条件設定の[+]をクリックし、タイルの壁判定に接触にチェックを入れます。
 その後、▼をクリックして橙色に変更します。

f:id:AIAntbear:20180805115044p:plain
④他オブジェクトの壁判定に接触にチェックを入れます。
 その後、▼をクリックして橙色に変更します。

f:id:AIAntbear:20180805115047p:plain
⑤その他の条件設定をAND→ORに変更します。

f:id:AIAntbear:20180805120404p:plain

⑥同様に、坂に接触を選択し、ORを設定します。[2018/8/8追記]

f:id:AIAntbear:20180808162505p:plain

[歩き]→[ジャンプ]

歩きからジャンプもリンクさせます。これがないと歩きながらジャンプができません。

待機からジャンプと設定は同じなので、そのままコピーしましょう。
①[待機]→[ジャンプ]のリンクを右クリックします。その後、コピーを選択します。
歩きを右クリックします。
リンク元のアクションを右クリックしペーストをクリックします。

③[ジャンプ]をクリックします。これでリンクが複製されます。

f:id:AIAntbear:20180805121512p:plain

こんな感じになります。これでジャンプは完成です。

f:id:AIAntbear:20180805121935p:plain

図には記載がありませんが、その他の条件に「坂に接触」「OR」の条件も必要です。[2018/8/8追記]

2.4キャラクターの基本設定をしよう

キャラクターができたので、オブジェクトの基本設定を設定します。基本設定はオブジェクト単位で設定できます。今回は「プレイヤー」オブジェクトの設定をしていきます。

コントローラーで動かすために必要な設定などが含まれるので、忘れないようにしましょう。

[基本設定]

基本設定は体力や攻撃力、消滅条件などを設定できます。

①[オブジェクト]-[プレイヤー]-[基本設定]をクリックします。

f:id:AIAntbear:20180805122618p:plain

②以下のパラメータを設定します。

体力:今回は3に設定します。作成するゲームに合わせて変更してください。

攻撃にクリティカルを設定一定確率でダメージが大きくなります。今回のアクションゲームには不要なのでチェックを外します。敵が想定以上のダメージを出す場合はこのチェックが有効になっていないか確認しましょう。

ダメージを受けた時の無敵時間:ダメージを受けた時に無敵にするか、その時の点滅の演出時間を設定できます。やられモーションのアニメーション演出に合わせて設定しましょう。

f:id:AIAntbear:20180805123259p:plain

[移動とジャンプ]

文字通り、左右の移動速度やジャンプの高さを設定できます。

①[オブジェクト]-[プレイヤー]-[移動とジャンプ]をクリックします。

f:id:AIAntbear:20180805122639p:plain

操作キー設定で右方向への移動、左方向への移動を設定します。

※注意 ここの設定を忘れると、←→キーを入力したときに移動しません。その場で右や左を向くだけになってしまいます。

※今回は上、下方向への移動はないので、左右以外は設定しません。また、重力を無視させないと、上方向に移動してもすぐに落ちてしまいます。

③基本移動のパラメータを設定します。今回は左右のみの設定となります。

f:id:AIAntbear:20180805124330p:plain

※加速移動は今回設定しませんが、ここで設定できます。
③画面をスクロールさせると、ジャンプと落下に関するパラメータがあります。ジャンプの初速と重力の影響を設定し、ジャンプの高さを落下速度を設定します。

※テストプレイを何度か行い、理想的なジャンプの高さに調整しましょう。

④今回はジャンプ中の起動修正を不可のチェックを外します。デフォルトではチェックが入っております。

※ジャンプ中に軌道を変えたくないゲームを作る場合はチェックを入れてください。

f:id:AIAntbear:20180805125139p:plain

これでプレイヤーオブジェクトの設定が完了しました。この時点で移動とジャンプは出来るので、実際にプレイヤーを動かしてみようと思います。その前に、動かすためのフィールドを作ります。

3.フィールドを作ろう

フィールドはシーンにタイルとオブジェクトを配置して作ります。4つのレイヤーを重ね合わせてゲームの世界観を表現していきます。

f:id:AIAntbear:20180805132403p:plain

上のシーンをゲーム画面にすると、このように表示されます。

f:id:AIAntbear:20180805132656p:plain

 では、作り方を説明します。

3.1タイルの設定

タイルは壁であり飾りです。床や壁、木々や背景の動物など、オブジェクトを作らずに表現できます。では、タイルを追加して使えるようにしていきましょう。

①[タイル]をクリックします。

②赤枠内を右クリックして、「タイルを追加」をクリックします。

f:id:AIAntbear:20180805133315p:plain

③通常タイルを選択します。

④画像を選択のプルダウンから最初に登録したタイルを選択します。

※未登録の場合、新規画像からも登録できます。

f:id:AIAntbear:20180805133432p:plain

⑤タイルのマスをクリックすると壁判定を設定できます。[全て壁]ボタンをクリックします。※今回は説明のため一番左下のマスのみを足場ブロックとして使います。

f:id:AIAntbear:20180805133651p:plain

※この説明で使っているタイルの設定について

せっかくなので、私の作ったタイルを紹介します。枠の黒いタイルは壁設定をしております。左上の3つのタイルは、道の反対側を表現しているので壁判定はつけません。

f:id:AIAntbear:20180806222704p:plain

ゲーム画面はこんな感じです。蟻塚が浮いているのはこのタイル用にイラストを準備したためです。

f:id:AIAntbear:20180806222556p:plain

3.2シーンの設定

タイルやオブジェクトを配置するためのシーンを作成していきます。

①[シーン]をクリックします。

②右クリックして、「シーンを追加」をクリックします。

f:id:AIAntbear:20180805134058p:plain

③シーン名を変更します。※この講座ではデフォルトのままで進めます。

④タイルセットの[+]をクリックします。先ほど登録したタイルを選択します。

⑤初期表示メニュー画面をメニュー1にします。

※BGM、背景画像を選択できますが、この講座では設定しません。

f:id:AIAntbear:20180805134716p:plain

⑥シーン一覧に追加されたscene001をクリックします。

⑦左上の[タイル]タブをクリックします。

⑧壁判定のあるタイルをクリックして、右側のシーンにタイルを配置します。

※レイヤー:配置したタイルは4つのレイヤーを重ねて表示されます。タイルとオブジェクトは同じレイヤー内にあるもののみ干渉します。例えばプレイヤーをレイヤー2、壁判定のあるタイルをレイヤー3に配置するとプレイヤーはタイルに乗ることも当たることもできません。そのため、プレイヤーとタイル、敵キャラやゴールは同じレイヤーに配置する必要があります。

f:id:AIAntbear:20180805135415p:plain

⑨左上の[オブジェクト]タブをクリックします。

⑩プレイヤーをクリックして、右側の画面に配置します。

※プレイヤー配置後、もう一回クリックすると2個目が配置されてしまいます。右クリックすることでオブジェクトの選択を解除できます。

f:id:AIAntbear:20180805140615p:plain

POINT:オブジェクトの表示優先度について

同じレイヤー内の表示は下に行くほど手前に表示されます。

プレイヤーを一番手前に表示する場合は、オブジェクト追加後に一番下に移動させましょう。

※別のプロジェクトでは、右側の画面を右クリックして、前面に表示、背面に表示を設定しないと変わらないケースがありました。どちらが仕様か不明のため、色々試してみてください。[2018/8/8追記]

f:id:AIAntbear:20180805140051p:plain

テストプレイ用に配置は適当で構いません。オブジェクトの作成がすべて終わったら配置を考えてステージを作り上げましょう。

3.3テストプレイ

テストプレイでプレイヤーを動かしてみましょう。

テストプレイは[F5]キーを押すと、大体どの画面からでもゲーム画面が起動します。(設定のためにポップアップ上で作業している場合はF5を押しても起動しません。)

※動きがおかしい場合は、上の設定を見直しましょう。

POINT:画像を修正しよう
テストプレイをして、画像におかしい場所がある場合は、1.素材の準備に戻って画像を更新しましょう。
取り込む画像のサイズが変わらない限り、画像を更新してもアニメーションやアクションを作り直す必要はありません。色の塗り忘れとか、表情の微調整など手軽に出来ます。

4.攻撃判定を追加しよう

攻撃判定はアニメーションの作成画面で追加することができます。

今回はジャンプモーションに攻撃判定を付けていきます。と、その前に、攻撃を受ける敵キャラを準備します。敵キャラを作りながら攻撃判定の追加方法を説明します。

4.1敵キャラをつくる

今回はただ歩くだけのキャラを作っていきます。

敵キャラは複雑な動きを作ろうと思うと非常に難しいです。無理して複雑な動きを作ろうとせず、シンプルな動きの敵を組み合わせることで初心者でも難しいステージは作れるかと思ってます。

敵はこの画像を使って説明していきます。こちらもご自由にお使いください。

f:id:AIAntbear:20180805143341p:plain

[アニメーションを設定]

アニメーションを追加します。今までプレイヤーの中にモーションを追加しておりましたが、敵キャラ用に新たにアニメーションを追加します。※ここでは敵1という名前に設定します。

[待機]

待機は画像1枚にしております。 ※画像は9fになっておりますが、実際は1fです。

f:id:AIAntbear:20180805224122p:plain

[攻撃]

攻撃は3枚を無限ループさせる形にしました。

f:id:AIAntbear:20180805144343p:plain

 [やられ]

やられモーションは壁判定、当たり判定を削除しました。

削除方法は、壁判定の緑色部分で右クリックして削除を選択です。(当たり判定も同様)

※壁判定を削除すると、最初に見せた動画のような、地面から落ちるようなやられモーションになります。

ループは1回のみです。タイルから落ちないようにするには壁判定を残しましょう。

f:id:AIAntbear:20180805144839p:plain

同じ画像をこのように中心点から回転させることでひっくり返るようなやられモーションを演出できます。

※左右反転させる場合は、-45度、-90度、-135度、-180度と設定します。

f:id:AIAntbear:20180805144824p:plain

[攻撃判定の追加]

攻撃判定は壁判定や当たり判定と同じようにサイズや位置で設定できます。フレーム単位で判定の大きさを変えることができますが、今回は全フレーム同じ大きさに設定します。また、攻撃判定はデフォルトで空のキーフレームが指定されています。

①攻撃判定の■をクリックします。
②キーフレームにするをクリックします。

③サイズと位置を指定を選択します。その後、サイズを設定します。
※敵を踏んで倒す設定なので、踏んだ時にダメージが入らないように、上の攻撃判定を少し小さく設定します。

f:id:AIAntbear:20180805145838p:plain

※注意 ダメージの判定には若干ラグがあります。

下の動画はリンクの条件は一緒で重力の影響が異なります。2回目のジャンプの方が落下速度が速いので、敵を倒す前にダメージが入ってしまいます。重力8で6ドットくらい当たり判定と攻撃判定を離す必要がありました。何度かテストして重力への影響や攻撃判定の範囲を調整しましょう。

f:id:AIAntbear:20180805143205g:plain

[敵オブジェクトを作る]

敵オブジェクトを作成します。

作り方はプレイヤーオブジェクトと大体同じです。

今回は「プレイヤーが近づくと直進してくる」敵を作ります。

最終的なイメージはこんな感じです。

f:id:AIAntbear:20180805150903p:plain

①[オブジェクト]をクリックします。プレイヤーの下あたりの空間を右クリックし、「オブジェクトの追加」をクリックします。

f:id:AIAntbear:20180805151912p:plain

②作成した敵のアニメーションを選択します。

③エネミーグループとして判定されるオブジェクトを選択します。

④プレイヤーグループの壁判定と衝突するのチェックを外します。

※壁判定と衝突するにチェックを入れると、敵に突進されたときに押されてしまいます。ダメージを受けている間はすり抜けるようにしたい場合はここのチェックを外す必要があります。

f:id:AIAntbear:20180805152112p:plain

⑤[待機][攻撃][やられ]アクションを追加します。待機、やられはその他の実行アクションは設定不要です。

f:id:AIAntbear:20180805152459p:plain

※[やられ]の「その他の実行アクション」に次のような設定を入れると、右下にころっと落ちる感じになります。

f:id:AIAntbear:20180805175445p:plain

⑥[攻撃]アクションのその他の実行アクションを追加します。[+]をクリックして、移動方向を指定して移動を選択します。方向を270.0にして[OK]ボタンをクリックします。

※この場合、待機から条件を満たしたら左側に移動します。

f:id:AIAntbear:20180805153320p:plain

[リンクの追加]

[待機]→[攻撃]

その他の条件で、「他のオブジェクトとの距離」を指定します。図のように、「プレイヤーとの距離が120ドット以下なら」と設定します。敵の縄張り(120ドット)に入ったら攻撃されるようになります。

f:id:AIAntbear:20180805153833p:plain

POINT:距離の基準点は赤線の交わっているところ(原点)になります。中心点でも接続点でもありません。

f:id:AIAntbear:20180805154329p:plain

[待機]→[攻撃]

その他の条件で、「攻撃判定にあたる」にチェックを入れます。[全て指定]ボタンをクリックします。オブジェクトで指定からプレイヤーを選択します。

※今回は条件を「体力が0」にしても同じです。

f:id:AIAntbear:20180805155156p:plain

[攻撃]→[やられ]

待機→やられとまったく同じ設定ですので、リンクをコピーすると楽です。

f:id:AIAntbear:20180805155612p:plain

最後に敵の基本設定を変更します。
クリティカル設定を入れているとダメージが想定より多くなるので、ここではチェックを外します。
また、敵がやられて画面外に出た時にオブジェクトを消滅するように設定します。

※消滅後の復活条件について

カメラから出たら:同じシーン内でも画面の外にでたら復活します。

シーンが切り替わった:別のシーンに移動して戻ってきたときに復活します。デフォルトではこれです。ゲームオーバー画面を作って条件で切り替える場合、リトライ時に敵が復活するといった使い方もできます。

アクションで復活:消滅したオブジェクトを復活させる実行アクションがあります。

無し:復活しません。弾などは無しに設定しないとシーンに戻った時に復活してしまいます。

f:id:AIAntbear:20180805160223p:plain

これで敵が完成しました。

scene001にオブジェクトを配置して、近づいたら動き出すか確認してみましょう。

f:id:AIAntbear:20180805155840p:plain

4.2ジャンプに攻撃判定を追加する

ジャンプにも攻撃判定を追加します。今回はジャンプなので足元に作りますが、斬撃や銃撃など、攻撃モーションに合わせて攻撃判定を追加してください。

また、右クリックすると新規で攻撃判定や当たり判定などを増やせますので、特殊な形の攻撃なんかも実現できます。

①アニメーションから[プレイヤー]-[ジャンプ]-[右]を選択します。

②攻撃判定の■をクリックし、キーフレームに設定します。足元に攻撃判定を追加します。今回は1ドット分足元に追加しました。

f:id:AIAntbear:20180805161205p:plain

③当たり判定と攻撃判定が一緒だと攻撃時にダメージを受けてしまうので、当たり判定を小さく設定しなおします。

④右だけでなく、左も同じように設定します。

f:id:AIAntbear:20180805161350p:plain

4.3ジャンプ攻撃後の動作追加

ジャンプの攻撃判定ができました。このままでもよいですが、敵を踏みつけた時に少しジャンプする設定にしたいと思います。

f:id:AIAntbear:20180805162908g:plain

[踏みジャンプアクションの追加]

ジャンプ後に、敵に攻撃が当たったら別の行動をするようにアクションを追加していきます。

 

①プレイヤーに新規アクションを追加します。アニメーションはジャンプを流用します。

②ジャンプ行動を行うにチェックを入れます。ジャンプ速度を変更(%)を60.00に変更します。※このパラメータを変更すればジャンプの高さを調整できます。

f:id:AIAntbear:20180805162746p:plain

[踏みジャンプのリンクを追加]

[ジャンプ]→[踏みジャンプ]

条件に「オブジェクトの当たり判定に接触」というのがあります。これを使って攻撃がヒットしたらアクションを実行するようにします。

①その他の条件設定の[+]をクリックします。

②オブジェクトの当たり判定に接触にチェックを入れます。

③足元の方向を指定します。対象をエネミーグループに設定します。

f:id:AIAntbear:20180805170108p:plain

[踏みジャンプ]→[待機]

ジャンプ→着地と同じ条件ですのでリンクをコピーしましょう。

f:id:AIAntbear:20180805170437p:plain

これでジャンプ攻撃の完成です。

[F5]キーを押して、正常に動作するか確認してみてください。

※踏みつけ時にダメージを受ける場合はプレイヤーの当たり判定か重力の影響、敵の攻撃判定あたりを調整してみてください。

※実はこのままだと、踏みジャンプ中に敵を倒しても、もう一度踏みジャンプを行うことができません。また、ジャンプせずに落下した場合については攻撃判定すら出ません。仕様と割り切るか、アクションを修正するかは制作する難易度と相談して決めましょう。今回は仕様として割り切ります。(気になる方は下のPOINTのジャンプ攻撃が踏みジャンプですのでチャレンジしてみてください。)

POINT:

慣れてきたらジャンプ攻撃に限らず、既に作ってあるアクションから攻撃、しゃがみ、ダッシュなど、他のアクションとの関係を考えながらどんどんアクションを足していきましょう。(下は一例です。)

f:id:AIAntbear:20180806230638p:plain

5.ゲームオーバーを作る

体力が0になったら、ゲームオーバー画面に遷移させる方法を説明します。今回は残機などは作りません。完成するとこんな感じになります。

f:id:AIAntbear:20180805171515g:plain

5.1ライフゲージを作る

ゲームオーバーを作る前にライフゲージを作ります。最大体力は変更できませんが、比較的簡単に体力ゲージを作る方法を紹介します。

なお、今回は最大体力3のゲームを例に説明します。体力5とかであれば同じ方法で作れます。

最初にライフの画像を用意します。※残り体力ごとに画像を用意すると簡単です。

f:id:AIAntbear:20180805143355p:plain

[ライフアニメーションの追加]

①新規にアニメーションを追加します。

②ライフ0~3のモーションを追加します。当たり判定などは削除します。

f:id:AIAntbear:20180805172730p:plain

[ライフオブジェクトの追加]

今回はメニュー画面にオブジェクトを配置する想定です。

①新規でオブジェクトを追加します。※判定のチェックはすべて外します。

f:id:AIAntbear:20180805173000p:plain

②[ライフ3][ライフ2][ライフ1][ライフ0]を追加します。

※4つとも重力の影響を受けないにチェックを入れます。チェックが入ってないと落ちます。

f:id:AIAntbear:20180805173712p:plain

[ライフのリンクを追加]

ライフが0になった時1になった時2になった時、3になった時のリンクをそれぞれ設定します。

こんな感じのリンクを作っていきます。

f:id:AIAntbear:20180805174151p:plain

[ライフ0]→[ライフ3]
[ライフ1]→[ライフ3]
[ライフ2]→[ライフ3]

①その他の条件にスイッチ・変数が変化を選択します。

②変数に条件を指定を選択し、条件をプレイヤー単体 体力=3と設定します。

※設定は共通なので、リンクをコピーすると楽です。

f:id:AIAntbear:20180805174709p:plain

[ライフ0]→[ライフ2]
[ライフ1]→[ライフ2]
[ライフ3]→[ライフ2]

同様に、体力=2になった時を条件に設定します。

f:id:AIAntbear:20180805174949p:plain

[ライフ0]→[ライフ1]
[ライフ2]→[ライフ1]
[ライフ3]→[ライフ1]

こちらも同様に体力=1となるように設定します。

f:id:AIAntbear:20180805175753p:plain

[ライフ1]→[ライフ0]
[ライフ2]→[ライフ0]
[ライフ3]→[ライフ0]

体力0も作成します。

f:id:AIAntbear:20180805175921p:plain

[メニューに登録する]

メニューにはオブジェクトを配置することができ、シーンのレイヤー1より手前に表示されます。

①[シーン]-[オブジェクト]とクリックします。

②menu sceneをクリックします。

③ライフオブジェクトを配置します。

※メニューはscene001を作成したときに設定画面からメニューを指定しております。テストプレイで表示されない場合は、scene001を右クリックして「シーンの設定」を開き、初期表示メニュー画面の設定を見直してください。

f:id:AIAntbear:20180805180829p:plain

④[F5]キーを押してライフが正しく減るかテストをします。表示がおかしい場合はリンク設定かアニメーションが間違っている可能性が高いです。

※敵の前にタイルを張るとテストが楽になります。 

5.2やられモーションを作る

この説明は飛ばしても構いません。

ダメージを受けた時、現在はノーリアクションになっております。昔のゲームによくある、ダメージを受けると数マス分後ろに下がって穴に落ちる、といったゲームを実現させたい方のために、ダメージを受けたら一定時間操作できないアクションの追加方法を説明します。

※ただし、リンクの処理のラグの関係で、今回説明する方法では動作しない場合があります。サンプルプログラムに変数を使ったダメージ計算処理がありますのでそちらも参考にしてみてください。

[やられアニメーションの追加]

ダメージを受けた時のアニメーションを作成します。ループ回数は1回です。

フレームはこんな感じに設定しました。

f:id:AIAntbear:20180805184851g:plain

f:id:AIAntbear:20180805183915p:plain

[やられアクションの追加]

①プレイヤーオブジェクトに新しいアクションを追加します。

②動作中の移動入力を受け付けないにチェックを入れます。

③その他の実行アクションの[+]ボタンをクリックし、表示と同じ方向へ移動[32]ドットを設定します。

④逆方向へ移動にチェックを入れます。

f:id:AIAntbear:20180805185444p:plain

[やられ]アクションは他のすべてのアクションとリンクする必要があります。

矢印が複雑になると見栄えが悪くなるので、ショートカットを使ってスッキリさせたいと思います。

[ショートカットの作成]

①ショートカットを作りたいアクションに右クリックし、「ショートカットの作成」をクリックします。

f:id:AIAntbear:20180805190057p:plain

②ショートカットが作成されるので、別のスペースに綺麗に並べます。

f:id:AIAntbear:20180805190509p:plain

[やられのリンクを設定]

[待機][歩き][ジャンプ][踏みジャンプ]→[やられ]

①その他の条件設定の[+]ボタンをクリックし、[攻撃判定に当たる]にチェックを入れます。

②[全て指定]ボタンをクリックします。

③オブジェクトグループで指定[エネミーグループ]を選択します。

f:id:AIAntbear:20180805191055p:plain

全て条件は同じですので、一つ作ったらコピーしましょう。

f:id:AIAntbear:20180805192004p:plain

[やられ]→[待機]

やられは一定時間経過したら待機に戻るように設定します。

①その他の条件設定の[+]ボタンをクリックし、[一定時間が経過]にチェックを入れます。

②やられのモーションに合わせて秒数を指定します。※ここでは0.9秒に設定しました。

f:id:AIAntbear:20180805192750p:plain

これでやられモーションの作成は完了です。

[2018/11/28追記]やられアクションをコモンアクションでスッキリとさせる方法を公開しました。こちらもご参照ください。

aiantbear.hatenablog.com

5.3ゲームオーバー画面を作る

ゲームオーバーの方法はいくつかあるようですが、今回は体力が0になったらゲームオーバースイッチがオンになり、ゲームオーバー画面に移動する方法を説明します。

遷移の機能をつかって、このような形でゲームオーバー画面とscene001をつなげていきます。

f:id:AIAntbear:20180805193213p:plain

[共通スイッチを使う]

scene001からゲームオーバーへの画面遷移の条件にスイッチを使います。

スイッチはオブジェクトでオン・オフの操作ができます。例えば、触れたらスイッチがオンになる鍵オブジェクトと、スイッチがオンになったら開く扉を設定すれば、鍵を探索するゲームが作れるようになります。

今回は、プレイヤーの体力が0になったらゲームオーバー画面に遷移するようにします。

[遷移の条件]

ゲームオーバースイッチオン:ゲームオーバー画面に遷移

ゲームオーバースイッチオフ:scene001画面に戻る

①[素材]-[スイッチ]とクリックします。

②赤枠の部分で右クリックし、「スイッチを追加」をクリックします。

f:id:AIAntbear:20180805200221p:plain

③スイッチ名をゲームオーバーに変更します。

f:id:AIAntbear:20180805201257p:plain

[ゲームオーバー画面に表示するオブジェクトを作成]

A,B,X,Yボタンのいずれかが押されたらゲームオーバースイッチがオフになるオブジェクトを作成します。

画像がない場合はこちらをお使いください。

f:id:AIAntbear:20180805143421p:plain

[ライフが0になった時にスイッチがオンになるアクションを作成]

①[オブジェクト]-[ライフ]とクリックし、新規アクションを追加します。

②モーションは設定しないを選択します。

f:id:AIAntbear:20180805204516p:plain

③重力の影響を受けないにチェックを入れます。

④その他の実行アクションの[+]をクリックします。

⑤スイッチ・変数を変更にチェックを入れ、スイッチを変更を選択します。

⑥プロジェクト共通のスイッチを選択します。ゲームオーバーをONに設定します。

f:id:AIAntbear:20180805204657p:plain

⑦[ライフ0]→[ゲームオーバー]のリンクを作成します。

⑧その他の実行アクションの[+]をクリックします。

⑨一定時間の経過を選択し、時間を選択します。

※やられアニメーションを見せるために、表示時間を調整しております。ちょうど倒れたタイミングでゲームオーバー画面に遷移するようにここでは0.7秒に設定しました。

f:id:AIAntbear:20180805205215p:plain

[ゲームオーバーアニメーションの作成]

ゲームオーバー用に画像を登録します。画像を取り込むだけで特に設定は不要です。

f:id:AIAntbear:20180805202036p:plain

 [ゲームオーバーオブジェクトを作成]

①オブジェクトを新規作成します。設定はこのようにします。

f:id:AIAntbear:20180805202050p:plain

②[ゲームオーバー]、[コンティニュー]のアクションを追加します。どちらも先ほど登録したモーションを選択します。

③どちらも重力の影響を受けないにチェックを入れます。

f:id:AIAntbear:20180805202103p:plain

f:id:AIAntbear:20180805202855p:plain

④ゲームオーバーをOFFにする設定を追加します。

f:id:AIAntbear:20180805203053p:plain

[ゲームオーバーのリンクを追加]

[ゲームオーバー]→[コンティニュー]

「以下の入力操作がされたとき」にチェックを入れ、[Aが押された瞬間]or[Bが押された瞬間]or[Xが押された瞬間]or[Yが押された瞬間]を設定します。

f:id:AIAntbear:20180805203753p:plain

[ゲームオーバーのシーンを追加]

① [シーン]をクリックします。シーン一覧を右クリックし、シーンの追加をクリックします。

②シーンを設定します。初期表示メニュー画面をなしに設定します。

f:id:AIAntbear:20180805210011p:plain

 ③オブジェクトからゲームオーバーを追加して、画面の中心に文字が出るように配置します。 

f:id:AIAntbear:20180805210335p:plain

これで、ライフが0になった時にゲームオーバースイッチがオンになる仕組みと、ゲームオーバー画面でボタンを押すとゲームオーバースイッチがオフになる仕組みが完成しました。

ここから画面遷移の条件を追加して、ゲームオーバーを実装します。

5.4遷移を設定する

①[遷移]をクリックします。

f:id:AIAntbear:20180805211521p:plain

②ゲームオーバーを右側へドラッグします。

f:id:AIAntbear:20180805211219g:plain

③[scene001]→[ゲームオーバー]のリンクをつなぎます。

④スイッチ、変数が変化にチェックを入れ、[+]ボタンをクリックします。

⑤スイッチに共通スイッチの「ゲームオーバー」がONのときを設定します。

f:id:AIAntbear:20180805211907p:plain

⑥[ゲームオーバー]→[scene001]のリンクをつなぎます。

⑦スイッチ、変数が変化にチェックを入れ、[+]ボタンをクリックします。

⑧スイッチに共通スイッチの「ゲームオーバー」がOFFのときを設定します。

f:id:AIAntbear:20180805212347p:plain

これでライフが0になった時、ゲームオーバー画面が表示されるようになりました。

[F5]キーを押してテストプレイで試してみてください。

6.ゴールを作る

次に、ステージクリアの条件であるゴールを作ります。

ゴールに触れたらステージクリアを表示させて、共通スイッチと共通変数を使って次のステージに遷移するようにします。

6.1ステージクリア後の遷移を考える

今回は図のようにステージセレクトが無いゲームを作ります。ゲームオーバーとなった時にプレイしていたステージに戻れるようにする方法を考える必要があります。

f:id:AIAntbear:20180805233557p:plain

今回は共通変数を使ってどのステージまでクリアしたかカウントし、ゲームオーバー画面で戻るときの条件に変数と一致するシーンへ遷移する方式をとります。

6.2共通変数の作成

①[素材]-[変数]とクリックします。

②変数一覧を右クリックして、「変数を追加」をクリックします。

③名前をステージクリアに変更します。初期値はそのまま0.00にします。

f:id:AIAntbear:20180805234420p:plain

変数の準備が完了しました。この変数はゴールオブジェクトと画面遷移で使います。

6.3共通スイッチの作成

①[素材]-[スイッチ]とクリックします。

②変数一覧を右クリックして、「スイッチを追加」をクリックします。

③名前をステージクリアに変更します。

f:id:AIAntbear:20180805235053p:plain

6.4ゴールオブジェクトの作成

ゴールとなるオブジェクトを作成します。

アリクイが主人公なので蟻塚をゴールにします。蟻塚を使いたい人はいない気がしますが、置いておきますのでご自由にお使いください。

蟻塚(ゴール)

f:id:AIAntbear:20180805143414p:plain

蟻塚(破壊)

f:id:AIAntbear:20180805143418p:plain

完成イメージ

f:id:AIAntbear:20180806011532g:plain

接近したら蟻塚が壊れるオーションが流れる。モーションが終わったらクリアスイッチがオンになる。

[ゴールのアニメーションを作成]

ゴールのモーションを作ります。

サンプルではゴールに触れたら破壊されるように設定しますが、別に1枚でも問題ありません。

なお、ゴールはループ、蟻塚破壊はループなしを設定しております。

f:id:AIAntbear:20180806000611p:plain

[ゴールのオブジェクトを作成]

①オブジェクトを新規に作成します。先ほど作成したゴールのアニメーションを設定します。

f:id:AIAntbear:20180806001635p:plain

②オブジェクトを3つ作成します。ゴールについてはモーション以外の設定は不要です。

③ゴール到達は動作中の移動入力を受け付けないにチェックを入れます。

f:id:AIAntbear:20180806010921p:plain

④ステージクリアは遷移前のモーションを引き継ぐにチェックを入れます。

f:id:AIAntbear:20180806003252p:plain

⑤ステージクリアのその他の実行アクションに「共有スイッチ:ステージクリア」をオンを設定します。

f:id:AIAntbear:20180806004116p:plain

[ゴールのリンクを追加]

[ゴール]→[ゴール到達]

ゴールに触れたらステージクリアとなるように条件を設定します。

①その他の条件設定で「他のオブジェクトとの距離」にチェックを入れます。

②このオブジェクトを基準に8方向から測定を選択し、全方向にチェックを入れます。

③距離を指定します。

f:id:AIAntbear:20180806005335p:plain

[ゴール到達]→[ゲームクリア]

ここではゴールである蟻塚が破壊されるアニメーションを全て見せてからクリアと出したいので、「モーションのアニメーションが最後まで実行されたら」を選択します。

f:id:AIAntbear:20180806011100p:plain

これでゴールオブジェクトは完成です。

6.5ステージクリアオブジェクトの作成

次に、ゴールに入った時、文字を表示させるオブジェクトを作成します。普段は何も表示しませんが、ステージクリアスイッチがONになったら下の画像を表示させるようにします。

f:id:AIAntbear:20180805143423p:plain

アニメーションを追加します。文字を表示するだけなので特に設定しておりません。

f:id:AIAntbear:20180806013953p:plain

[オブジェクトの追加]

①ステージクリアオブジェクトを追加します。

f:id:AIAntbear:20180806014525p:plain

②作成されたアクションの名前をステージクリア前に変更します。モーション:設定しないを選択します。

f:id:AIAntbear:20180806020050p:plain

③重力の影響を受けないにチェックをいれます。

④共通スイッチ:ステージクリアをOFFにするよう設定します。

※ここでステージクリアスイッチがOFFになったら画面遷移するよう後で設定します。

f:id:AIAntbear:20180806234645p:plain

④アクションの追加からステージクリアを追加します。モーションには先ほど作ったステージクリアの画像を選択します。

⑤重力の影響を受けないにチェックをいれます。

⑥ステージクリアのその他の実行アクションに「変数の変更:ステージクリア」+=1.00を設定します。

※この処理を各ステージに入れることで、ステージクリア変数の数から現在のステージ数を判断できるようになります。

※+=は指定した数字を変数に足す処理です。=は同じ数字を入れる、-=は引くといった感じです。

f:id:AIAntbear:20180806020544p:plain

[ゲームクリアのリンクを追加]

[ステージクリア前]→[ステージクリア]

その他の条件設定で共通スイッチのステージクリアがONを設定します。

f:id:AIAntbear:20180806020752p:plain

[ステージクリア]→[ステージクリア前]

その他の条件設定に一定時間が経過「0.5秒」を設定します。

※画面表示の演出時間ですので、BGMやSE、モーションによって変してください。

f:id:AIAntbear:20180806020931p:plain

シーンからオブジェクトを配置します。今回はmenu sceneに貼り付けます。

※ステージに貼り付ける場合は、すべてのステージに貼り付ける必要があります。

※試してませんが、凝ったオブジェクトをメニューに貼り付けると重くなるかもしれません。

f:id:AIAntbear:20180806021032p:plain

これでステージクリアまでの流れができました。

6.6クリア時のモーションを作成

この時点で完成でも良いですが、クリア時の演出としてプレイヤーのモーションを追加しよと思います。クリア時にキャラクターを操作させない、ダメージを受けて体力が0にならないようにするといった意図もあります。

アニメーションはこんな感じにします。ダメージを受けないように当たり判定は削除しておきましょう。あと、表示方向は左右作る必要ありません。

f:id:AIAntbear:20180806185318p:plain

[アクションの追加]

①クリアのアクションを追加します。

②「動作中の移動の入力を受け付けない」にチェックを入れます。

※これで十字キーを入力しても左右に移動しなくなります。

f:id:AIAntbear:20180806185600p:plain

[リンクの追加]

[待機]→[クリア]

その他の実行条件で共通スイッチのステージクリアがONを設定します。

f:id:AIAntbear:20180806185903p:plain

[歩き]→[クリア]

ずっと歩いているとクリアモーションにならないので歩きにも追加しておきます。

待機→クリアと同様に、その他の実行条件で共通スイッチのステージクリアがONを設定します。コピーして貼り付けると楽です。

f:id:AIAntbear:20180806190134p:plain

これでクリア演出が完成です。[F5]キーを押してテストしてみましょう。

f:id:AIAntbear:20180806011532g:plain

7.ステージ2以降を作ろう

最後に、ステージ2への遷移方法を説明します。

6.5でステージをクリアすると、ステージクリア変数が1足されるようにしました。

scene001→scene002の条件をステージクリア変数=1と設定すれば、クリア演出後にscene002へ移動できます。また、ゲームオーバー画面からステージに戻るときも、ステージクリア変数=0ならscene001、変数=1ならscene002、変数=2ならscene003と線をつなげていけばクリアステージから再開できます。後はscene001の前にタイトル画面、最終ステージの後ろにエンディング画面を作れば1つのゲームが完成します。では、設定方法を説明します。

f:id:AIAntbear:20180806192512p:plain

7.1ステージ2を作る

シーンから新規シーンを追加します。初期表示メニューはメニュー1を選択します。

f:id:AIAntbear:20180806193451p:plain

タイルとオブジェクトを配置します。

この時、プレイヤーとゴールは必ず配置してください。

f:id:AIAntbear:20180806193835p:plain

※プレイヤーオブジェクトについて

scene001で配置したプレイヤーオブジェクトとscene002で配置したプレイヤーオブジェクトはパラメータなどを引き継いでおりません。顔の似ている別人です。残り体力1でクリアしても、scene002になると体力が3になっております。

パラメータを引き継ぎたい場合などはポータルで移動させる必要があります。俗にいうメトロイドヴァニア系の作品を作らない場合は、ステージ毎にプレイヤーオブジェクトを配置したほうが楽です。パワーアップなどをさせたい場合は、共通変数を定義しておき、ステージ開始時に読み込むといった方法もあります。

7.2ステージ2へ遷移

遷移から、scene002を配置します。

f:id:AIAntbear:20180806194926p:plain

scene001とscene002をリンクでつなぎます。

スイッチ、変数が変化にチェックを入れ、ステージクリア変数が1.00のときを設定します。また、全ての条件が満たされていたら切り替えとします。

f:id:AIAntbear:20180806195356p:plain

条件に共通スイッチのステージクリアがOFFを追加します。ステージクリアスイッチがONの状態で次のステージに進まないようにするためです。

f:id:AIAntbear:20180806195306p:plain

次に、ゲームオーバー→scene001への遷移条件を変更します。

①全ての条件が満たされていたら切り替えにチェックを入れます。

②スイッチ、変数が変化にチェックを入れ、共通スイッチのステージクリアが0のときを設定します。

f:id:AIAntbear:20180806200029p:plain

scene002→ゲームオーバーのリンクを繋げます。

scene001→ゲームオーバーと同じ設定ですので、コピーすると楽です。

f:id:AIAntbear:20180806200819p:plain

最後に、ゲームオーバー→scene002への遷移条件を変更します。

①全ての条件が満たされていたら切り替えにチェックを入れます。

②スイッチ、変数が変化にチェックを入れ、共通スイッチのステージクリアが1のときを設定します。

f:id:AIAntbear:20180806201534p:plain

共通スイッチ ゲームオーバーがOFFを設定します。

f:id:AIAntbear:20180806201137p:plain

想定通り画面が遷移するか試してみましょう

f:id:AIAntbear:20180806201729g:plain

これでゲームが完成しました。

おわりに

分かりにくいところもあったかもしませんが、簡単なゲームができたかと思います。設定がおかしい場所などあればコメントなどでお知らせ頂けますと助かります。

これをとっかかりにゲームを作っていただけたら幸いです。

私自身も使ったことのない機能が多くありますので、様々なことにチャレンジいただけたらと思います。

 

次回は今回紹介できなかった弾の撃ち方とか、二段ジャンプ、ダッシュといったプレイヤーの行動を紹介する予定です。(セーブ、ロードなどもやり方が分かったら紹介していきたいです。)