Unity ノベルゲームエンジン Fungus メモ

# Unityでノベルゲームを作りたい！
というわけで、Unityでノベルゲームが作れるAssetsから、Fungusを使おうと思っています。
私は英語が苦手です。...あえて険しい山を登ろうと思うのは、キノコが好きだからです！！！？
あとは、[Spine](http://ja.esotericsoftware.com)と連携しやすい点に着目しました。多分、他のツールでもカスタマイズすれば使えるようになるかもしれないけど、よく分からないので容易に導入できそうな点で選びました。ダメだったら他のツールを使おう。

* [jokerscript](http://jokerscript.jp)
    * 吉里吉里に親和性が高い
    * フリーウエアで国内シェア高そう
    * 開発が日本なので安心
    * Live2DやMMDにも対応している
* [宴](http://madnesslabo.net/utage/)
    * 有料だけどエクセルで作成できたり色々便利な機能満載
    * 開発が日本なので痒いところに手がとどく感じ
    * Live2DやMMDにも対応している
* [Fungus](http://fungusgames.com)
    * キノコ！！！！！
    * 無料！！！！！
    * youtubeにチュートリアル動画があるので習得しやすそう（英語）
    * UnityのiTweenなどと連携をして動的にアクションさせることができる
    * Spine-plugin有り



![1474328566948.png](https://qiita-image-store.s3.amazonaws.com/0/45208/b793b94b-c5d8-49c6-4229-ad8a1da96a51.png)

# Fungusチュートリアル動画リスト
    内容箇条書き
Fungusとは、コーディングスキルを必要とせずに、独自のインタラクティブなストーリーテリング・プロジェクトを作成。クロスプラットフォームエンジンUnityのために開発された、無料のオープンソースのプラグインです。（なんとなく翻訳）


## [01 Fungus Install](https://www.youtube.com/watch?v=BQRdRz9Q5VY)
    インストール方法


## [02 Fungus Basics](https://www.youtube.com/watch?v=u5fhU7xAz2o)
    Flowchartの使い方
* FlowChart/block
* block/commandについて
* `Say` 会話の挿入
* `Menu` 選択分岐の作成方法


## [03 Fungus event Handlers](https://www.youtube.com/watch?v=-rtnk9OGCQY) 
    イベントハンドラの使い方
* FlowChart/block`Execute On Event`の説明


| Execute on Event | 内容 | 
|:--|:--|
|Game Started | ゲームがスタートした時  | 
|None| 何もしない  |
|FlowChartEnabled|Set Activeで指定された時|
|Message Received| Send Messageコマンドから指定された時  |
|input| キー操作によるアクション  |
|Sprites| オブジェクト操作によるアクション  |

* キー操作によるアクション
    * spaceキーを押した時にメッセージウィンドウの表示 `key pressed`
* オブジェクト操作によるアクション
    * オブジェクトをドラッグして、メッセージウィンドウを表示 `Object Clicked`



## [04 Fungus Camera](https://www.youtube.com/watch?v=BTJpWheqTLA)
    カメラ設定　プレイヤーが見ているものを制御します
* サイズ　内側4：3、外側16：9の比率
* センターをドラッグして配置を変えたり、上下にある白い四角をドラッグすることで拡大縮小ができる
* 背景をフェードインさせる
	* 背景をHierarchyに追加
	* `Fungus/Create/View`でFungusViewを追加し、Viewの大きさや位置を変更する
	* flowchart/blockに`Camera/FadeToView`を追加
	* TargetViewに追加したViewを選択
	* Duration（時間）やColorを適時指定
* FadeScreen フェードアウト
* MoveToView 二つのViewを作って、View1からView2への移動
* ShakeCamera カメラを振動させる
* StartSwipe View間の画面をスワイプで動かすことができる
* StopSwipe スワイプを止める　時間を設ける場合`Flow/Wait`

## [05 Fungus Sprites](https://www.youtube.com/watch?v=SLcJkKblqhE)
    シーンに挿入したスプライトに、インタラクティビティを追加する
* ShowSprite 表示・非表示
* FadeSprite フェードアウト
* SetClickable2D イベントハンドラのアクションを制限


## [06 Fungus Audio](https://www.youtube.com/watch?v=lNfM83XRSNQ)
    音楽や効果音を追加する方法
## [07 Fungus animation](https://www.youtube.com/watch?v=HPktzBc7zv4)
    Unity Animationを作成し、fungusで制御する
* Unity Animationを作成
    * Animatorでparametersを追加
        * FungusにAnimation/Set Anim Boolを追加する


## [08 Fungus Narrative](https://www.youtube.com/watch?v=BVGMVCIUoVc)
    物語を作るためのいろんなギミック
* 2度目の選択肢は表示させない `Hide if Visited`
* 選択肢に時間制限を設ける `Menu Timer`
* テキスト内の文字飾りや、テキスト再生中のアクションの指定 `Tag Help`
* メッセージウィンドウUIのカスタマイズ　for 2.2ver `SayDialog`
* Character作成、表情差分の設定 `Character`
* portratの挿入（立ち絵）`Stage`
* 選択肢とタイマーUIのカスタマイズ `MenuDialog`

## [09 Fungus Flow](https://www.youtube.com/watch?v=vrLNeFsoCyw)
    フローコマンドと変数を使って、簡単に複雑な流れのアクションや条件分岐が作れる
* `if`文作成
* 2DSpriteフェードアウト
* 別のシーンに繋げる

## [10 scripting commands](https://www.youtube.com/watch?v=GY8iJWSbLZg)
    スクリプトメニューの下のコマンドを使用する方法　デバッグに有用です。

## [11 Fungus variables](https://www.youtube.com/watch?v=uRh7INbed2I)
    変数を使用する方法
* SAVE機能追加
* C#script追加方法

## [12 Fungus iTween](https://www.youtube.com/watch?v=Ii2kz0AgqkU)
    Fungus iTweenを使用すればスプライトを移動、回転、拡大縮小など、いろんなアニメーションさせることができるよ

## [13 Fungus localisation](https://www.youtube.com/watch?v=kBIXOwfaaaU)
    ローカライズ　言語追加
* csv書き出しエクセルで編集
    * あらかじめ書き出すflowchartを用意
    * fungus/create/localizationを追加
    * FlowchatにてLocalization id `Flowchart`
    * localization内のExport Localization Fileでcvs書き出し
        * 文字化けするので、UTF-8で開くかなんとかする
    * 各言語追加して編集cvs上書き保存
    * localization内localization fileにリンク
    * active langueに追加したタグを入力
* commandsにset Languageで再生途中で言語を変更することも可能


## [14 Fungus Editing Story Text](https://www.youtube.com/watch?v=WBA-shjuTBA)
    ローカライズ　テキスト編集
* テキストの書き出し＆編集＆読み込み

## [15 Fungus Spine](https://www.youtube.com/watch?v=4nxfjlKcAhs)
    Spineの導入から動かし方
* Fungus公式からfungus-Spine.packegeをダウンロードする
    * 現在はFungusパッケージに含まれていて、個別にダウンロードする必要は無いようです。
    * Fungus/Integrations/Spineにpackage入ってますよ。
* Spine公式からSpine-unityのランタイムをダウンロードインストールする
* commandに`Spine/PlaySpineAnim`を追加する

## [16 Extending Fungus](https://www.youtube.com/watch?v=WFEGnS7MU74)
    C＃でFungusを拡張
* 画面を赤くしたりタイマーを追加したり

## [Fungus 2.2 features](https://www.youtube.com/watch?v=S3TKQ86xsJM)
    2.2で追加された新機能について説明
* 任意のユニティテキストオブジェクトにテキストを書き込むことができます
* UnityのUI要素とfungusとの間に読み取り用のGetTextとSetテキストコマンドと書き込みテキストコマンド。
* マウスカーソルはマウスカーソルのアイコンを変更するためのコマンド。


# 参考にさせていただいたサイト

* [プログラミング不要でビジュアルノベルが作れる　Fungusを使ってみる] (http://gochiuni.com/entry/2016/03/30/151403)
* [Unity上で動くノベルゲーエンジン「jokerscript」を触ってみたよ](http://www.kawaz.org/blogs/tunacook/2014/12/14/656/)