ジョーカースクリプト交流掲示板
224140
Unity用 アドベンチャーゲームエンジン。ジョーカースクリプトの掲示板です。
ジョーカースクリプトのサイトへ移動
不具合報告スレッド
-
1:ShikemokuMK
:
2014/10/28 (Tue) 15:45:49
-
不具合を発見されましたらこちらでご報告頂けると嬉しいです。
-
51:あさみ
:
2015/09/27 (Sun) 16:55:51
-
【ペイント系ツールにおける画像作成時の注意事項について】
JokerScript便利なので活用させて頂いております。
長文失礼になりますので結論から申し上げますと以下のようになります。
「画像をペイント系ツールで作成する場合、レイヤーの統合をおこなって書き出した画像を使うこと」
これはJokerScriptの不具合というよりUnityの仕様だと思われます。
さて今回落ち入った事例をご紹介します。
ClipStudio Paintでキャラクターを作成しpng形式で書き出し
これをキャラの画像として使おうとしました。
書き出したファイル名は仮に「charaA_PNG」とします。
Script上の定義はたとえば以下のような感じです。
[chara_new name="charaA" storage=charaA_PNG jname=Aちゃん jcolor="FFE4E1"]
これを[show name="charaA"]しても表示されません。
さらにUntiy上でエラーもでません。
なんでだろうと思い
Unityの再生時にキャラクタ表示を司るオブジェクトを拝見しましたところ
ゲームオブジェクトcharaAは作成されており、
コンポーネント内のimagePathやFilenameもきちんと値が入力されていました
ただし[show name="charaA"]を実行しても
foreオブジェクト内のSpriteがNoneObjectになります。
あれと思いsprite画像に「charaA_PNG」を手動で挿入すると無事表示されました。
そこでさらに「ImageObject.cs」内を拝見し原因を探したところ
画像ファイルを読込むUnityのメソッド「File.ReadAllBytes」で読込みできていなのではないか
と考えられました。
ではどうする?って話ですが、
ClipStudioPaintで書き出しを行う際にレイヤーの統合してから書き出したところ上手くいきました。
どうやらレイヤー情報を残した状態で書き出されたPNGはFile.ReaAllBytesが読み取れないようです。
ちなみに他のペイント系ツールでは試していないのでFile.ReadAllBytesが悪いというよりは
ペイント系ソフト固有の書き出し方法に原因があるのかもしれません。
そこでチュートリアル「キャラクターの表示」の
注意事項に以下の記載があると再発防止になるかと思います。
「使用する画像をペイント系ツール(特にClipStudioPaint)で作成される場合は
レイヤーの統合を行ってから画像の書き出しを行い画像を作成してください」
以上です、失礼します。