ライブラリ
Feelcerca Game Lib 解説
Feelcerca 制作の Unity 向けゲームライブラリです。オーディオ再生、2Dの特殊なパーティクル、シンプルなフェードなどを迅速かつ簡単に実装するためのツールを提供します。弊社が内製で使用しているライブラリから、公開可能な部分を抜粋したバージョンです。
名前空間: Feelcerca.System
システム関連のクラス群です。
-
Singleton クラス
- 機能:シングルトンパターンの管理。
- 使用方法:
Instanceプロパティを通じてシングルトンのインスタンスにアクセスします。
-
Math クラス
- 機能:数学的計算のサポート。
- 特色:
CalcBezierPoint()などの曲線に関するメソッドを含みます。
-
Logger クラス
- 機能:ログの出力管理。
- メソッド:
- エラーログ:
Error() - 警告ログ:
Warning() - 情報ログ:
Info() - トレースログ:
Trace() - 詳細ログ:
Verbose()
- エラーログ:
名前空間: Feelcerca.Audio
Audio Mixer を活用した音声再生のクラス群です。
-
Manager クラス
- 機能:音量の調整、音楽や効果音の再生、トランジションの管理。
- 特徴:再生すると、
MusicPlayerやSfxPlayerクラスが生成されます。
-
Mixer クラス
- 機能:
AudioMixerへの値の受け渡しやトランジションの実行。 - 注意:基本的には Manager クラス経由で操作します。ゲームスクリプトからは直接呼び出す必要は通常ありません。
- 機能:
-
MusicPlayer クラス
- 機能:音楽の再生。
- 注意:Manager クラスを介して操作することが基本です。ゲームスクリプトからは通常、直接アクセスする必要はありません。
-
SfxPlayer クラス
- 機能:効果音の再生。
- 使用方法:
- 基本的な再生は Manager クラス経由で行います。
- ループ再生した音を停止する場合、Manager クラスで再生した際に生成される
SfxPlayerのStop()メソッドを使用します。
Feelcerca.Audio の使い方
Feelcerca.Audio.Manager と Feelcerca.Audio.Mixer を使用してオーディオ再生を行います。設定手順は以下の通りです。
Feelcerca.Audio.ManagerとFeelcerca.Audio.Mixerを GameObject にアタッチします。- 必要に応じて、
DontDestroyOnLoad()を用いて GameObject を常駐させます。
パラメーター設定
Inspector から各種パラメーターを設定します。
Feelcerca.Audio.Mixer
- mixer (Feelcerca.Audio.Mixer): ゲームで使用する
AudioMixerをセットします。
Feelcerca.Audio.Manager
- mixer (Feelcerca.Audio.Manager): アタッチした
Feelcerca.Audio.Mixerをセットします。 - Sfx Group, Music Group, Voice Group:
AudioMixerで設定した適切な Group をセットします。 - Sfx Volume Param, Music Volume Param, Voice Volume Param: 各 Group で Expose した Volume パラメーターの名前をセットします。
- Sfx Group Name, Music Group Name, Voice Group Name:
AudioMixerで設定した適切な Group 名をセットします(空でも問題ありません)。
オーディオ再生と音量調整
上記設定後に、以下のようにオーディオを操作します。
- オーディオ再生:
Feelcerca.Audio.Manager.Instance.PlaySfx()やFeelcerca.Audio.Manager.Instance.PlayMusic()を使用します。 - 音量調整:
SfxVolume、MusicVolume等のプロパティを通じて行います。 - スナップショットのトランジション:
Feelcerca.Audio.Manager.Instance.TransitionToSnapshot()を使用します。
名前空間: Feelcerca.FX
特殊なパーティクル等を扱うクラス群です。
- ConvergingParticles2D クラス:指定した1点に収束する2Dのパーティクルエフェクトを作成するクラスです。パーティクルは、3点もしくは4点を結ぶベジェ曲線に沿って移動します。コンポーネントとして GameObject に追加でき、Inspector から各種パラメーターを設定できます。
ConvergingParticles2D の使い方
GameObject に Feelcerca.FX.ConvergingParticles2D をアタッチします。必要に応じて Prefab 化します。
パラメーター設定
Inspector から各種パラメーターを設定します。
- Material: パーティクルで使用するマテリアルをセットします。
- Emit Interval: パーティクルの発生間隔(秒)。
- Emit Range: パーティクルの発生地点付近での広がる範囲。
- Emit Count: 1フレームで発生可能なパーティクル数。
- Attraction Field: パーティクル到着地点付近での広がる範囲。
- Scale: パーティクルのサイズ。
- Life Time: パーティクルが発生しつづける時間(秒)。
- Max Rotations: 最大回転数。
パーティクルの表示
インスタンス化した GameObject から Feelcerca.FX.ConvergingParticles2D コンポーネントを取得し Init() メソッドを呼び出します。必要に応じて AddOnParticleEmitAction() や AddOnParticleArrivedAction() メソッドで Action をセットし、パーティクルの発生時や到着時にトリガーできます。
Init メソッド
public void Init(Vector3 src, Vector3 dst, int maxParticles, bool useInstancing = false);
引数
- src: パーティクル発生地点。
- dst: パーティクル到達地点。
- maxParticles: 最大パーティクル数。
- useInstancing: Instancing を利用するかどうか。
名前空間: Feelcerca.Util
Ortho カメラの拡縮やシンプルなフェーダー(フェードイン・アウト)を扱うクラス群です。
OrthoCameraScaler クラス
Camera の GameObject に Feelcerca.Util.OrthoCameraScaler をアタッチします。
パラメーター設定
- Reference Resolution: リファレンス解像度(Canvas の設定に合わせるのを推奨)。
- Pixels Per Unit: 基本となる Pixels Per Unit の値。
- Only On Start:
trueは Start 時のみ、falseは Update が呼ばれるごとに再計算。
SimpleFader クラス
任意の GameObject に SimpleFader をアタッチします。
パラメーター設定
- Image: 最前面等で画面全体を覆うようにした Panel(Image)をセットします。
フェードイン・アウトの実行
SimpleFader.Instance.FadeIn() や SimpleFader.Instance.FadeOut() を使用します。完了タイミングはメソッドの引数の onDone コールバックにて受け取れます。