ジョーカースクリプトのエラーを対応し、最近のUnityバージョンで使う

Unity

簡単にギャルゲーなどのアドベンチャーゲームを作成することが出来るジョーカースクリプト(JokerScript)というフリーライブラリがあります。

公式ページ

ジョーカースクリプト|Unityで動くノベルゲーム開発環境
無料のノベルゲーム作成ツール。商用利用可能。作成したゲームはPC(Windows、Mac、Linux)、スマートフォン(iPhone,アンドロイド)、各種タブレットなどあらゆる環境で遊べます。

こちら本当に高機能で簡単に作ることが出来るので、自分も是非使ってみたいなと思いました。

ただ公式ページにもあるように、現時点で開発やサポートは終了しています。

【重要】ジョーカースクリプトは開発を停止しています。 そして、間もなく配布を終了します。 サポートやご質問には一切回答できません、完全に自己責任での利用になります。ご了承ください

更新日:2015/12/20

最新版はUnity5.3.0が必要です

そんでもって、Unity5.3.0でしか動かないので最近のバージョンのUnityだとエラーになってしまいます。

自分は現在Unity2018.04.18で作っているのでエラーが多発しましたが、なんとか動かせるところまでたどり着くことが出来ました。

エラー別に対処した内容を記載したいと思います。

ジョーカースクリプトのインポートでD:というファイルがインストールされようとする

JOKER.unitypackageをインポートしようとすると以下のように謎のD:というものがインポートされる現象が起こりました。

全く情報がないのでおま環かもしれません。上記をそのままインポートしようとすると

Could not create directory for asset (D:/MyApp/Unity530/Editor/Data/UnityExtensions/Unity/Advertisements/Editor/UnityEditor.Advertisements.dll) (path: D:/MyApp/Unity530/Editor/Data/UnityExtensions/Unity/Advertisements/Editor (73))

Could not create directory for asset (D:/MyApp/Unity530/Editor/Data/UnityExtensions/Unity/Advertisements/UnityEngine.Advertisements.dll) (path: D:/MyApp/Unity530/Editor/Data/UnityExtensions/Unity/Advertisements (66))

Could not create directory for asset (D:/MyApp/Unity530/Editor/Data/UnityExtensions/Unity/EditorTestsRunner/Editor/nunit.framework.dll) (path: D:/MyApp/Unity530/Editor/Data/UnityExtensions/Unity/EditorTestsRunner/Editor (76))

Could not create directory for asset (D:/MyApp/Unity530/Editor/Data/UnityExtensions/Unity/EditorTestsRunner/Editor/UnityEditor.EditorTestsRunner.dll) (path: D:/MyApp/Unity530/Editor/Data/UnityExtensions/Unity/EditorTestsRunner/Editor (76))

Could not create directory for asset (D:/MyApp/Unity530/Editor/Data/UnityExtensions/Unity/UnityPurchasing/UnityEngine.Purchasing.dll) (path: D:/MyApp/Unity530/Editor/Data/UnityExtensions/Unity/UnityPurchasing (67))

上記のようなエラーになってしまいました。

対処としては普通にインポートしなければいいだけなので、インポートの対象から除外します。

ジョーカースクリプトのインポートで「Package corrupted」が出る

Package corrupted, deduced GUID exists but at different destination path, refusing import.

ジョーカースクリプトのインポートでいきなり上記エラーとなってしまいました。

また他のエラーも発生していたため、このエラーが根本原因かと思い、調査にかなり時間を使ってしまったのですが、結論は「インポート時にこのエラーが出ても普通に動く」でした。

エラーが出た理由は気になりますが、とりあえず無視で良さそうです。

WebPlayer export is no longer supported in Unity 5.4+エラー

ジョーカースクリプトのインポート終了後に以下のようなソースエラーが出ました。

Assets\JOKER\Scripts\Novel\Core\SaveManager.cs(259,32): error CS0619: ‘RuntimePlatform.WindowsWebPlayer’ is obsolete: ‘WebPlayer export is no longer supported in Unity 5.4+.’

Unity 5.4+以降ではWebPlayerに対応しなくなったということで、WebPlayerのための記述を削除します。

if文のうち、elseの中にある記述だけを残して、ifの中身を削除します。

↓下記の赤枠部だけ残す(ifの中を消す)

同じような箇所が複数あるので、それを全て修正すればエラーが解消されて動くようになります。

参考にしたページ

マクロ「bg_new」は見つかりませんでしたエラー

最後にジョーカースクリプトの実行時のエラーですが、下記のようにマクロが見つからないと言われて落ちてしまいます。

Novel[wide/title]:Error:4行目 マクロ「bg_new」は見つかりませんでした
UnityEngine.Debug:Log(Object)
Novel.GameManager:showError(String) (at Assets/JOKER/Scripts/Novel/Core/GameManager.cs:95)
Novel.ScenarioManager:getMacro(String) (at Assets/JOKER/Scripts/Novel/Core/ScenarioManager.cs:310)
Novel._MacrostartComponent:start() (at Assets/JOKER/Scripts/Novel/Components/SystemComponent.cs:122)
Novel.GameManager:nextOrder() (at Assets/JOKER/Scripts/Novel/Core/GameManager.cs:266)
Novel.LabelComponent:start() (at Assets/JOKER/Scripts/Novel/Components/SystemComponent.cs:31)
Novel.GameManager:nextOrder() (at Assets/JOKER/Scripts/Novel/Core/GameManager.cs:266)
Novel.JumpComponent:start() (at Assets/JOKER/Scripts/Novel/Components/SystemComponent.cs:328)
Novel.GameManager:nextOrder() (at Assets/JOKER/Scripts/Novel/Core/GameManager.cs:266)
SceneInit:Start() (at Assets/JOKER/Scripts/Novel/SceneInit.cs:94)

KeyNotFoundException: The given key was not present in the dictionary.
System.Collections.Generic.Dictionary`2[TKey,TValue].get_Item (TKey key) (at :0)
Novel.ScenarioManager.getMacro (System.String macro_name) (at Assets/JOKER/Scripts/Novel/Core/ScenarioManager.cs:313)
Novel._MacrostartComponent.start () (at Assets/JOKER/Scripts/Novel/Components/SystemComponent.cs:122)
Novel.GameManager.nextOrder () (at Assets/JOKER/Scripts/Novel/Core/GameManager.cs:266)
Novel.LabelComponent.start () (at Assets/JOKER/Scripts/Novel/Components/SystemComponent.cs:31)
Novel.GameManager.nextOrder () (at Assets/JOKER/Scripts/Novel/Core/GameManager.cs:266)
Novel.JumpComponent.start () (at Assets/JOKER/Scripts/Novel/Components/SystemComponent.cs:328)
Novel.GameManager.nextOrder () (at Assets/JOKER/Scripts/Novel/Core/GameManager.cs:266)
SceneInit.Start () (at Assets/JOKER/Scripts/Novel/SceneInit.cs:94)

上記はC#のバージョンを3.5にすることで動くようになります。

↓Edit→ProjectSettingを開き

OtherSettingの中にあるScriptRuntimeVersionの値を.NET3.5に変更します。

上記の設定をすることで動くようになりましたが、もちろんC#4系の機能が使えなくなるというデメリットはあります。

個人的にasync/awaitが使えないのは痛いですね。

コメント

タイトルとURLをコピーしました