A-Nest 2021/04/15 19:00

開発者向け - Unityのテキスト表示について

どうも、プログラマのゆっくりみかんです。
最近またあまり投稿出来て無くて申し訳ないです。

さて、今回は作品の事ではないですが、開発の上での情報共有などをしたいと思います。
同じく制作を行っている方の参考になれば幸いです。

Unityで開発するにあたって、多分色々な人が非常にめんどくさい思いをするのがテキスト表示周りだと思います。
単にテキストを表示するだけなら簡単に終わる話なのですが、

・文字送りをアニメーションさせたい
・文字に効果を付けたい
・選択肢を表示したい
・後から多言語対応するかも
・ルビ使いたい
・スキップさせたい
・後から編集を容易にしたい
・管理を容易にしたい

etc、etc・・・
やるべき事を考えるとキリが無い分野でもあります。

そういうめんどくさい事はアセットストアのアセットに任せてしまおう、と出来るのがUnityの良い所。ですが・・・
何を使えばいいのやら? となりがちです。アセットはお金払って買うものなので、
「とりあえず買っちゃえ!」
とは中々行かない、というのもあります。しかしながら、買わないとどういうアセットなのかわからない、というのもまた事実。
そこで、Unityのアセットを
「とりあえず買っちゃえ!」
しがちな僕がざっとテキスト表示アセット(実質ノベル作成アセットの事が多いですが)について比較をしたいと思います。
最近、とりあえず買っちゃえし過ぎ! ってがふさんに怒られがちですw
あくまで私見なので「買ったけど全然使えないじゃないか!」となっても責任は負えませんし、僕の言う事が正しいとも限りません。
あくまで「参考程度」にして頂ければ、と思います。

多分一番有名なアセットだと思います。

・ノベルゲーを作るのに不足がない、本当にない
・非プログラマの人でも使っていけそうなくらい行き届いている
・ルビ表示にも対応
・作者が日本人なので、日本語ドキュメントが完璧に用意されている

のが良い点でしょうか。
ノベルゲーを作るにあたっては、不満はあまり出ないと思われます。

しかし・・・ テキスト表示に使おうと思って買うと中々痛い目を見ると思っています。

宴は非常に行き届いた素晴らしいアセットです。ただ、本来はノベルゲーの為のアセットであって、テキスト表示という単体の目的に使う為のツールではないので、その行き届いた作りが邪魔をするのです。テキスト表示はあくまで「そういう事も出来なくも無い」という感じです。
正直、僕は使い始めて割とすぐに
「自分で作った方が早いな・・・」
ってなって挫折しました。
Excelを使うというのも僕としてはマイナスでした。Excelって、ファイルの排他制御がやたらと厳しくて、ぱっと編集してぱっとUnityに戻る、みたいなのが非常にめんどくさいんですね。
編集が終わったら一々Excelを閉じないと、異常な結果になりやすい。
これもやはり目的に関わってくる所があると思います。
ノベルゲーなら、まとまった量の文章を一気にガーッと書いて一気にインポート、みたいな感じになるんだと思いますが、ちょっとしたテキスト表示だと、それが細切れになるのです。

そして、最初に書いた行き届いている、という部分が関わるのですが、構造が複雑過ぎて理解し辛い、というのもあります。
細かい所をカスタマイズするのにあまり向いてないなぁ、と。
何というか、プログラマじゃない人が快適にノベルゲーを作るツール、というのが今の所の僕の認識です。

ただ、結果として僕は宴を使い込めてはいないので
「んなこたぁない」
というご意見もあるかも知れません。まあ、そういう時は
「所詮人類ですらない、柑橘類の戯言よ・・・!」
と思って頂ければ・・・w

Fungus

こちらは無料のテキスト表示アセットです。
無料なのでGitHubからも落とせます・・・ というか、アセットストアよりもGitHubで先に最新バージョンが公開されます。
しかし、無料と言っても中々侮れません。

Fungusの一番の特徴は

・覚えやすい
・使いやすい
・カスタマイズしやすい

という部分でしょうか。
かなりすんなりと理解していけました。カスタマイズもかなり容易です。
しかし、やはり無料ツールという事もあり・・・

・時々不安定
・足りない機能がちょくちょく出る
・特に3D表示周りが弱い
・フローチャートの共有に少し不安がある

