「ジャンプアニメーション」の編集履歴(バックアップ)一覧に戻る

ジャンプアニメーション - (2020/01/27 (月) 20:16:14) のソース

<h2><strong>【ジャンプ時のアニメーションの設定方法】</strong></h2>
<p><span style="font-size:14px;"> ジャンプ時、普通にコマンド内の「アニメ」を設定するだけでは<u>ジャンプ中にアニメが終了</u>する事があったり、小ジャンプした場合は<u>地面に着地してもジャンプのアニメが終っていない</u>事があります。他にも、移動すると空中で歩いてしまったりと、不自然ですよね。</span></p>
<p> </p>
<div><span style="font-size:14px;"> 本項では、<span style="color:#B22222;">空中でジャンプ姿勢が持続され、着地時に普段のアニメーションに戻る</span>方法を解説します。<br />
(主人公キャラにジャンプアニメーションを付けるものとします。)</span></div>
<p> </p>
<p> </p>
<h3><strong>1.下準備</strong></h3>
<h4><strong>① 画像の準備</strong></h4>
<p><span style="font-size:14px;"> まずは、ジャンプアニメーションを付けたい対象キャラクターの画像bmpファイル内に「<span style="background-color:#F0F8FF;">ジャンプを実行した際</span>」、「<span style="background-color:#E6E6FA;">空中にいる際</span>」、「<span style="background-color:#FFFFE0;">着地した際</span>」の画像をそれぞれ描きましょう。イメージとして、それぞれの画像の役割はこんな感じです。</span></p>
<p> </p>
<ul>
<li><span style="font-size:14px;"><span style="background-color:#F0F8FF;">ジャンプ実行</span>:地面から空中へ向かって上昇してる際のアニメーション</span></li>
<li><span style="font-size:14px;"><span style="background-color:#E6E6FA;">空中</span>:空中から地面へ向かって下降している際のアニメーション</span></li>
<li><span style="font-size:14px;"><span style="background-color:#FFFFE0;">着地</span>:地面に着地、および<span style="color:#B22222;">ジャンプ実行含む着地までに実行したアニメーションをキャンセルするため</span>のアニメーション</span></li>
</ul>
<p> </p>
<p><span style="font-size:14px;"> フローの設定方法によっては上記3つすべてのアニメーションが必要とは限りません。<br />
(詳細は応用テクニックの項目にて)</span></p>
<p><span style="font-size:14px;"> 逆に、長い髪やマント、スカートなど、風圧で“なびく”要素を持ったキャラクターを描きたいのであれば、こうした3つのアニメーションが必要になるかも知れません。</span></p>
<p> </p>
<p> </p>
<h4><strong>② 基本アニメセットとアニメの設定</strong></h4>
<p><span style="font-size:14px;"> 次に、ジャンプアニメーションを作る上で必要な「<strong><span style="color:#008000;">基本アニメセット</span></strong>」と「<strong><span style="color:#0000FF;">アニメ</span></strong>」を作成します。<br />
 </span></p>
