Graph)を使っていい感じのエフェクトができたので自慢させてください。GraphについてはUnityの公式PVをご覧あれ。customers.まだこの機能自体はPreview版なので正式にサポートされている訳ではないのですが、Unity2018.3(今はまだβ版)で先行して使うことができます。Graph)の導入方法をまとめています。クローンするブランチによってエラーが発生したりするので、私が出会った範囲でエラーの対処方法も記載しています。その導入方法については上の記事でまとめたのでぜひあなたも使ってみてください。Graphで作ったエフェクトを自慢すると共に操作方法や流れをざっくりとお届けする記事です。Graphを使う準備として、2018/11/3時点ではUnity2018.3.0bほにゃららのβ版が必要です。Hubがあるとめっちゃ便利なのでそのインストールから始めるのがベネ。Hubのインストール。Hubの1.2.0版をベースにインストール手順、使用方法、メリットデメリットをまとめました。続いてUnity2018.3のβ版をインストール。GraphがUnity2018.3.0bxで使えるらしいので、まずはベータ版のインストールから。Hubからインストールすると最短4クリックでインストールが終わって楽ちんです。Graphを導入します。Graph)の導入方法をまとめています。クローンするブランチによってエラーが発生したりするので、私が出会った範囲でエラーの対処方法も記載しています。一通りこのブログ内で完結できるよう手順を準備していますが、他のブログでも分かりやすくまとめてくださっている神々がいるのでそちらも一緒に参考にされるとよいかも。Graphとは上に挙げた記事の中で書いたような気もするけどおさらい。GraphとはGPUを使ってエフェクトを表現してくれる機能で、非常に大きな数のパーティクルでもサクッと再生してくれる優れものの機能。嬉しいのは、ノードと呼ばれるパーツを組み合わせてエフェクトを作ることができる点。パーツの数が多いので大変っちゃ大変ですが、正直適当に組み合わせているだけでもいい感じのエフェクトになったりします。Graphだったりと呼び方が変わっていますが、実体は同じものです。Effectを縮めて読んだものなので、単なる略語なんです。Effects(エフェクツ)を英語で読むと、FX(エフエックス)と似た発音になるため、このように略されているようです。ここでPreview版としてお披露目されたのです。実は私もロスでこのカンファレンスに参加して......たりはしないけど、この機能が発表されたのを後で聞いて遊び始めました。Preview版のためエラーやバグがあるのはご愛嬌だけれども、新機能を先行体験できるのでぜひおすすめしたいところ。想像力が刺激されます。作ったエフェクトまずは作ってみたものをご覧ください。してはいい感じに作れた気がします(自画自賛)3Dのオブジェクトを生成するパターンと、2DのQuadを生成するパターンを組み合わせて作ってみました。Graphで生成しています。土星本体のマテリアルには自分で作ったテクスチャを貼っています。背景の銀河エフェクトは3種類、遠くで光る星は大小2種類です。画面内に計6種類のエフェクトがありますがレンダリングはスムーズです。動画は30FPSで録画しており、実際の画面はもっと滑らかーに動いています。あなたがエフェクトを作った時にも滑らかーにいい感じのエフェクトが表示されるはずです。エフェクト作成の流れとノードエフェクトは以下の流れで表示されます。Spawn(生成)Initialize(初期化)Update(更新)Output(出力)これらのパーツ(ノード)の中にブロックと呼ばれるコンポーネントを追加して動きを作ります。ノードには以下のタイプのものがあります。Context(生成の流れに関わるもの)Operator(プロパティの値を計算するもの)System(ひとまとまりの処理を追加)Misc(その他色々)冒頭に挙げたSpawnとかInitializeなどはエフェクトの生成に関わるものなのでContextです。この中に位置や速度などを定義するブロックを追加して動きを付けていきますが、そのプロパティはOperator(演算子)ノードで操作することができます。パーティクルの位置を乱数で決めたいなんて時には、Operatorから乱数発生用のノードを追加して接続します。Systemからはパーティクル生成のための一連の流れを一気に作成できます。Graphのアセットを作成した時にデフォルトで表示されている一連の流れを作ってくれるので、いじりすぎて最初からやり直したい時に使うと便利。Miscは現状ノードのグループ化の処理だけ入っています。操作方法について慣れないと操作方法にびっくりするかもしれません。スクロールバーが表示されていないので、「下のパーツどうやって見ればいいんだろう......」と一瞬戸惑いました。Animatorをよくいじる人ならすぐに分かるかも。各ノードはドラッグ&ドロップで位置を変更できるので見やすい位置に移動させましょ。複数の要素を選択したい時には何もないところからドラッグを始めて範囲選択を行います。Block]を選択します。ブロック同士の順番はドラッグ&ドロップで変更可能です。Node]を選択します。Operatorの作成で使用することが多いと思います。コンテキストの説明(ざっくり)エフェクト作成の流れに沿ってざっくりとコンテキストの説明を。Spawn(発生)Spawnで生成する数を調整するのだポッターSpawnとはゲーム的には「発生する」といった意味。言葉だと魚などが卵を放卵することを表します。生まれてくる感じの言葉で、パーティクルのイメージに合っていますね。Rateが作成されています。ここで指定した数のパーティクルが毎秒コンスタントに生成されるようになります。この部分は後述のInitializeに存在するCapacity(許容量)とも関わっていて、Capacityの値に達するとそれ以上パーティクルが生成されなくなります。Rateで指定した値の分だけ順次生成する、みたいなイメージです。Initialize(初期化)容量もここで決める生成されたパーティクルに対する初期化処理を行うコンテキストです。Capacityでは画面内に表示されるパーティクルの数を決めます。GPUを使って処理しているので結構値を大きくしても大丈夫そう。ここは演出したいエフェクトに応じて決めるといい感じです。サンプルとして上で紹介したエフェクトだと、背景の銀河部分はCapacityが1エフェクトあたり70000程度になっています。作った後に気づきましたが、Capacityは32の倍数の方がいいかもしれません。いうのはNVIDIA社のGPUを使っている場合、処理の最小単位が1Warp(32スレッド)なので、ここに合わせた数字の方が処理効率が良さそうです。開発時はそこまで気にする必要はなさそうですが、リリース時などはプラットフォームのGPUに合わせたチューニングが必要かも。他にも生成直後の速度(ベクトル)を定義したり、Lifetimeでパーティクルが何秒で消えるかの設定も可能です。このLifetimeに達するとパーティクルが消え、Capacityの値に余裕が生まれて新たにパーティクルが生成されるようになります。Update(更新)デフォルトでは何も入っていないUpdateでは各パーティクルの動きを更新します。参照しているのが通常のUpdate()と同じフレーム単位なのか、FixedUpdate()と同じ固定時間間隔のフレームなのかはまだ未調査。物理的な動作を計算しているのを見ると固定フレームなのかな。※追記Updateの間隔は自分で選べました。Modeから選択可能です。自分で選べたUpdateの中ではCollisionブロックを使って衝突を定義したり、Forceを使って力が加わる様子を定義できます。個人的に積極的に使いたいのがForceの中にあるTurbulence(タービュランス:乱気流)です。風が吹いてきたときのようにいい感じにパーティクルをばらけさせてくれるので、見た目が一気にそれっぽくなる素敵なコンポーネント。Sphereだったり、重力がはたらくGravityを使うと動きを付けやすくなります。Output(出力)見え方に関わる大事なノード最後にOutputのノードです。この部分は見た目に直接関わってくるので、設定するときは力を入れましょ。Outputとして2Dのスプライトが生成されます。Outputで生成しています。Outputを使って球体を生成しています。lifeは、Initializeで設定したLifetimeに応じて変化する値です。lifeであれば、生成直後なら白、消える直前なら濃い青になるように設定されています。Lifetimeがランダムな値を取るようにするとグラデーション内のそれぞれの色が現れて綺麗になります。逆に色を揃えたい時にはLifetimeを固定するといいかも。Graphの操作方法とエフェクト生成の流れをざっくりとお届けしました。それと実例動画も用意したので、なんとなくこんな感じに作れるんだーくらいのイメージを持ってもらえたら素敵。ゲーム開発の攻略チャートを作りました!「ゲームを作ってみたいけど、何から手を付けていいか分からない!」そんなお悩みをお持ちの方向けに、todoがアプリをリリースした経験を中心に、ゲーム作りの手順や考慮すべき点をまとめたe-bookを作成しました。ゲーム作りはそれ自体がゲームのように楽しいプロセスなので、「攻略チャート」と名付けています。投稿一覧Unityを使ってアプリを作ったり、Assetを作ったりしてる個人開発者。Unity全般ネタとAsset開発の情報を扱っています。Asset開発は日本語の情報が少ないのよね。ことで些細なネタでも情報を蓄積するのが目的です。2019.02.01Unityではpublicなフィールドや[SerializeField]を付けたフィールドはInspectorウィンドウで値を編集することができます。Hubの1.2.0版をベースにインストール手順、使用方法、メリットデメリットをまとめました。Gradingについて、概要と設定項目を紹介しています。2018.05.07古いバージョンのUnityを使っているときに、Projectウィンドウにファイルが表示されなくなる怪奇現象に遭遇しました。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。todoUnityのアセットを作ったり、スマホ向けのアプリを作っています。このブログではUnity初心者に向けたチュートリアルやテクニックを放出しています。詳しいプロフィールはこちら。お仕事の相談や現在提供中のサービスについては、こちらの『サービス内容』のページをご覧ください。Explorers_todoオンライントレーニングのサイトをオープン!エクスプラボを運営しているtodoが、より集中的にゲーム作りについて学べるオンライントレーニングのサイトをオープンしました。エクスプラボのトレーニングルーム』です。勉強したことの進捗も表示できるようになっているので、どれだけ頑張ったのかが分かるようになっています。ゲーム開発の攻略チャート』というe-bookをプレゼントしています。メルマガではゲーム開発のテクニックを中心に役立つ情報をお届けします。詳しくはこちら!お仕事の依頼はこちら!ゲーム開発のサポートも可能!エクスプラボではゲーム開発のサポートのサービスも行なっています。いう場合にオススメのプランです。詳細はこちら!もちろん、普通に開発依頼をいただいてもお手伝いします。その場合はお問い合わせへ。【Unity】ポストプロセシングを使って簡単にプロっぽいゲーム画面を作るゲームの作り方を学べるオンライン講座のサイトをオープンしました!RANKING【Unity】Mathfの切り上げ、切り捨て、偶数丸め。使い分けが大事よねMathf【Unity】ゲームといえばランダム要素。(12)作ったアプリ空とにゃんこと風船と癒し系縦スクロール避けゲーの『空とにゃんこと風船と』(TODOWORKS名義でリリース)気軽に遊べるスマートフォン向けアプリです。ボクセルアートで彩られるどこかレトロ、でも新しい世界で癒されてみませんか?ぼく、猫ですって!タップ系RPG『ぼく、猫ですって!』(TODOWORKS名義でリリース)気軽に遊べるスマホRPG。