LoginSignup
1
1

More than 5 years have passed since last update.

Unityで文字の3Dモデルを作る(VTextアセット編)

Last updated at Posted at 2016-09-10

※以下で説明する通り、現状Dynamic Batchingを切らないとエラーになるようです。アプリ全体のパフォーマンスに影響があるため利用が難しそうですが、それはそれで情報としてあった方が良いと思うので公開します。


文字を3Dモデルとして扱う事で、巨大な文字を積み上げたり転がしたりしたいと思い、試してみました。

VTextについて

Asset Storeで公開されている有料アセットです。
VText
https://www.assetstore.unity3d.com/jp/#!/content/24768

※クリックでYouTubeの説明動画に飛びます
VText説明動画

Unity 4.6.0 以降のバージョンが必要
VText is a Unity Package which generates dynamic 2d and 3D text at runtime, using an intuitive user interface. VText supports Unity Pro 4 and Unity 5(Personal Edition & Enterprise Solutions)

価格は $60 です(2016年9月8日時点)

確認環境

  • Unity v5.4.0f3
  • Xcode v7.3.1
  • MacBook Pro (OS X 10.11.5)
  • iPhone 6s

デモを動かす

(1)初期設定〜Unityエディタ上で動かすまで

よくあるインポート→デモシーンを開いて実行、では動かないので注意して下さい。
この手順はアセットに含まれるドキュメント(Web上にもあります)に沿っています。

  1. VTextアセットをインポート(全てチェックでOK)
  2. UnityのWindowメニュー -> Virtence -> VText Setup を実行。VTextSetupというウィンドウが開く。
  3. Checkをクリック
  4. Create StreamingAssets Folderをクリック。このボタンは、既にStreamingAssetsディレクトリがある場合出現しない。
  5. Create StreamingAssets/Fonts Folderをクリック。同上。
  6. Install all provided fontsをクリック。これによりStreamingAssets/Fontsに幾つかのフォントファイル(.otf)が置かれる。デモシーンで使われているのでここで入れたが、自分で作る際には必要なフォントのみを置く。なおこのフォントファイルはビルドにそのまま入るため、サイズや著作権に注意。
  7. Unityを再起動してプロジェクトを開き直す
  8. Assets/Virtence/VText/_DemoScene/StartScene を開いて実行する

Unityエディタ上はこれで動くのですが、確認した環境では以下の問題が出ました。

Dynamic Batchingのエラーが大量に出力される

新規プロジェクトを作り、上記の手順でデモをそのまま動かすと "Dynamic batching: index buffer source is NULL (first IB byte 0 count 0 first vertex 0 offset 226)" といったエラーがConsoleに大量に出力されます。クラッシュはしませんが気持ち悪い状態です。こちらについてはAsset提供元から報告があり、バグトラッカーにも登録されています。
VText提供元の発言
Unityのバグトラッカー

(2)iOSで動作させるための対応

上記の通り、Unityエディタ上だとエラーログは出るものの動いていました。が、iOSプロジェクトをビルドしてXCodeから実機で実行しようとすると、起動時にUnityGfxDeviceWorkerでbad accessが出てクラッシュしてしまいます。

提供元が書いているくらいなので使い方の問題ではなく(環境依存はあるかもしれませんが)、Dymanic Batching周りだろうということで外してみたところ、クラッシュせず無事動作しました。
具体的には、iOSプラットフォームにswitchした状態でUnityの Build Settings -> Player Settings -> Other Settings -> Dynamic Batching のチェックボックスを外します。

しかしこの方法はアプリ全体のパフォーマンスに影響があるため、他の回避手段が見つかるか、上記のIssueが修正されないと私の用途では利用が難しく、いったんこのアセットの利用は断念しました(IssueにVoteしました)。

もう1つ同じ用途で使えそうな別のアセットがあるため、次はそちらを試す予定です。
→(2016/09/13追記)試しました。非常に良いです。
Unityで文字の3Dモデルを作る(FlyingText3Dアセット編) - Qiita

デモの範囲での覚書

  • 日本語(日本語フォント+日本語文字列指定)は、問題なく表示されました
  • ドキュメントにもありますが、文字モデル生成時の負荷が結構高い印象です。クォリティ設定を落とす(ポリ数を小さくする)事で軽くはなりますが、用途次第では厳しいかもしれません
  • 装飾はかなりバリエーションがあり、クォリティを上げるとかなり綺麗なので、動的生成ではない用途であれば有用そうだと感じました
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1