宴3新機能の紹介と、βテスター募集のお知らせ

お知らせ

長らくお待たせしています宴3ですが、ようやくリリースまであと少しというところまできました。
宴3の主だった新機能を紹介していきます。

宴3の主な新機能 

基本表示をSpriteRendererから、uGUIに統一しました


以下に続く新機能を使うために、uGUI表示を基本とするようにしました。

ダイシング機能による、テクスチャ容量の大幅削減 

ノベルゲーム特有の「差分が少ない似たようなテクスチャ」によるテクスチャサイズの肥大化に対応するために、
ダイシング機能を追加しました。


いったん賽の目状に分割して、重複するデータを省いたテクスチャを作成し


そのテクスチャを元に表示を行う機能です。
SpriteRenderでは頂点作成を動的に行えないためこういったことは不可能でしたが、
uGUIに移行したことで可能になりました。


透明のヌキ部分も省くことができるので、差分が少ないデータでも透過部分が多ければファイルサイズが減らせますし、


背景やイベントCGのように不透明な素材の場合は、ちゃんとαなしの画像になります。


これによって、1/10~1/2くらいにテクスチャサイズが減らせるかと思います。

目パチ、口パク機能の追加

ダイシング機能を使うことで、目パチや口パクなどの「ちょっとした差分が必要な画像」が扱いやすくなりましたので
目パチや口パク機能を実装しました。

目パチ


口パク



エクセルで中割りなどコマのファイルの命名規則や、各コマの表示時間を設定するだけです。

パラパラアニメーション

同じくダイシング機能によって、テクスチャ肥大化を抑えられるようになったのでパラパラアニメーションにも対応しました。


立ち絵の表情などと同じように、表示パターンとしてアニメーションをさせることができます。


これも、エクセルでタイムラインとして各コマのファイル名を書くだけで簡単に使えるようになります。

アバター表示

ダイシング機能とは別に、「顔」や「服」などをパーツ単位で重ねて表示する形式にも対応しました。
キャラクターのアバターなどのように、「パーツの組み合わせで表示する」必要があるときに使ってみてください。

ただし、アバター表示はダイシングに比べて表示負荷が高く、
ユーザー入力に合わせてアバターパーツを組み替えるにはある程度のプログラム知識が必要になります。
必要がない場合は、ダイシングを使うことをお勧めします。

顔アイコン表示機能

メッセージウィンドウに顔アイコンを表示する機能も追加しました。


専用のアイコン画像も表示できますし


キャラの一部分をリアルタイムに表示することも可能です。

輪郭が違うパターン切り替えの際のクロスフェード

輪郭が違うテクスチャの場合にも、スムーズにクロスフェードが可能になりました。


改良版。クロスフェード中も不透明部分は後ろが透けない。完全に同一の部分はそのまま表示される。


ちゃんとしてないクロスフェードは不透明部分もフェード中後ろに見えてしまっている。これを改良。

テクスチャ描きこみ機能

アバター表示や3Dモデル(将来的にはLive2Dも)を表示する際に、半透明フェードをかけられない問題を解決するべく、
「いったんテクスチャに描き込んで、それを半透明フェードする」という機能を追加しました。

オブジェクト単位のトランジション

オブジェクトにトランジションをかけられるようになりました。


テクスチャ書き込みと併用することで、3Dモデルなどでも可能です。


他のエフェクトと組み合わせることで、キャラクターの消失エフェクトが作れます。

画面全体のトランジション

画面全体にトランジションをかけられるようになりました。
場面転換などに使っていってください。


同時にTweenなどでアニメーションさせることも可能です。


トランジションはルール画像を作成することで、色々なパターンを作成できます。

パーティクルの正式サポート

パーティクル表示を正式サポートしました。


サンプルとして、炎、爆発、雨、雪、桜吹雪、集中線などを収録してあります。
パーティクルは自作するか、Unity公式のStandardAssetsや、アセットストアなどから入手して追加していってください。

イメージエフェクト

イメージエフェクトを追加しました。
カメラに色々な視覚効果をつけることができます。


グレースケール

セピア

ネガポジ反転


ブラー

モーションブラー

ブルーム

モザイク


魚眼カメラ


トウェル


ボルテクス

カメラズーム機能

カメラのズーム機能を追加しました。

キーフレームアニメーション

キーフレームアニメーションを設定可能にしました。


