プログラムコンテンツへスキップはじめてプログラムプログラミング初心者向けチュートリアルやUnity5やC#の記事を書いています。EffectsUnity5で剣の攻撃とエフェクトを作ってみるUnity5で見下ろし型のガン・シューティングを作っていますが、近接攻撃も作ってみたいので、実験用プロジェクトを作成しました。剣を振る動作をどうやって実現するかUnityでは、剣の攻撃のアニメーションを作る方法として大きく3つ考えられます。Blenderなどモデリングソフトでアニメーションを用意する。Mecanimで、Transformを修正してアニメーションを作成する。C#スクリプトで、Transformを全部操作する。1つのアニメーションを作成する場合は、3の方法で問題ありませんが、アニメーションの数が多くなるとそれをすべてコードで書くのはかなり面倒なので、近接攻撃のアニメーションのようにいろいろ増えそうな場合は2の方法が簡単です。デザイナー・モデラーがいるプロジェクトの場合は、1の方法が最適です。今回は頭から胴に斬るアニメーションと、胴を横に斬るアニメーションを2つ用意し、将来的にはもっと増やしたいので、2の方法を選択しました。以下は縦に剣を振るアニメーションです。Object(この場合EquipPointという名前)を用意してそこに持たせるようにします。false);で、先ほどのEquipPointに装備させます。あとは、マウスの左クリックで、縦のスイング、右クリックで、横のスイングのアニメーションを呼び出すようにしました。このStartメソッドのインスタンス化する方法とアニメーションを呼び出す方法は、よく使われるコードなので、お約束として覚えてしまえばいいです。高さはプレイヤーの高さで補正。高さはプレイヤーの高さで補正。point.z));}}}マウスカーソルの方向にプレイヤーを向けるPlayerオブジェクトの向きを変更するのは、transform.LookAt(向きベクトル);です。これはメソッド名からすぐにイメージできると思います。難しいのは向きベクトルを求めるところです。仮の地面(tmpPlane)を用意するカメラからマウスカーソルへの光線(Ray)を用意する。光線を仮の地面(tmpPlane)へ照射(Raycast)して、カメラからその地面までの光線の長さを求める。光線の長さがわかったので、その点(point)を求める。Playerの高さを考慮して、LookAtで向きを変更する。高さはプレイヤーの高さで補正。高さはプレイヤーの高さで補正。point.z));}}上記のように、レイキャストで求める必要があります。一度この仕組みをしっかり学べば理解しやすいです。私も、昔ながらの物理エンジンがないゲームライブラリなどでは、光線の概念がないため、はじめて学習したときは結構理解するのが大変でした。パーティクルの作成パーティクルは、項目数が多いため、誰かが作ったものを参考にして、自分でいろいろパラメータを修正しながら作って慣れていくしかありません。Durationは、この秒数、パーティクルを放射します。この例の場合は、0.15秒つまりかなり身近時間の放射です。Lifetimeは、生存期間で、放射したものが2秒生き続けます。2秒すぎると消えます。Speedは、そのまま速度で、これを速くすれば、遠くまで飛ばせます。EmissionのRateは、量です。この場合1秒に100個ぐらいパーティクルを放射します。エフェクトを選択すると、Sceneビューに以下のGUIが表示されて、この部分でパーティクルの起動、ポーズ、停止ができます。下に現在生成されているパーティクル数も表示されるのでいろいろデバッグに役立ちます。2.5と指定しているので、重力の影響を受けて地面に落ちるようになります。これが0だと、横に飛び続けます。上記では、Collisionを有効にして、[World]をターゲットにしているので、地面に当たった場合に貫通しないようになります。Sprites/Default)して割り当てています。通常のパーティクルの場合は、これをする必要ありません。作成したパーティクルはPrefab化しておきます。剣で斬られたら、パーティクルを生成する敵オブジェクト(Enemy)に、Enemyスクリプトを割り当てて、Swordが衝突したら、InstantiateでParticleSystemを生成します。あとは、ParticleSystem.startLifeTimeで、開始からの生存秒数が取得できるので、この秒数後にDestroyメソッドを呼び出して、Particleを破棄しています。Rendererを使えば簡単に剣の軌跡を作れます。GameObjectを子要素として追加して、名前をTrailにしています。Rendererコンポーネントを追加し、各種設定を行います。このプロジェクトの配布Unity5.4で作成しました。http://hajimete-program.com/games/SwordAttack_and_DeathEffect.zipまとめプレイヤーをマウスカーソルに向けて、近接武器である剣を振るようにして、ダメージの視覚化としてパーティクルを生成するようにしました。斧やハンマーにしたときに簡単にモーションを追加できるようにMecanimでアニメーションを作成しました。最近の投稿CocosCreator2.0で廃止(Deprecated)されたもの。60行でタイピングゲームを作ろう!Python3+Tkinterでタイピングゲームを作ってみました。PythonでSetIntervalとSetTimeoutと同じようなことがしたい。