<p><span style="font-size:14px;"> まずは「<strong><span style="color:#008000;">基本アニメセット</span></strong>」からです。「プロジェクト」内の「データベース」を開き、「<strong><span style="color:#008000;">基本アニメセット</span></strong>」に、ジャンプアニメを付けたい対象キャラの普段の動作セットとは別の新しいアニメセットのデータを作成します。わかりやすいように、普段の動作の名称を「○○○(通常)」とし、これから作る動作を「○○○(空中)」とすると良いかもしれません。(“○○○”にはキャラクター名など)</span></p>
<p> </p>
<p><span style="font-size:14px;"> 新たに作成したの基本アニメセット内容の「静止」と「移動」に、先程作った「<span style="background-color:#E6E6FA;">空中にいる際</span>」の画像を登録します。(「飛行」と「飛行移動」については、ここでは特に設定しなくても大丈夫です。)</span></p>
<p> </p>
<p><span style="font-size:14px;"> 次は、同じくデータベース内の「<strong><span style="color:#0000FF;">アニメ</span></strong>」を開き、今度は「<span style="background-color:#F0F8FF;">ジャンプ実行</span>」と「<span style="background-color:#FFFFE0;">着地</span>」それぞれのデータを作ります。デフォルトのジャンプの高さであれば、「<span style="background-color:#F0F8FF;">ジャンプ実行</span>」の表示時間(1/10s)は計3~6くらいになるのが適切かもしれません。「着地」は、着地後すぐに歩き出したりした際にまだ着地姿勢のままでは不自然になるので1にします。(これらの時間目安ははあくまでも筆者の独断です。)</span></p>
<p> </p>
<p> </p>
<h3><strong>2.フローの設定</strong></h3>
<p><span style="font-size:14px;"> それではいよいよ、これまで作成したデータをキャラクターに適用していきましょう。キャラクター用のコモンパレットから「主人公」の個別キャラデータを開き、「4(フロー)」の設定ページを選びます。</span></p>
<p> </p>
<p><span style="font-size:14px;"> 本項の方法でジャンプアニメーションを付ける上で使用するフローは計3つです。</span></p>
<p> </p>
<ol style="margin-left:40px;">
<li><span style="font-size:14px;">ジャンプ実行のフロー(今回は「X」キーを押したときに実行)</span></li>
<li><span style="font-size:14px;">空中にいる状態のフロー(ジャンプしたりブロックを踏み外したりして、ブロックから離れた際に実行)</span></li>
<li><span style="font-size:14px;">着地(空中から<strong>ブロックおよびブロックキャラ</strong>に着地した際に実行)</span></li>
</ol>
<p> </p>
<p><span style="font-size:14px;"> また、空中の基本アニメセットを使用する上で“キャラ変数”を一つ使用することになります。今回は「1キャラ変数-1」を使用するものとします。感覚としては、地面にいる状態の変数が「0」、空中にいる状態が「1」となるように設定しています。</span></p>
<p> </p>
<h4><strong>《フロー①:ジャンプ実行》</strong></h4>
<p style="margin-left:40px;"><span style="font-size:14px;">【タイミング】 常時</span><br />
<span style="font-size:14px;">【基本条件】 1キャラ変数-1が 0 である</span><br />
<span style="font-size:14px;">【キー条件】 X:押(1~∞)</span><br />
<span style="font-size:14px;">【コマンド】</span></p>
<ul style="margin-left:40px;">
<li style="margin-left:40px;"><span style="font-size:14px;"><a href="//www47.atwiki.jp/acedi4wiki/pages/29.html"><u>こちら</u></a>の応用テクを参考に1フレーム程のウェイトを入れる(普通のウェイトだと長い感じがします)</span></li>
<li style="margin-left:40px;"><span style="color:rgb(51,51,51);font-family:sans-serif, Arial, Verdana, 'Trebuchet MS';font-size:14px;background-color:rgb(255,255,255);">
アニメの実行:</span><span style="color:rgb(51,51,51);font-family:sans-serif, Arial, Verdana, 'Trebuchet MS';font-size:14px;background-color:rgb(240,248,255);">ジャンプ実行</span></li>
<li style="margin-left:40px;"><span style="font-size:14px;">ジャンプ(設定画面のアニメは「なし(変更しない)」、効果音は任意で)</span></li>
<li style="margin-left:40px;"><span style="font-size:14px;">ウェイト(普通の1/10sでOK)</span></li>
<li style="margin-left:40px;"><span style="font-size:14px;">ステータスの操作:自分の1キャラ変数-1を「<strong>=1</strong>」にする。</span></li>
</ul>
<h5 style="margin-left:40px;"><span style="font-size:14px;"><span style="background-color:rgb(255,255,153);">※アニメセットを変更する前にウェイトを入れる理由※</span></span></h5>
<p style="margin-left:80px;"><span style="font-size:14px;">コレを入れないと、<u>ブロックキャラに乗っている状態からジャンプする際にアニメ変更が行われません。</u></span></p>
<p><img alt="フロー1" height="513" src="//cdn47.atwikiimg.com/acedi4wiki?cmd=upload&amp;act=open&amp;pageid=38&amp;file=001.jpg" style="color:rgb(51,51,51);font-family:sans-serif, Arial, Verdana, 'Trebuchet MS';font-size:13px;background-color:rgb(255,255,255);" width="575" /></p>
<p><span style="font-size:14px;"><span style="color:rgb(51,51,51);font-family:sans-serif, Arial, Verdana, 'Trebuchet MS';background-color:rgb(255,255,255);">
 変数を使用している理由はジャンプ中にXキーを押したときに、ジャンプのアニメが実行されるのを防ぐためと着地時のフローが実行され続けるのを防ぐためです。</span></span></p>
