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

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

ただいまの
回答率

87.58%

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

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 4,399

score 352

前提・実現したいこと

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

①一ヵ所で発生して、一個のみ生成(一個に見えるように生成)。その場所に留まり、移動はしない。
②最初に、半径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ぐらいから徐々に大きくなる球を出現させて、
 また消えて、同様の球がまた出現する、その繰り返しをするにはどう設定すればよいのか?

②最初の球が指定の半径まで大きくなったら、そこでストップさせることはできないのか?
  最初の球を消さないで、その半径を維持したままにする方法はないのか?
 (できれば、スクリプトの操作でなく、インスペクターの設定で。)


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

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

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/30 22:52

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

    キャンセル

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

  • ただいまの回答率 87.58%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • トップ
  • Unityに関する質問
  • パーティクルで1個の球が膨らみ、小さくなったり大きくなったりする動きの表現をしたい。