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

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

アクツクMV初心者講座プチ 壁張り付き&壁ジャンプ

お久しぶりです。あいあんとべあです。

アクツクはチュートリアルが実装され、このブログの役目も終わったかなとは思ってます。

現在セール中ということもあり、何かしら情報を発信しておこうかなと思い、Twitterの方でアップした、壁張り付きと壁ジャンプの作り方について簡単に説明しようと思います。

f:id:AIAntbear:20181102232550g:plain

全体的な構図はこんな感じです。やることは簡単ですが、少しだけ小細工が必要になります。

 

f:id:AIAntbear:20181102230750p:plain

ジャンプから一定時間がたったら落下に遷移し、壁に張り付いたりできるようにしています。

ジャンプから直接壁張り付きのリンクを繋げると、壁に接触した状態で通常ジャンプできないので、こういう形にしています。

壁張り付き

壁張り付きのサンプルです。

※接続しているオブジェクトの向きを考慮する必要があったので左右に分けております。
分けなくても作れるかと思います。

f:id:AIAntbear:20181102230754p:plain

[POINT]張り付き前に重力の影響を受けない 100%のアクションを入れる

ジャンプ上昇中に重力の影響が変化すると、ふわっと上に浮いてしまうため、壁張り付きになりません。
重力の影響を受けない 100%だと、ジャンプ速度が0になる仕様のため、張り付きモーションになる前に入れることでジャンプ上昇中でも浮かび上がることがなくなり、ゆっくり落ちることができるようになります。

重力の影響を受けないは100%に近いほどゆっくり落ちます。この辺りは作りたいゲームに合わせて調整してください。

壁ジャンプ

壁ジャンプのサンプルです。

f:id:AIAntbear:20181102230757p:plain

[POINT]ジャンプと一緒に表示方向と逆方向に一定ドット移動させる

ロックマンX風にジャンプさせる場合は上記のように設定します。この時、その他の実行アクションで移動しているときに移動の入力を受け付けてしまうと、実行アクションがキャンセルされてしまうため、「移動中の入力を受け付けない」にチェックを入れております。

壁ジャンプから落下へのリンクは、一定時間経過に設定します。パラメータによって経過時間を調整してください。(0.1~0.3秒で十分だと思います。)

 

 

あくまで一例ですので、他にやり方はいくらでもあると思います。

今回の内容は、解決策に気づけないと作れない要素だと思います。なぜできないのか?できるためにはどうすればいいのか?をバグだ!と決めつけずにトライアンドエラーで原因を考えて解決策を見つけ出すのが重要だと思います。出来なければ別の実現方法を考えてみるといいと思います。(私はそうしてます。)

今回は以上です。

アクツクMV初心者講座ミニ オブジェクトの接続編 チャージ攻撃を作りたい時にも便利

今回は非常に便利な機能、オブジェクトの接続について説明します。

「オブジェクトの接続」は、オブジェクトに別のオブジェクトをくっつけることができます。

※実行アクションのオブジェクトを生成と似たようなものです。こちらはアクションを実行することなく生成されます。

設定は下図のように、[オブジェクト]の歯車マークをクリックし、オブジェクトを接続するにチェックを入れ、[OK]ボタンをクリックすることで追加されます。

f:id:AIAntbear:20180921234633p:plain

[オブジェクトの接続]タブから接続したいオブジェクトを追加します。

オススメは接続点を使用することです。

f:id:AIAntbear:20180922000044p:plain

例えば、プレイヤーのオブジェクトにこのように接続点を追加して

f:id:AIAntbear:20180922000723p:plain

画像に合わせるように接続先のオブジェクトの中心点を合わせることで

f:id:AIAntbear:20180922001515p:plain

このように二つのオブジェクトをくっつけた状態にすることができます。

f:id:AIAntbear:20180922001559g:plain

※この時、接続するオブジェクト(上図の小さいアリクイ)の設定で、親オブジェクトから引き継がせる要素:表示方向にチェックを入れ、子オブジェクトとして接続することでアニメのようにプレイヤーの表示方向に合わせて向きを変更させることができます。

f:id:AIAntbear:20180922002012p:plain

オブジェクトを接続させる方法は以上です。

 

