質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

6545閲覧

パーティクルで1個の球が膨らみ、小さくなったり大きくなったりする動きの表現をしたい。

退会済みユーザー

退会済みユーザー

総合スコア0

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2016/09/24 16:01

編集2016/09/25 02:51

###前提・実現したいこと

パーティクルシステムのデフォルトのテクスチャを使って、最終的には次の仕様のパーティクルを作成したいと考えています。

①一ヵ所で発生して、一個のみ生成(一個に見えるように生成)。その場所に留まり、移動はしない。 ②最初に、半径0(もしくは限りなく小さい)から、時間経過と共に指定した半径まで広がる。 ③そして、指定した半径まで広がったら、今度は若干小さくなり、また元の大きさまで広がるの繰り返しが続く。 ④インスペクターで②の広がる速さや、③の小さくなったり大きくなったりの速さを調整できるプロパティを 知りたい。

まず、②の時点で既に意図したものが作れていません。
また、②の作成の時点で新たな疑問が生じました。

###試したこと

デフォルトのパーティクルの設定から

・Duration:5(デフォルトのまま) ・StartLifetime:5(デフォルトのまま) ・StartSize:1(デフォルトのまま。広がりきった時の半径はこの大きさでよい。) ・StartSpeed:0 ・EmissionのRate:1 ・Shape:Cone。 ・ShapeのRadius:0.01。 ・(とりあえず、②までの仕様を完成させたいので)、 SizeoverLifetime:CurveでSize0.0から1.00までの右上がりの直線。

これを実行してみると、初めは半径0ぐらいから、徐々に大きくなるのですが、5秒経過して、1個のパーティクルが消えると、ここから先、自分の予想では、また半径0ぐらいから、徐々に大きくなる球が出現すると思っていたのですが、その1個が消えた直後、既にある程度大きさを持った球が現れて、1秒で広がりきってまた消えての繰り返しになります。

ここで思う疑問。

①なぜ、最初の球が消えた後、既に少し大きくなった球が出現するのか? また、最初の球が消えた後も半径0ぐらいから徐々に大きくなる球を出現させて、 また消えて、同様の球がまた出現する、その繰り返しをするにはどう設定すればよいのか? ②最初の球が指定の半径まで大きくなったら、そこでストップさせることはできないのか? 最初の球を消さないで、その半径を維持したままにする方法はないのか? (できれば、スクリプトの操作でなく、インスペクターの設定で。)

そして、冒頭に書いた最終的な仕様を完成させる方法が知りたいと思っています。

質問が多くなってしまった為、最終的な仕様は簡単なアドバイスとかでもかまいませんが、
疑問①②に関して、ご教授お願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

結論から言うと、パーティクルシステムで行う内容ではありません。
Animationなどを利用した方が理想通りの動きになるかと思います。

理由として、パーティクルシステムは1つのパーティクルが「生成→消滅」することを前提としており、「ループする」ことを想定していません。
(システム上「生成し続ける」ことは出来ますが、パーティクル単体では「生成→消滅」を繰り返します)

■疑問1への回答
恐らくEmissionのRate設定が「Time」になっているかと思いますが、これは「1秒毎にn個生成」という設定です。
なので1秒毎にパーティクルが生成され、重なり合っている所為で「最初の1粒が消えた時、既にある程度大きくなった次の1粒が重なっている」ので「大きさが0にならない」ように見えています。
EmissionのRateを「0」にし、Burstsに「Time:0.00、Min:1、Max:1」の項目を付け足すと「Duration1回につき1個生成」という設定となり、想定通りの動きとなります。

■疑問2への回答
「パーティクルを消さない」という設定は出来ません。
(Lifetimeを物凄く長くすればそのように見せかけることも出来ますが、その時間が来れば消えるので永続的ではないです)
前述の通り、オブジェクトを作成してAnimationを使用した方がいいでしょう。

投稿2016/09/29 02:45

sakura_hana

総合スコア11427

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/09/30 13:52

ご回答ありがとうございます。Animationを利用してみたいと思います。ご教授くださりありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問