<p><span style="font-size:14px;"><span style="color:rgb(51,51,51);font-family:sans-serif, Arial, Verdana, 'Trebuchet MS';background-color:rgb(255,255,255);">
※
画像にあるようにグループ化は行わなくても大丈夫です。デフォルトデータの名残です。またIDについては、「ヒットバック(ダメージを受けた際の硬直)」でキー操作を一時制御するために使用する場合があるため、ここでは「B」に設定しています。</span></span><br />

<br />
 </p>
<h4><strong>《フロー②:空中(ブロックから離れたとき)》</strong></h4>
<p style="white-space:pre-wrap;color:rgb(51,51,51);font-size:13px;margin-left:40px;">
<span style="font-size:14px;">【タイミング】 常時 </span><br />
<span style="font-size:14px;">【基本条件】 1キャラ変数-1が 0 である<br />
      </span><span style="font-size:14px;">自分がブロック(キャラ含む)に乗っていない </span><br />
<span style="font-size:14px;">【キー条件】 -</span><br />
<span style="font-size:14px;">【コマンド】</span></p>
<ul style="margin-left:40px;">
<li style="margin-left:40px;"><span style="font-size:14px;">基本アニメセットの変更(<span style="background-color:#E6E6FA;">空中アニメセット</span>)</span></li>
<li style="margin-left:40px;"><span style="font-size:14px;">ウェイト(1/10s)</span></li>
<li style="margin-left:40px;"><span style="font-size:14px;">ステータスの操作:自分の1キャラ変数-1を「<strong>=1</strong>」にする。</span></li>
</ul>
<p><img alt="フロー3" height="513" src="//cdn47.atwikiimg.com/acedi4wiki?cmd=upload&amp;act=open&amp;pageid=38&amp;file=003.jpg" style="color:rgb(51,51,51);font-family:sans-serif, Arial, Verdana, 'Trebuchet MS';font-size:13px;background-color:rgb(255,255,255);" width="575" /></p>
<p> </p>
<p><span style="color:rgb(51,51,51);font-family:sans-serif, Arial, Verdana, 'Trebuchet MS';font-size:13px;background-color:rgb(255,255,255);">
 <span style="font-size:14px;">ブロックに乗っていないとき(尚且、変数が0のとき)に実行されます。</span></span><br style="color:rgb(51,51,51);font-family:sans-serif, Arial, Verdana, 'Trebuchet MS';font-size:13px;background-color:rgb(255,255,255);" />

<span style="font-size:14px;"><span style="color:rgb(51,51,51);font-family:sans-serif, Arial, Verdana, 'Trebuchet MS';background-color:rgb(255,255,255);">
基本アニメセットを変更し、変数に1を代入します。</span></span></p>
<p> </p>
<h4><strong>《フロー③:着地》</strong></h4>
<p style="white-space:pre-wrap;color:rgb(51,51,51);font-size:13px;margin-left:40px;">
<span style="font-size:14px;">【タイミング】 常時 </span><br />
<span style="font-size:14px;">【基本条件】 1キャラ変数-1が 1 である<br />
      自分がブロック(キャラ含む)に乗っている</span><br />