Tweenでは難しかった複雑なアニメーションのほか、
パラパラアニメーションやイメージエフェクトのパラメーターもアニメーションで動かすことができるようになります。
エクセル上で設定可能です。

演出用別スレッド

テキスト表示と非同期に動作する演出用のスレッドを作成可能にしました。

レイヤー操作

基本的なアニメーションやフェードアウトなどを、レイヤー単位で一括操作できるようにしました。

サウンドマネージャーの改良

再生中にBGM等の音量をさげる「ダッキング」機能を使うときにフェードしながら音量が変更するようにしました。


イントロの時間(ループの開始時間)を指定することで、イントロつきのループ再生をできるようにしました。




キャラクターごとのボリューム設定を可能にしました

ロード処理の改善

選択肢やジャンプの直後にロード待ちで一瞬止まってしまう問題への対策として、
ジャンプ先のシナリオの最初の1ページも、プリロード(先行ロード)の対象とました。

パラメーターにConst(初期値固定)タイプを追加しました

パラメーターシートの値は「初期値」なので、エクセルの初期値を変えても、セーブデータに保存されている値で上書きされてしまっていました。



Const(初期値固定)タイプにすると、代入演算やセーブの対象にせず、常にエクセルのシートの値を固定で参照するようにします。
バランス調整で参照する値として使いやすくなると思います。

プログラムの変更

カスタムプロパティドロワーをいくつか追加

最大最小値の表示など、いくつかのカスタムプロパティドロワーを追加しました。

頻繁に使う機能を拡張メソッドとして整理

ソースコード内で、頻繁に使うstaticな拡張関数(UtageToolKit)をクラスの拡張メソッドとして再定義しました。
ネームスペースはUtageExtenstionsになります。

ライブラリ部分の切り離し可能に


NovelText(ルビ付きテキスト)コンポーネントなど、宴のライブラリ部分だけ使いたい人のために、
GameLibフォルダだけで動作するようにソースコードの依存関係を整理しました

その他、ソースコードの整理

・(たくさんあった)スペルミスを修正しました。
・文字コードをUTF8に統一し、改行コードをCRLFに統一しました。
・ソースコードの置き場所を整理しました。

互換性について

プログラムのソースコードのGUIDやシリアライズされたプロパティの互換性は取っているので、シーンやプレハブなどはそのまま引き継げますが、
uGUI表示を基本にすることと、ソースコードの整理に伴い、宴の内部構造を大幅に変えていますので、
深い部分までプログラムを呼び出して使っているプロジェクトに引き継ごうとする場合は、コンパイルエラーになるかもしれません。
また、UtageToolKit以下にあったメソッドは基本的には廃止なので、UtageExtenstionsの拡張メソッドを使うようにしてください。

宴3でのアップデートの注意点

Unity5.5.0以上が必須となります
アップデートの際はUtageフォルダを丸ごと削除してからインポートをしてください
基本的には新規プロジェクトに使ってください

作成済みのシーンを引き継ぐ場合

一部手作業でアップデートが必要になります(後日ドキュメントをまとめます)
宴2以前のセーブデータは使えなくなります

Live2DやAdx2等の拡張プラグインの対応は?

まだ宴3には対応できていません。宴3のリリース後対応する予定です。
Live2Dに関してはLive2DもCubizm3.0をリリース予定とのことですので、そちらのみの対応になるかもしれません。
宴3の進捗と、Cubizm3.0の進捗の様子をみつつ、要望に合わせて考えていこうと思います。

正式リリースはいつ?

おそらく1月になってしまうと思います。
βテストのフィードバックを受けつつ調整とデバッグ作業をしていき、その後アセットストアに申請を出し、審査通過してからのリリースとなります。
まだセーブ機能を中心に時間のかかるデバッグ作業が残っていますので、βテストにご協力いただけると助かります。

βテスターの募集

宴3のβテスターを募集いたします。
madnesslabo@gmail.com までご連絡ください。
ただ、ベータ版はサンプルは同梱されていますが、まだドキュメントがありません。
「サンプルシナリオだけあればなんとかなる」という人は触ってみてください。
(ドキュメントは正式リリースに先行して公式サイトのオンラインドキュメントをアップデートしていきますが、まだしばらくかかると思います)

Unityちゃんライセンス

ユニティちゃんライセンス

宴3のサンプルでは『ユニティちゃんライセンス』の素材を使っています。『キャラクター利用のガイドライン』も併せてご確認ください。

« 古い記事