非常に簡単ですが、オブジェクトの接続には利点があります。

それは、複数のオブジェクトを組み合わせて使えるという点です。これは、表現の幅が広がるとともに、オブジェクトのプログラムを簡略化できます。

例えば、Yボタンを押しっぱなしでチャージ、離すと強化攻撃を実現したい場合、1つのオブジェクトで実現しようとすると、Yボタンを押した状態で「歩き」、「ジャンプ」などのアクションをしたい場合、個別で作成する必要があります。

この時、Yボタンの処理だけを行うオブジェクトを作り、プレイヤーオブジェクトを接続させるだけで、プレイヤーオブジェクトがジャンプしてても歩いていても、Yボタンを押しっぱなしでチャージができ、いつでもYボタンを離すと攻撃が出せるようになります。

※やられモーション中だけチャージをしたくない場合は、リンクのその他の条件設定で「指定オブジェクトのアクションが変化」というのがあるので、やられアクションになったらチャージをやめる、復帰するまで攻撃しない、といった設定をすることで実現できます。

下のアニメーションではL,Rボタンでコスチュームを変更しております。プレイヤーがどのような動作をしてようが、切り替えることが可能です。

f:id:AIAntbear:20180922010326g:plain

この時、コスチュームのアクション内でプレイヤーオブジェクトの変数を変更しており、移動速度・ジャンプ力の変更、二段ジャンプを可能にしたりしております。

 

他にも、HPバーやMPバーをオブジェクトごとにくっつけたりできます。また、透明なオブジェクトを接続することで疑似的な当たり判定や壁判定を作ったり、状態異常を表現したりと、表現の幅が広がります。使い道はこれだけではないので、色々考えてみてください。

※特に説明しませんが、過去の講座の弾を発射する攻撃方法なども、別のオブジェクトで作成して接続することで管理しやすくなります。

アクツクMVで作成したゲーム「アリクイJUMP」を公開しました

あいあんとべあです。

アクションゲームツクールMVで簡単なミニゲームを作ってみましたので宣伝させて頂きます。タイトルは「アリクイJUMP」です。

以下URLからダウンロードできます。

www.syakerake.jp

尚、BGMはMusMus様(フリーBGM・音楽素材 MusMus)のものを利用させて頂きました。

難易度は高めですが、ハイスコアを狙うゲームですので、クリアする必要はありません。ぜひ気軽にプレイしてみてください。

基本的に講座で書いたような事しか実装していないですが、どのように実現させたか?など知りたいことがございましたら、コメントかツイッター、もしくはマシュマロの方に言っていただければ解説します。

 

[ゲーム概要]

簡単にゲーム内容を紹介します。

タイトルから分かる通り、アリクイがジャンプするゲームです。

ありくいさんがアリヅカを求めてけわしい山道を登っていくという設定ですが、特にストーリーがあるわけではありません。

操作は簡単です。横移動とジャンプのみです。

パズル要素も特にありませんので、純粋にアクションスキルが試されるゲームです。

 

ステージは全部で5つです。

今後のアップデートで増やしていくかもしれません。

バージョンアップでステージを3つ増やしました。全8ステージです。

f:id:AIAntbear:20180915003854g:plain

 

[ステージ&コスチューム紹介]

f:id:AIAntbear:20180915004117p:plain

やまのレストランは落ちる足場が特徴のステージです。

落ち着いてプレイすれば簡単ですが、終盤は足場が落ちるので、気を取られると意外とミスしたりします。

このステージで手に入るカブトは障害物に触れてもゲームオーバーにならないコスチュームです。

このステージ以外では障害物が配置されているので、非常に心強いです。個人的に一番使いやすいです。

 

f:id:AIAntbear:20180915004759p:plain

ゆきぞらステージはスベル足場が特徴です。

着地時に移動してしまうので、障害物をよけるのが大変です。

ここで手に入るサンタ帽子は着地時に移動しなくなります。ただし、着地時のみですので、普通に歩くと滑ってしまうので注意です。

もう一つ、足場が落ちなくある効果もあります。そのため、落ち着いてプレイすることができます。

 

f:id:AIAntbear:20180915005209p:plain

けわしいやまは先に紹介した2ステージを足して難しくしたステージです。

