愛だけでゲームを作るよ!

アクツクMVでゲームを作ってます。_(:3 」∠)_

【アクツクMV】愛だけで公式サンプルのLadder sampleを勉強するよ!(前編)【自作ゲーム】

花粉で目がしょぼしょぼんぬしちゃって、すっごく辛い…。(´・ω・`)
この間、ニュースか何かで「花粉が出にくい杉の植林があまり進んでいない」というニュースを見たとき、軽く脱力しました。

誰か「日本の花粉症による労働生産性低下率」を数値化してくだい…。
そしてG7で毎年最下位なのは、(きっと)花粉のせいなんだって…

誰か証明して!世界に訴えて!!日本を動かして!!!(必死


おはこんにちわ、ととすけです。_(:3 」∠)_
さて、さっそく最近の状況です!


今どんな感じなのさ?


前回のブログでも触れていましたが、基本動作を現在作成中です。
「ハシゴ昇降」「ノックバック」「死亡」のうち、「ハシゴ昇降」が完成しました。

ハシゴ昇降はどうしても実装したくて、アクツクでも長いこと挑戦していたのですが…。
結局最後まで満足のいく挙動にはなりませんでした。(´・ω・`)

しかし今回のアクツクMVではその無念(?)を晴らすことに成功しました!
まだもうちょっと拘りたい部分もあるのですが、それは今後の課題にするとして…。

やはり変数がアクツクの時より自由に扱えるのが大きいですね!Goodです!
それにしてもハシゴ昇降の仕掛け作りで、今回色んな収穫がありました。

それはまた後ほどお話ししますね?_(:3 」∠)_


他にはゲーム中の会話イベントに表示させる予定の、バストアップ画像を作成していました。
エックスとゼロ、アイリスの3人分を準備しています。

とりあえずアイリスは描けましたよ!
わたしの絵心ではこれが限界でした…許して…。


↑ちょっとキリっとしてる顔(実寸)
↓困り顔と通常時の顔(拡大)