<span style="font-size:14px;">【キー条件】 -</span><br />
<span style="font-size:14px;">【コマンド】</span></p>
<ul style="margin-left:40px;">
<li style="margin-left:40px;"><span style="font-size:14px;"><span style="color:#D3D3D3;">フローの操作(自分の指定ID「A」を一時停止)←任意</span></span></li>
<li style="margin-left:40px;"><span style="font-size:14px;">アニメの実行(「<span style="background-color:#FFFFE0;">着地</span>」)</span></li>
<li style="margin-left:40px;"><span style="font-size:14px;">基本アニメセットの変更(通常時のアニメセットに戻す)</span></li>
<li style="margin-left:40px;"><span style="font-size:14px;"><span style="color:rgb(51,51,51);font-family:sans-serif, Arial, Verdana, 'Trebuchet MS';background-color:rgb(255,255,255);">
ウェイト(1/10s)</span></span></li>
<li style="margin-left:40px;"><span style="font-size:14px;"><span style="color:rgb(51,51,51);font-family:sans-serif, Arial, Verdana, 'Trebuchet MS';background-color:rgb(255,255,255);">
<span style="color:rgb(51,51,51);font-family:sans-serif, Arial, Verdana, 'Trebuchet MS';background-color:rgb(255,255,255);">
ステータスの操作:自分の1キャラ変数-1を「</span><strong style="color:rgb(51,51,51);font-family:sans-serif, Arial, Verdana, 'Trebuchet MS';font-size:13px;background-color:rgb(255,255,255);">=0</strong><span style="color:rgb(51,51,51);font-family:sans-serif, Arial, Verdana, 'Trebuchet MS';background-color:rgb(255,255,255);">」にする。</span></span></span></li>
<li style="margin-left:40px;"><span style="font-size:14px;"><span style="color:rgb(211,211,211);">フローの操作(自分の指定ID「A」を一再開)←任意</span></span></li>
</ul>
<p><img alt="フロー2" height="513" src="//cdn47.atwikiimg.com/acedi4wiki?cmd=upload&amp;act=open&amp;pageid=38&amp;file=002.jpg" width="575" /></p>
<p> <span style="font-size:14px;">変数=1であるときに「ブロックに乗った(キャラの下にブロックが当たっている)」場合に実行されます。<br />
フローの操作でID:A(移動する為のフロー)を一時停止する理由は、着地の瞬間だけ移動を禁止する為です。着地時のアニメーションが必要のない方や、ウェイトを入れたくない方は設定しなくても結構です。ちなみに「移動の無効化」コマンドを使用すると地に足が付いてない状態になるので問題が生じます。気になる方は試してみましよう。</span></p>
<p> </p>
<p> </p>
<h3><strong>3.応用テクニック</strong></h3>
<p> <span style="font-size:14px;">下準備の項目で述べた通り、単純なアニメーションであればフローをもっと簡略化することも可能です。</span></p>
<p> </p>
<p><span style="font-size:14px;"> 例えば<span style="color:rgb(51,51,51);font-family:sans-serif, Arial, Verdana, 'Trebuchet MS';background-color:rgb(255,255,255);">、ファミコンの『スーパーマリオ』や『ロックマン』のような一枚絵のジャンプの場合「</span><span style="color:rgb(51,51,51);font-family:sans-serif, Arial, Verdana, 'Trebuchet MS';"><span style="background-color:#E6E6FA;">空</span></span><span style="color:rgb(51,51,51);font-family:sans-serif, Arial, Verdana, 'Trebuchet MS';"><span style="background-color:#E6E6FA;">中</span></span><span style="color:rgb(51,51,51);font-family:sans-serif, Arial, Verdana, 'Trebuchet MS';background-color:rgb(255,255,255);">」のみの画像を用意して</span><strong><span style="color:#008000;"><span style="font-family:sans-serif, Arial, Verdana, 'Trebuchet MS';background-color:rgb(255,255,255);">基本アニメセット</span></span></strong><span style="color:rgb(51,51,51);font-family:sans-serif, Arial, Verdana, 'Trebuchet MS';background-color:rgb(255,255,255);">のデータを設定し、フロー①コマンドのジャンプのアニメを「<strong>なし(変更しない)</strong>」にします。アニメが再生されないのでフロー③でアニメを終了させる必要もないので、「アニメの実行」も必要なくなります。</span></span></p>
<p> </p>
<p><span style="font-size:14px;"> 逆に「<span style="background-color:#E6E6FA;">空中</span>」のアニメーションが不要という場合(ジャンプではアニメーションが変化しても、段差を降りたりした際には通常姿勢のままがいい)という場合であれば、<span style="color:rgb(51,51,51);font-family:sans-serif, Arial, Verdana, 'Trebuchet MS';background-color:rgb(255,255,255);">「</span><span style="color:rgb(51,51,51);font-family:sans-serif, Arial, Verdana, 'Trebuchet MS';background-color:rgb(240,248,255);">ジャンプ実行</span><span style="color:rgb(51,51,51);font-family:sans-serif, Arial, Verdana, 'Trebuchet MS';background-color:rgb(255,255,255);">」</span><strong><span style="color:#0000FF;"><span style="font-family:sans-serif, Arial, Verdana, 'Trebuchet MS';background-color:rgb(255,255,255);">アニメ</span></span></strong><span style="color:rgb(51,51,51);font-family:sans-serif, Arial, Verdana, 'Trebuchet MS';background-color:rgb(255,255,255);">の表示時間を最大値の「<strong>9999</strong>」に設定し、各フローの「基本アニメセットの変更」コマンドを削除するという方法もあります。「</span><span style="color:rgb(51,51,51);font-family:sans-serif, Arial, Verdana, 'Trebuchet MS';"><span style="background-color:#E6E6FA;">空中</span></span><span style="color:rgb(51,51,51);font-family:sans-serif, Arial, Verdana, 'Trebuchet MS';background-color:rgb(255,255,255);">」だけでなく「</span><span style="color:rgb(51,51,51);font-family:sans-serif, Arial, Verdana, 'Trebuchet MS';"><span style="background-color:#FFFFE0;">着地</span></span><span style="color:rgb(51,51,51);font-family:sans-serif, Arial, Verdana, 'Trebuchet MS';background-color:rgb(255,255,255);">」も不要であれば、フロー③の「アニメの実行」を“「</span><span style="color:rgb(51,51,51);font-family:sans-serif, Arial, Verdana, 'Trebuchet MS';background-color:rgb(240,248,255);">ジャンプ実行</span><span style="color:rgb(51,51,51);font-family:sans-serif, Arial, Verdana, 'Trebuchet MS';background-color:rgb(255,255,255);">」<strong>の終了</strong>”に設定し、フロー②は丸々削除しても良いでしょう。</span></span><span style="font-size:14px;">場合によっては変数に関する条件設定やコマンドも不必要かもしれません。</span></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p>ひと通りフローを組むとこのような感じにアニメーションさせることが可能になります。<br />
参考動画 <a href="http://twitvideo.jp/05Sjs" style="text-decoration:none;">http://twitvideo.jp/05Sjs</a> ※twitvideoに移動します。</p>
<p> </p>
<p><span style="line-height:20px;">2015/09/14追記</span><br style="line-height:20px;" />
因みに上記の方法ではステージ開始時、一瞬だけジャンプグラフィックになったり、ジャンプの調節が途中からできない、ジャンプ終了直前にソードなどのアクションをするとジャンプグラフィックのままになったりする。</p>
<p>ジャンプの調整ができない問題は上記のジャンプ実行のフローを用いて以下のようにコマンドを変更すると起きなくなる。</p>
<p><span style="line-height:20px;">◆円移動◆速180 角0~19</span></p>
<p><span style="line-height:20px;">◆ステータスの操作◆自分の「1キャラ変数-1」を=1</span></p>
<p><span style="line-height:20px;">◆基本アニメセットの変更◆主人公_ジャンプ中</span></p>
<p><span style="line-height:20px;">◆ジャンプ◆高さ9</span></p>
<p> </p>
<p><span style="line-height:20px;">2016/06/26 追記2</span><br />
ステージ開始時、一瞬だけジャンプグラフィック<span style="line-height:20px;">になるものに関しては、</span></p>
<p>ウェイト1→ジャンプ用の変数を1に→このフローを削除というフローを作った後に</p>
<p><span style="line-height:20px;">それぞれの元のジャンプ変数の条件やコマンドの変数に1を加算しておけば大丈夫</span></p>
<p><span style="line-height:20px;">(ステージ開始前0、開始ほぼ直後からブロックに乗っているとき1、ジャンプ中やブロックに乗っていないとき変数が2になるようにすればいい)</span></p>
<p> </p>