コスチュームを駆使してクリアを目指しましょう。

ここで手に入るマフラーは移動速度とジャンプ力がちょっと上がります。

ジャンプのタイミングが少し甘くても大丈夫です。

 

f:id:AIAntbear:20180915010847p:plain

魔女の森は大きく4つのエリアに分かれている特殊なステージです。

強制スクロール、星の障害物、変わる足場、消える足場とギミックが豊富なのが特徴です。

お菓子のような足場、まるで魔女にイタズラされているかのようなギミックを演出してみました。おかげで非常にプレイしにくいステージとなっております。

ここで手に入る魔女の帽子は2段ジャンプができるようになります。非常に強力ですが、過信は禁物です。障害物が多いステージではカブトの方が使いやすいです。

 

f:id:AIAntbear:20180915011347p:plain

次にアスレチックステージです。

こちらは8つのエリアに分かれていて、アリヅカに触れないと次のエリアに行くことができません。

他のステージと違い、試験的にいろいろなギミックを詰め込んでみました。難易度はかなり高いと思います。

ここで手に入る仔ありくいさんは、移動速度とダッシュが低下するので、ステージの難易度が上がります。

腕に覚えのある方は、ぜひこちらを試してみてください。

 

[追加ステージ紹介]

f:id:AIAntbear:20180924233159p:plain

和風なステージとなっております。

難易度は全ステージ中一番簡単ではないかと思います。

試験的に壁キックや回転する足場を取り入れてみました。

 新コスチューム:キツネのお面は空中浮遊が可能となります。二段ジャンプとは違った操作性能です。

 

f:id:AIAntbear:20180924233219p:plain

こちらはアスレチックステージで作った雲によるジャンプが面白かったので、それがメインのステージを作ってみました。

ハードモード(おともだちコスチューム)だと雲に行くまでが結構難しかったりします。

追加コスチュームのかわいい帽子は落下速度がゆっくりになります。

正確には重力の影響が半分くらいになっているので、雲踏みジャンプや壁キックのジャンプ高度が上がってたりします。

 

f:id:AIAntbear:20180924233237p:plain

ハロウィンをイメージしたステージです。試験的に照明や視野を使って作ってます。

ステージ終盤の暗黒、照明は重いようで、ステージ選択から開始までが少し長いです。

ステージ結構は結構シンプルになっておりますが、他のところで結構時間かかってます。(一番作るのに時間がかかってます)

追加コスチュームは特に能力はないです。この帽子自体は結構お気に入りです。

 

その他

本ゲームはオートセーブになります。素材紹介画面でロードしております。

ロード時に強制終了してしまう場合は、セーブデータが原因の可能性がございますので、一度セーブデータのリセットをお願いします。

以下、素材画面でR1+L1(キーボードA+D)を押すとセーブを消すか選択できます。

f:id:AIAntbear:20180915013254p:plain

 

以上でゲームの紹介を終わります。

感想などもお待ちしております。

アクツクMV初心者講座プチ カメラの設定

今回は質問のあったカメラワークの設定方法について説明します。

プレイヤーを追いかけるカメラワークを使いたくない場合に参考にしてください。

カメラは[シーン]の[その他]にあります。動作設定でカメラの追従対象をなしに設定すると、カメラを固定にできます。オブジェクトを指定できるので、透明なオブジェクトを指定すればカメラ役として使うことができます。

※カメラオブジェクトの利点は、変数を使って自由に場所を移動できることです。例えば、[プレイヤーのX座標>カメラ位置]なら[カメラ位置=プレイヤーのX座標]といったループを作っておけば、プレイヤーが右へ移動すればカメラは移動するが、左に移動してもカメラは固定、といったベルトスクロール系のゲームを演出できます。

f:id:AIAntbear:20180828225817p:plain

カメラを複数用意して、[プレイヤーのX座標≧640※下の図の場合]なら[スイッチをON](そのタイミングで使わないカメラのスイッチをOFF)にするオブジェクトを用意しておけば、プレイヤーが640の地点に来た時にカメラを切り替えることができます。下の図はわざとカメラの開始地点を40ドットくらいずらしてます。

f:id:AIAntbear:20180828230201p:plain

以上で講座は完了です。

アクツク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

今回はここまでです。

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

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