人間の年齢でいう16歳~18歳を想定。オペレータというお仕事(研修中)をしているので、少し背伸びしているといいますか…大人っぽさも出せたらなぁという感じで描いてみました。
X6のバストアップ画像の画風に気持ち寄せてます。登場していたらきっとこんなかなって…。(´・ω・`)

エックスはアーマー毎に用意すべきか悩んでいますが…いや、描きたいデスネ…。
SFCのアーマーでどう映えるか見てみたい!

ゼロは…表情で遊んでみたいかも?
個人的にはProject Xzoneで見せてくれた、目のハイライトが消えている冷めた目が好きです(笑

何故、アイリスを大人っぽくさせたかといいますと…。
X4のアイリスの唇って、凄くエr…色っぽいよね?_(:3 」∠)_



…え?あ、うん。理由はそれだけです、はい…。
上目遣い風に描いたのきっともわたしの趣味です。エへヘ。



勉強はどうだったのさ?


公式から「Ladder sample」というサンプルデータが配信されたので、じっくりと中を調べていました。率直なわたしの感想ですが…。

とても素敵なサンプル!大変勉強になりました!!

もしかしたら公式フォーラム等で既に語られている内容かもしれませんが、今回はハシゴサンプルの内容について記述してみたいと思います。
実は公式に詳細があるのかもですが、確認してない!キニシナイ!!

ここから鼻息荒めで、どや顔なぞ目線の解説が始まります。
もしかすると誤って解釈している部分があるかもしれませんが、何かの参考になれば幸いですわん。_(:3 」∠)_

前回と同様、アクツクMVで「画像(素材)の取り込み」「アニメーションの設定」「アクションプログラムの作成」「シーンの作成」の流れを一度は経験したことがある、という体で進めます。


0.サンプルで出来ること

「プロジェクトの新規作成」からLadder sampleを取り込み、さっそく再生(プレイ)してみましょう。
青いキャラ(便宜上、忍者君と呼称)が行えるアクションを確認してみてください。
下記のことに気付けるかと思います。



上記機能が「どうしたら実現できるか」という観点で記載した方が分かりやすいかな?と思いましたので、今回は下記の順にお話ししたいと思います。
a】歩く(触れる)と色が変わるタイル
【b】下キー+ジャンプボタンで床をすり抜けて降りる
【cハシゴの中心位置まで移動する
【d上り下りできるハシゴ
【e足元にハシゴがあれば降りる

【a】歩く(触れる)と色が変わるタイル

この仕掛けはタイルのギミックを使用して、忍者君がタイルの壁判定に触れると別のタイルに表示が入れ替わり、離れると元に戻るようになっています。

設定を管理しているのは「タイル」タブです。
タイル一覧から[tile001]を選択して黒色のタイルを選択後、右側に表示されている設定画面から「ギミック設定」を選択します。
今回はタイル画像が1枚だけだったので、最初から[tile001]が選択・表示されています。



"▼変更の条件"が「オブジェクトがタイルの壁判定に触れたら」という設定になっていると思います。
そして条件が満たされた時の"▼変更後の状態"には「タイルを変更する」が選択されており、すぐ右隣りにある緑色のタイルが選択されています。



しかしこのままではタイルは緑色になったまま表示が戻りませんので、今度は緑色から元の黒色のタイルに戻す設定をします。

タイル画像から緑色のタイルを選択して「ギミック設定」タブの"▼変更の条件"を確認すると「オブジェクトがタイルの壁判定から離れたら」という設定になっているはずです。

そして"▼変更後の状態"には「タイルを変更する」が選択されており、今度は左隣りにある黒色のタイルが選択されています。



これで忍者君がタイルから離れると、元の黒色のタイルに戻るというわけです。
この仕掛けは相互の画像で設定が必要ということですね。

ちなみに、デフォルトではこの「ギミック設定」タブは選択できませんので、自分のプロジェクトで試したい場合は「タイルの設定」を最初に行いましょう。(1敗)


タイル一覧で[tile001]上で右クリックし、メニューから「タイルの設定」を選択します。


【b】下キー+ジャンプボタンで床をすり抜けて降りる

この仕掛けは壁判定のないモーションに一瞬遷移させ、忍者君と床との接触を断つことですり抜けさせています。

まずは「タイル」タブの設定からです。
先ほども登場した[tile001]から赤色の床タイルを選択します。



画面右側の「基本設定」タブを選択します。
"効果発動の条件:"は「オブジェクトがタイルの壁判定に触れたら」が選択されており、更に「オブジェクトのエリア判定変数に数字を代入」にチェックマークが入っています。

このエリア変数というのは、忍者君などのオブジェクトが最初から所持している変数で「ここは特殊なエリアだよ」ということを、オブジェクトに教えてあげるために使用する…と思ってよさそうです。

エリア変数は「オブジェクト」タブの「変数管理」で存在を確認できます。


デフォルトでは「-1」が固定で代入されており、指定が無ければ常に「-1」が代入され続けます。

今回は赤色の床に対し「触れている間は下にすり抜けることを許された特殊なエリア」とするために、識別番号としてエリア変数に「1」を指定しています。

これでこの赤色の床でしか、すり抜けアクションができなくなるわけですね。


続いて「アニメーション」タブの設定…の前に、「オブジェクト」タブを開いて何のモーションを使用しているかだけ、確認しておきましょう。
注目するのは下記の「Jump down」「air」ですので、この2つをピックアップします。


「オブジェクト」タブのアクションプログラムではこの2つが対象です。

「Jump down」を見てみると、使用されているモーションは"roll down"になっています。


当該のアクションをクリックすると、画面右側に使用しているモーションが表示されます。

「アニメーション」タブを選択し、モーション一覧から"roll down"を選択します。
画面には丸まった忍者君の画像が表示されていますが、よく見ると緑色の「壁判定」の設定がありません。

「壁判定」のないモーションは壁に接触することができないため、"▼実行アクション"で「重力の影響を受けない(100%)」にしない限り、画面外まで落下してしまいます。

ここであえて「壁判定」を設定してプレイすると、床すり抜けが出来なくなるはずです。
「壁判定」は右向き左向きでそれぞれ設定を持っているので、実施するときは両方設定しましょう。(1敗)



もう一つのアクション「air」ですが、使用されているモーションは"jump"になります。
アクション「jump」でも使用されているモーションですが、特別な設定はされていません。

降下中のアニメーションが別にあるのでしたら、それを指定するとよさそうです。


続いて「オブジェクト」タブの設定です。
アクションプログラムで床すり抜けに関連しているのは、下記の赤線が引いてある部分だけです。



なので、不要なリンクを削除してアクション「check」から伸びているリンクを付け替えるだけでも、床すり抜けは可能です。



プログラムの流れとしては、下記のようになります。

①[wait]状態で下記条件が満たされたら[Jump down]を実行する。
 ・下キー+ジャンプキーが押下された。
 ・忍者君のエリア変数が[1]である。

②[jump down]状態で下記の条件が満たされたら[air]を実行する。
 ・"roll down"のモーションが再生し終わった。

③[air]状態で下記の条件が満たされたら[wait]を実行する。
 ・タイルの壁判定に接触した。
 ・坂と接触した。
 ・他のオブジェクトの壁判定に接触した。 


先ほど「タイル」タブで設定したエリア変数が①で登場です。
"エリア変数[1]=床すり抜けが可能なエリア"ですので、この条件を消してしまうと忍者君はどこでも床すり抜けが実行できてしまいます。

自分のプロジェクトに実装する場合は、タイル設定とリンク条件のエリア変数が一致しているかをしっかり確認しましょう。

続いて各アクションに設定されている"▼実行アクション"は以下の通りです。

[jump down]


補足:
このアクションが実行されている間、プレイヤーに一切の操作を許していません。
また、「ジャンプ動作を行う」にチェックが入っていますが、このチェックを外しても動作はします。
このアクションが実行されている間、忍者君をゆっくり降下させたい場合は「重力の影響を受けない」にチェックを入れましょう。
数値は50%くらいで一度動きを確認してみて、好みに調整すると良さそうです。

[air]


補足:
忍者君が降下中のアクションですので、特に目を引く設定はありません。
床すり抜け後の専用落下モーションを指定しても良いかもですね。

[wait]


補足:
こちらは待機中のアクションです。
「上下(前後)の移動速度を変更」の設定値が[0]になっていますが、これを[100]にしてしまうと上キーを押したときにピョンピョン跳ねてしまいます。
今回この値が[0]になっている理由は、ハシゴ以外で上下キーを押された時に反応させないためです。
「オブジェクト」タブの「移動とジャンプ」の設定に深く関係しているので、その話はまた別のところで。


床すり抜けは以上です。
残りの【c】~【e】はハシゴの話なのですが、ちょっとボリュームが凄いことになりそうなので、ここでいったん区切りますわん。_(:3 」∠)_

<<後編に続く>>