1

私は友人が (AS で作業している) 小さなフラッシュ ゲームを作成するのを手伝っています。基本的な機能は次のとおりです。キーを押すとボトルがグラスに注がれ、

ピアノを弾いてカクテルを作るというのが一般的な考え方です。

各オブジェクトをアニメーション化する方法を知っています。私が知りたいのは、これらのアニメーションをどのように使用し、アクション リスナーでトリガーするかです。

私が得意とする Unity3D では、3dsmax でアニメーションとモデルを作成し、それらを Unity3d にインポートして、キャラクターが単純に歩く場合はアニメーション ウォーク (3dsmax で作成) を使用します。「スペース」を押すと、アニメーションジャンプなどを使用します。

ASでこのようなことをどのように達成できますか?

最初にアニメーションを作成し、それらを保存して、ゲームになる別のプロジェクト、または同じプロジェクトで使用することを意味します。

そうでない場合は、理解していただければ幸いです。誤解があればお答えします。

4

1 に答える 1

1

Flash で目的を達成する方法が多数ある場合があります。私はあなたのプロジェクトのためにそれらの1つについて話します. 必要なすべてを提供するわけではありませんが、少なくとも何をすべきか、どの用語を検索すればよいかについての一般的なアイデアは得られます。

Flash の基本的な考え方は、Unity の Prefab のようなものである MovieClip によって物事を分離できるということです。ムービークリップには、そのムービークリップ内のすべてのビジュアル (ネストされたムービークリップを含む) を制御するために使用できる独自のタイムラインがあります。これらの MovieClip は、コードによって Play()、Stop()、gotoAndPlay(Frame#) などに指示され、その MovieClip のタイムラインのどの部分を再生するかを完全に制御できます。

ボトルのグラフィックをすべて使用するタイムラインのさまざまな部分を使用して、いくつかの異なるアニメーションを作成できます。1 つの部分は、そこに座ってバブリングするためのループ アニメーションである可能性があります。別の部分は、実際に注ぐ/傾ける、別の連続的に注ぐ、そして注ぐ/傾けるのを止めるための別の部分である可能性があります。次に、別のレイヤーにフレーム ラベルを追加して管理しやすくし、さらに別のレイヤーで停止または「繰り返し」などのアクションを追加して、アニメーションがセグメントの最後に到達したときにループまたは停止するようにします。

アニメーションが作成され、gotoAndPlay("pouring") などのコードで呼び出すことができるようになると、EventListeners について心配することができます。EventListener は、何かが起こるたびに作成した関数を呼び出します。Key Press の EventListener を作成する場合は、作成した関数内で押された特定のキーを確認する必要があります。キーに応じて、さまざまなアニメーションや、ノートの音、液体を注ぐ音、ユーザーが注いでいる「量」の追跡などの他の機能を呼び出すことができます。通常、キーの押下とキーの押下のリスナーを作成すると便利です。

プロジェクト間でドラッグ アンド ドロップするだけで、ライブラリで作成したムービークリップをプロジェクト間でコピーできます。特にプロジェクト間でコピーする場合は、ライブラリ内のフォルダーを使用して物事を整理すると便利な場合があります。

チュートリアルを検索し、新しいプロジェクトで新しいことを練習して、それがどのように機能し、どのように使用するかが確実になるまで、複雑さを減らします.

複数のアニメーション

タイムライン上でアニメーション化していて、そのタイムライン内の異なるレイヤーで再生したい別のアニメーションがある場合は、アニメーションをレイヤーごとに分離するだけでなく、時間的にも水平方向に分離する必要があります。ラベル用の新しいレイヤーを追加します。停止アクション用の新しいレイヤーを追加します。各アニメーション セグメントの先頭にあるラベル レイヤーにフレーム ラベルを作成します。各アニメーションの最後に、アクション レイヤーに停止コマンドを追加します。ラベルとアクションによって開始点と終了点を定義したので、コードを使用してそれらを呼び出します。これで、アニメーション/レイヤーを含むムービークリップを参照し、gotoAndPlay("framelabelhere") コマンドを使用して特定のアニメーションを再生できます。

ここでの欠点は、アニメーションが相互に排他的であることです。つまり、同じタイムラインを共有する必要があるため、一度に再生できるのは 1 つだけです。同時実行が必要な場合は、アニメーションをムービークリップごとに分けてください。各ムービークリップには独自のタイムラインがあるため、個別に再生できます。後者の場合、 myMovieClipInstanceNameHere.play() を使用してタイムラインの再生を開始できます。デフォルトで再生されないようにするために、タイムラインで初期停止コマンドが必要になる場合があります。

幸運を!

于 2012-06-09T18:55:17.037 に答える