はじめに
unityのfungusについてのちょっと書こうかなと。覚書みたいなものです。
基本的な使い方については、こちらの方が詳しいと思います。
https://qiita.com/Kirikabu_ueda/items/bfc6e086d408b1cba34b
●fungusのいいところ
私が思うのは機能が最小限であることが一番かな~と思ってます。
私はADVとして使うのではなく、RPG等の会話にのみ使うという使い方をしているので、Prefab化して他のシーンに持っていくことが簡単という点でfungusが一番良いと思ってます。
他にも宴やDialogue System for Unityも購入してみたんですが、どうにもこれだけでゲームを作るなら良いと思うけど、ここにだけ使いたいという使い方だとちょっと重すぎるかな…といった印象でした。
ただ宴は日本語開発だけあって、わかりやすいしADV作りたいなら宴の方がいいかも。
あと英語の資料ばっかりで分からないことが多くて困ってたんですが、これがChatGPTの登場で一気に解消されました。ありがとうチャッピー。
●fungusのダメなところ
aseet storeからも削除されてるし、導入が自己責任でってとこはまぁ。
選択肢をカスタムするとシーンによってはバグる気がします。マウス操作しか受け付けなくなったり。私はSwitchでの開発もやってるので、コントローラー使えないと困るのです。そういう人は選択肢をいじらないほうが良い。
そもそも選択肢がボタンで設計されてるので、キー使えないんですよね。他はキーとスティック両方対応してるけど選択肢だけスティック選択のみになってしまう…。まぁ販売出来ないほどじゃないけど、不便だよねって感じです。
●もう一個関係ない話
最初に2Dを選択するか、3Dを選択するかの話しです。
正直3Dとっつきにくさはあったけど、私はBlenderとかZBrushいじるんで、ただZ軸が追加されるだけって感じではあるんだよな~。モデリングできなくてもAssetStoreにいっぱい無料でもオブジェクトあるし。
2Dと3Dで違い、一番感じたのはパーティクルで雪を振らせたときに立体かそうじゃないかってとこかなと思いました。パーティクルで立体に振らせたい人は3Dを選びましょう。

上と下、使ってるパーティクルは同じなんだけど、降り方が全然違くて地味に感動。
3Dシーンに2Dを配置するやり方はこちらを参考にしました。
https://www.studio-cheap.com/2024/05/18/3d%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%81%AB2d%E7%94%BB%E5%83%8F%E3%82%92%E9%85%8D%E7%BD%AE%E3%81%99%E3%82%8B%E3%80%90unity6%E3%80%91/
STUDIO CHEAPさん
fungusのカスタム
普通にfungusで立ち絵を表示すると、メッセージウィンドウのちょっと上くらいに表示されるんですよね。
まぁ下に表示したいぞということで、STAGEの数値をいじります。

このくらいでかくて良い。

メッセージウィンドウの画像はSayDialogのPanelから変えます。
もちろん \Assets\Fungus\Textures の画像を直接上書きしちゃっても良いです。
ちなみに、メッセージウィンドウを表示したくないってときはSetActivでこのPanelをfalseにすると非表示になります。画像だけ表示してクリック待ちをするとかそういう時。
この名前表示があるときネームプレートみたいなのを表示して、ない時は消すってのどうやってるんですか?って話しですが、ネームテキストはそのPanelの下のImageを使ってます。つまり顔グラの表示の流用です。
ただこれ、Scriptを弄る必要があって、 \Assets\Fungus\Scripts\Components の SayDialog 424行目あたり、elseのところをコメントアウトしてください。
// Clamp story text to left or right depending on relative position of the character image
if (StoryTextRectTrans.position.x < characterImage.rectTransform.position.x)
{
StoryTextRectTrans.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Left,
startStoryTextInset,
startStoryTextWidth - characterImage.rectTransform.rect.width);
}
else
{
/*
StoryTextRectTrans.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Right,
startStoryTextInset,
startStoryTextWidth - characterImage.rectTransform.rect.width);
*/
}

sayの中で、portraitで指定すれば表示されます。(つまりportraitにもネームプレートを追加してください)
とりあえずここまで。
👉 次の記事 Fungusの導入からカスタムまで(2)




