投稿記事

2022年 11月の記事 (2)

ゴヌーチョ 2022/11/06 22:56

メモ:Naninovelとカードゲーム間での変数の受渡

Naninovel上でカードゲーム側の変数を参照しようとした時に詰まったので記録を書いときます

結論から言うとNaninovel側の変数管理エンジンにアクセスして、変数を獲得または書き込むだけで終わりました。
公式上にサンプルコードが無かったので記載(多分書かんでもわかるやろぐらいの基礎的なことだったんだろうなぁ)しておきます。

  CustomVariableManager Custom = null;
    Custom = Engine.GetService<CustomVariableManager>();
    Custom.SetVariableValue("Nani変数", 入れたい変数);

Naninovel側でも変数を作成する必要がありますが、これでNaninovel Script上でこの変数を参照できます

おそらくこんな感じでエンジン名を宣言して関数にアクセスすることで変数以外にもキャラクターとか背景とか触れるんだろうなぁ。まぁ今回必要無かったのでそこらへん試してませんが。

進捗
対戦中の相手コメントを作成
一度言ったコメントは使用しないように処理作成
使用可能カードが増えた際にメッセージを出す処理を作成

ゴヌーチョ 2022/11/01 23:00

メモ:Naninovelで躓いた所とか

Fantia凄いですね、無名の奴が適当に書いた記事を何十人も見てくれるなんて。
誰も見ないだろうなぁと思って書いたんですが、予想以上にPVがあってびっくりしました。凄いやる気出ました、Fantia凄い。

記事を書くなら少しでも情報があったほうが良いと思うので、Naninovelを導入する上で躓いた点と解消方法を書いていきます。

躓いた点:Naninovelのノベルモードからカードゲームに移った際にクリックが反応しない

Naninovel公式のインテグレーションの方法欄にノベルモードから自作のゲームに画面を切り替える方法が載っているのですが、この通りに実装するとカードゲームモードのオブジェクトをクリックしても反応しません。これ、原因は完璧にわかってはいないのですが、非表示になっているNaninovelのオブジェクトがRayCastをキャッチしちゃってるようなんですよね。なのでクリックで操作するゲームでNaninovelを実装するなら以下の青文字の部分を公式のサンプルソースのSwitchToNovelMode、SwitchToAdventureMode
に追加する必要があります

[CommandAlias("novel")]
public class SwitchToNovelMode : Command

//4. Naninovel入力を有効にします。
var inputManager = Engine.GetService<IInputManager>();
inputManager.ProcessInput = true;

var NRay = GameObject.Find("ContinueInputUI").GetComponent<GraphicRaycaster>();
NRay.enabled = true;

[CommandAlias("adventure")]
public class SwitchToAdventureMode : Command

// 1. Naninovel入力を無効にします。
var inputManager = Engine.GetService<IInputManager>();
inputManager.ProcessInput = false;

var NRay = GameObject.Find("ContinueInputUI").GetComponent<GraphicRaycaster>();
NRay.enabled = false;



切り替える際にRayCast機能をON/OFFを切り替えるというわけです。
こんな感じでしょーもない躓きが一杯あったんですよ。
Naninovelに関してはネットで調べても記事が少ないので結構苦労しました
公式の説明は丁寧でわかりやすいんですけどね、少し道を外すと初心者には躓きスポットだらけでした。
また、思い出したら躓きスポットを記事にして後進のための肥しに出来ればと思います。
読んでくださってありがとうございました

検索ワード
Naninovel クリック 反応しない 切り替え うまくいかない インテグレーション

月別アーカイブ

限定特典から探す

記事を検索