FC2ブログ
    11 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.» 01

    ハルシオンシステムの気ままBlog

    株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

     

    【ハルシオンブログ】今年最後のブログっす。Unity2017.3でAndroidビルドできなくなったけど解決した話!!! 

    メリークリスマス!!
    毎年恒例一人でなにもないクリスマスが終わりました。坂内です。

    スイマセン。
    これが今年最後のブログになります。

    今年もアプリ、ゲーム開発関連の色んな方に絡んで頂きありがとうございました。
    来年も懲りずにアプリを作っていこうと思ってます。

    さて、Unityのバージョンを、「Unity2017.3」に変えたんですが、早速Androidのビルドができないエラーに悩まされています。

    エラーは3つ。

    Error building Player: CommandInvokationFailure: Unable to list target platforms. Please make sure the android sdk path is correct. 
    C:/Users/xxxxxxx/AppData/Local/Android/Sdk\tools\bin\avdmanager.bat list target -c

    stderr[
    Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
    at com.android.repository.api.SchemaModule$SchemaModuleVersion.(SchemaModule.java:156)
    at com.android.repository.api.SchemaModule.(SchemaModule.java:75)
    at com.android.sdklib.repository.AndroidSdkHandler.(AndroidSdkHandler.java:81)
    at com.android.sdklib.tool.AvdManagerCli.parseSdk(AvdManagerCli.java:328)
    at com.android.sdklib.tool.AvdManagerCli.run(AvdManagerCli.java:204)
    at com.android.sdklib.tool.AvdManagerCli.main(AvdManagerCli.java:195)
    Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
    at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
    ... 6 more
    ]
    stdout[

    ]
    exit code: 1


    CommandInvokationFailure: Unable to list target platforms. Please make sure the android sdk path is correct. 
    C:/Users/xxxxxx/AppData/Local/Android/Sdk\tools\bin\avdmanager.bat list target -c

    stderr[
    Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
    at com.android.repository.api.SchemaModule$SchemaModuleVersion.(SchemaModule.java:156)
    at com.android.repository.api.SchemaModule.(SchemaModule.java:75)
    at com.android.sdklib.repository.AndroidSdkHandler.(AndroidSdkHandler.java:81)
    at com.android.sdklib.tool.AvdManagerCli.parseSdk(AvdManagerCli.java:328)
    at com.android.sdklib.tool.AvdManagerCli.run(AvdManagerCli.java:204)
    at com.android.sdklib.tool.AvdManagerCli.main(AvdManagerCli.java:195)
    Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
    at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
    ... 6 more
    ]
    stdout[

    ]
    exit code: 1


    UnityEditor.BuildPlayerWindow+BuildMethodException: 2 errors
    at UnityEditor.BuildPlayerWindow+DefaultBuildMethods.BuildPlayer (BuildPlayerOptions options) [0x0020e] in C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindowBuildMethods.cs:181
    at UnityEditor.BuildPlayerWindow.CallBuildMethods (Boolean askForBuildLocation, BuildOptions defaultBuildOptions) [0x00065] in C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindowBuildMethods.cs:88
    UnityEditor.BuildPlayerWindow:BuildPlayerAndRun()


    よく見るやつですね。
    AndroidSDKのToolsがなんちゃらかんちゃら。

    あれー?一昨日までつかってたUnity 2017.1.1f1だと普通に動いていたのに...

    解決しました!!!!

    今までは、AndroidStudioのtoolsに「SDK Tools, Revision 25.2.5 」のtoolsを上書きして使えていました。

    今回のUnity2017.3では上書きではダメになったっぽい??

    今あるC:\Users\YourUsername\AppData\Local\Android\sdk\toolsフォルダを別名にリネームして、SDK Tools, Revision 25.2.5のtoolsをC:\Users\YourUsername\AppData\Local\Android\sdk\に置けば動くようです!

    [参考URL]
    https://answers.unity.com/questions/1323731/unable-to-list-target-platforms-please-make-sure-t.html

    解決してくれた@yusekisekine さんありがとう!!!

    ということで、気持ちよく新年が迎えそうです!


    それではまた来年!あでゅ~ノシ

    Category: Androidアプリ紹介

    tb 0 : cm 0   

    【ハルシオンブログ】スクロールするオブジェクトの中のスライダーを触ってスクロールできなくない?って話 

    こんにちは。
    大坂です。

    全国的に最低気温が氷点下の日も増えてきてとても寒いですね。

    さて今日は午後から打ち合わせでずっといないのでササっと…
    何もなくても小ネタしか書いてないのですがね…。

    さてタイトル通りですが、
    スクロールビューの中のオブジェクトの中にスライダーがある場合のお話です。

    なんかスクロールしにくいなーと思ったらスライダーの部分触ってスクロールが動かない感じでした。
    こんな感じですね。わかりにくいかもしれませんが…。


    とりあえずでやってみた対策は、
    ①スライダーオブジェクトを作成したときについているBackgroundのRaycastTargetをオフにする。


    ②スライダーオブジェクトの上に出しているテキストをスライダーと同じ大きさにする。


    これをどちらかやればちゃんとスライダーのところでもスクロールできるようになりますね!


    画像はRaycastTargetをオフにしたパターン。
    他にちゃんとしたやり方があるのかもしれませんが…とりあえず目的は果たせました。

    まぁ困る人もいなさそうですが、今日もこんなところです。
    ではまたノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】ほんまにネタがないので、軽~くポケガの話と次のRPGの話を...軽すぎるorz 

    こんにちは!1日ブログ遅れました!坂内っす。

    久しぶりにGooglePlayで「美少女 育成」で検索してみました。
    結果としては、ポケガ1が1位!!ポケガ2が11位!!
    まだ素敵な位置に陣取ってます。

    嬉しいことこの上ないですね!!

    ただし1日のインストール数が、3か月くらい前までは100-200あったのに、最近では30-70くらいに・・・・
    バージョンアップとかしていないでしょうがないですよね・・・
    あ、でもポケガ1とかデータ移行とかつけるアップデートしたのにな・・・ゲーム内容変わってないのがだめですかねorz

    ポケガ2といえば、そろそろ中国版ができそう。
    はよリリースしたいところですね。
    リリースした際には結果をここで書いていきますね!
    単価は安いけど、DL数は多いって聞きますし、ちょっと期待!

    そして現在制作中のRPG。
    まだまだ終わらない。
    ちなみに音楽はフリー素材じゃなく、全部作ってもらってるところです。
    楽しみですね!

    以前Twitterでアートワークをちらっとちら見せしましたが、
    https://twitter.com/Zabosama/status/935328387760918530

    現代風ハクスラって感じですね。

    もうちょっと画面とか出せるようになったら出していきますね!

    それでは、ネタがないので今日はこの辺で あでゅ~ノシ

    Category: その他日記

    tb 0 : cm 0   

    【ハルシオンブログ】今度はImageを作った時にRaycastTargetをデフォルトでオフにしてみたかったよ。 

    こんにちは。
    大坂です。

    年末が近づいてちょくちょく片づけを始めました…。
    適当にものを突っ込んでるところが多くてやばいです…orz

    今日のネタです。
    前に書いたTextのデフォルトフォントを変えたい話とほとんど一緒ですが…。

    アプリを作っていてImageのRaycastTargetがついていて使うことがほとんどなくて、
    構成によっては手でオフにすることの方が多いので立ったらデフォルトオフでよくね?と思った次第です…。

    コードはこんなですね。
    using UnityEngine;
    using UnityEngine.UI;
    using UnityEditor;

    public class ImageSample : MonoBehaviour {
    [UnityEditor.MenuItem("GameObject/UI/Image Raycast Off")]
    public static void CreateCustomizedText() {
    GameObject newObject = new GameObject("Image", typeof(Image));
    newObject.transform.localPosition = Vector3.zero;
    newObject.transform.localScale = Vector3.one;

    var image = newObject.GetComponent<Image>();
    // RayCastTargetをオフ
    image.raycastTarget = false;

    if(Selection.activeGameObject) {
    var parent = Selection.activeGameObject;
    newObject.transform.SetParent(parent.transform, false);
    newObject.tag = parent.tag;
    newObject.layer = parent.layer;
    newObject.isStatic = parent.isStatic;
    }
    }
    }

    メニューに追加するようにして、作ったImageのRaycastTargetをオフにしているだけです。
    右クリックのUIの中にちゃんと追加されて、これで作ったImageのRaycastTargetはオフになってますね。


    使えなさそうなネタですが今日もこれで終わりですよ。
    ではまたノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】2Dでゲーム作ってるんだけど、エフェクトとか考えるのめんd(ry いいアセットあったよ? 

    こんにちはー

    忘年会シーズン真っ盛り。
    今週は3個も入ってます。坂内です。

    2Dでのゲーム制作が多いんですが、なんかエフェクトとか作るの大変というか、作り方が分からない。
    シェーダーとか全然わからんし、どうしよー?って時にこんなアセット見つけたんですよ!

    【2DxFX】


    SpriteやuGUIのImageに色々なエフェクトがつけれる。

    使い方は簡単です。

    使いたい効果のcsをImageやSpriteに貼り付けるだけ!!


    こんな感じで簡単に反映させることができます。

    コード(Tween系)とかでそれぞれの効果の値を変動させれば、動いてる感じになります。

    例)2dxFX_AdditiveのFadingを操作
    using UnityEngine;
    using DG.Tweening;

    public class Test : MonoBehaviour {

    public GameObject chara;

    public float Alpha{
    set{
    chara.GetComponent<_2dxFX_Additive>()._Alpha = value;
    ;
    }
    get{
    return chara.GetComponent<_2dxFX_Additive>()._Alpha;
    }
    }

    public void OnClick() {
    DOTween.To(() => Alpha, (x) => Alpha = x, 0, 2);
    }
    }

    ボタンを押したら、2秒間で2dxFX_AdditiveのFadingを1から0にする。


    他にもいろいろなエフェクトがあります。


    アウトラインつけたりとか。



    ノイズいれたり。


    こんなのとか。



    色々なエフェクトが簡単につけれるのがいいですね!

    ちょっとこれ面白いので使っていこうと思います!!

    ってことで、今日は面白いアセット見つけたよって話でした!

    あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】複数シーンを作っているときに再生したら編集しているシーン以外から始めたいときとか。 

    こんにちは。
    大坂です。

    忘年会シーズンですね!
    飲みすぎないように気をつけましょうね!(大体飲みすぎますが。

    さて、今週の小ネタ。

    タイトルの通りですが、複数シーンを扱うようなアプリを使用しているときにUnityEditorで
    再生したら必ずタイトル画面から再生が始まってほしいときなんかのお話。

    EditorスクリプトでやってみたのでAssets-Editorにこんなのを追加。
    using UnityEngine;
    using UnityEditor;
    using UnityEditor.SceneManagement;

    [InitializeOnLoad]
    public class StartSceneSample {

    static StartSceneSample() {
    // イベントの登録
    EditorApplication.playmodeStateChanged += OnPlayingStateChanged;
    }

    public static void OnPlayingStateChanged() {
    // プレイ中
    if(EditorApplication.isPlaying) {
    EditorSceneManager.LoadScene("Title");
    }
    }
    }

    開始したときにセーブするやつと大体一緒ですね。
    同じコード内に書いてあげればいいと思います。

    適当ですが今のところちゃんと動いているので大丈夫かと思います。
    停止したらちゃんと編集したシーンにも戻りますし。

    短いですけど、今日もこれだけですよ。

    あ、Unityアフィリエイトに登録してみたのでのっけてみますよ
    興味があるアセットがあったらここから買ってくれればいいんじゃないですかね?


    ではまたノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】アニメーションの途中に処理を追加する方法とか。もう今年おわっちゃうよね。。。 

    12月になってしまいました。
    残り1か月もしないで今年が終わってしまいます。
    どうしましょう!坂内っす。

    本日はUnityの話題。

    アニメーション中にプログラムを呼びたい!
    そんな時はどうするか。

    例えば、こんなアニメーションがあったとします。



    これだと寂しいので、エフェクトが出るようにしましょう。

    いくつか方法があると思いますが、その中の2つの方法をご紹介。
    (まだまだいい方法はあると思いますが)

    ①攻撃のアニメーションを呼んだタイミングからコルーチン等で時間指定する。
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;

    public class AnimationTest : MonoBehaviour {

    public Animator anime;
    public ParticleSystem particle;

    public void OnClick() {
    StartCoroutine(Attack());
    }

    IEnumerator Attack() {
    anime.SetTrigger("Attack");
    yield return new WaitForSeconds(0.2f);
    particle.Play();
    }
    }

    yield return new WaitForSeconds()を使ってエフェクトをPlayするって方法です。
    ボタンを押して、0.2秒後にパーティクルをPlayします。
    コルーチンじゃなくても、Invokeでも可。



    こんな感じになります。

    ②アニメーションにアニメーションイベントを追加する方法。
    アニメーションのオブジェクトにこんなスクリプトを追加。
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;

    public class CharaTest : MonoBehaviour {

    public ParticleSystem particle;

    public void PlayEffect() {
    particle.Play();
    }
    }


    アニメーションの処理を行いたいところを右クリックし、「Add Animation Event」を選択。
    上記PlayEffectメソッドを選択します。




    これで、①と同じ動きができますよ。

    この方法だと、アニメーションのどこで処理を行うかを簡単に設定できるメリットはあります。
    ※ただし、呼ばれ先のメソッドがどこから呼ばれているかというのが分からなくなるデメリットもあるので、その際には呼ばれ先メソッドのコメントに「〇〇アニメーションEventから呼ばれる」的なことを書いておくといいかもしれません。

    という感じで、アニメーションに処理を付ける方法でしたー!

    ではあでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0