という事がありました。

不安定なのは非常に困った事の1つで、何故かアセットの機能で会話シーンを自動でスタートしようとするとスタートしたりしなかったりしたので、自分で開始の為のコードを書いたり、初期化が終わっているはずのタイミングで初期化が何故か終わっていないので、最初にダミーの命令を突っ込んだり、変な現象がちょくちょくありました。
まあ、対策できなくもないので致命的ではないのですが。

そして、何より3D表示が弱い。
これのために、3Dを表示する拡張コードをものすごい勢いでガリガリ書く羽目になりました。
3D表示というのは、シーンが3Dであるとかそういうものではなく、3Dキャラのバストアップを会話シーンに表示したい、とかそういう事が出来ない、という事ですね。
基本的に2D表示が想定されているようです。
どうしても3Dキャラを表示したい場合、HDRPを使っていなければレンダーテクスチャを使うのが一番の近道になるでしょう。
スプライトじゃなくてテクスチャなので、結局これも拡張が必要にはなってきますが、まだ楽な方だと思います。

フローチャートの共有というのは、仕組みとしてフローチャート風にテキストを組み立てていくのですが、そのフローチャートがスクリプタブルオブジェクト(データファイル)として出力されるわけではなく、あくまでゲームオブジェクトとしてしか配置されないので、使い回そうとするとプレハブ化する事になります。
そのプレハブ化が何か悪さをしているのか、何というか処理が怪しく感じる所がありました。

総評としては、3D表示を使わない分にはテキスト表示アセットとしては使いやすい部類だと思います。
今作も、途中まではこれで行こうとしてました。

Naninovel

Fungusで行こうと思っていたので存在に気付いていませんでしたが、A-Nestのディスコードサーバの仲間に教えてもらいました。感謝!
価格が非常に高いですが、セール時を狙えば何とか買える範疇に収まるのではないでしょうか。

今の所、まだ使い始めたばかりではありますが・・・
多分、テキスト表示という目的においてはこれが最強のアセットになるのでは、と感じています。

・3D表示も想定されている
・各種要素の汎用性が高い
・ルビにも対応
・テキスト表示部分も最初から吹き出し等、特殊な表示に対応している
・拡張のしやすさにも配慮されている
・ドキュメントに日本語翻訳がある(一部翻訳がない項目、内容が古い項目有り)
・テキストの編集がしやすく、配慮されている

機能面については、値段が高いだけあって、今の所不足が全く見えません。
そして何よりすごいのは、VSCodeに対応している点です。わざわざこのアセットのテキストを書く用の拡張機能が用意されており、命令の候補表示や色づけまで、強力にサポートしてくれます。
良くない点は

・Fungusよりはわかりにくい
・ノベルゲーを想定し過ぎていてデフォルトの構造が少しイレギュラー

という事でしょうか。
デフォルトの構造がイレギュラーというのは特に今悩んでる所で、Naninovelに関するオブジェクトの全てが破棄されないオブジェクトとして全シーンに残り続ける作りになっています。
というか、デモプロジェクトを見ればわかりますが、プレハブ主体でシーンに何一つ配置しないでも作っていける様になっています。
まあそれはいいのですが、カメラまでそちらに持って行かれるのは中々厳しい。
拡張性が高いのでまあ何とかなるんだろうとは思いますが。
ただ今絶賛使いこなしの為に奮闘中です。

結局お勧めはどれよ?

ノベルゲーを作るなら宴かNaninovel、費用をかけたくないならFungus、ノベルゲーにとどまらない作品を作りたいならFungusかNaninovel、って感じでしょうか。
Naninovelは特に、今の所不足が無く極めて優秀です。
そこにさらに、3Dキャラをバストアップで表示したいならFungusは選択肢から外した方が良いでしょう。出来ないわけじゃ無いですが、自分でコードを組める自信のある人、それだけの手間をかけてもいい人に限定される感じです。
最初に言った通り、あくまで僕の私見ですのでそこはご留意下さい。

というわけで、開発者向けの情報回でした。
作品もただ今絶賛開発中で、さらに情報を出して行こうとは思っています。
メンバー一同頑張っていますので、お待ち頂ければ幸いです。

それでは、また!

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

最新の記事

月別アーカイブ

記事を検索