Amazon新生活セール開催中!

【Unity】パーティクルでテキストを発生させる方法

unity-generate-text-particles

Shurikenでテキストを発生してみました。

f:id:min0124:20170811205230g:plain

レンダーテクスチャを使ってます。
またテキストが変更されるとパーティクルのテキストも更新されます。

f:id:min0124:20170811235317g:plain

マテリアルのAssetを用意

  1. Asset Create > New Render Texture(名前はText Render)
  2. Asset Create > Material(名前はText Material)
  3. Text Materialを選択して、Mobile > Particle > Additiveに変更
  4. Text Materialを選択して、TextureにText Renderをアサイン


パーティクルのSceneの作成

  1. Main Cameraを選択して、Clear Flags > Solid Color(色は黒)
  2. Main Cameraを選択して、Ctrl+Dでカメラ(Text Camera)を複製。
  3. Text Cameraを選択して、Projection > Othographicに変更。
  4. Text Cameraを選択して、Target Textureにレンダーテクスチャ(Text Renderer)を設定
  5. Canvasを選択を選択して、Screen Space -Cameraに変更。
  6. Canvasを選択を選択して、Render CameraをText Cameraに変更。
  7. GameObject > UI > Textから文字を入力(Wow!)※Text Cameraの表示内に収める
  8. GameObject > Particle Systemを作成。
  9. Particle Systemを選択して、Render > Material > Text Materialに設定

あとはお好みでパーティクルを調整。

ちなみに数字のカウントダウンは下記のコードをテキストにアタッチ

using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class TimeScript : MonoBehaviour {
private float time = 10;
void Start () {
GetComponent<Text>().text = ((int)time).ToString();
}
void Update (){
time -= Time.deltaTime;
if (time < 0) time = 0;
GetComponent<Text> ().text = ((int)time).ToString ();
}
}

参考

www.youtube.com



[おまけ]パーティクルの描画が毎フレーム残り続けてしまう場合の解消方法

パーティクルの描画が毎フレーム残り続けてしまうことが起きたのですが、

ちょっとしたカメラの設定が原因でした。

パーティクルが毎フレームの描画が残り続けてしまう場合の原因

カメラの設定がcamra > Clear Flags > Don’t Clearの場合、パーティクルの各フレームの描画が次のフレーム上に描画されてしまうようです。

真っ黒になるからと言って、よくわからない設定しまうと正しい描画の結果になりません。

ということで、背景を黒くしたい時はSolid Colorを推奨します。

f:id:min0124:20170812000200p:plain

参考

カメラ – Unity マニュアル



以上、すいみん(@cg_method)でした!

すいみん
専門誌の定期購読をするなら月額980円の「Kindle Unlimited」がおすすめです!


eyecatch-amazon-kindle-unlimited
【Kindle Unlimited】CG・DTP・Webデザイナーにおすすめの読み放題サービス[圧倒的コスパ!]