05 «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.» 07

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

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

 

【ハルシオンブログ】MenuItemの追加とショートカット 

こんにちは。
大坂です。

最近天気がいい日が続いてる気がしますが、
梅雨はどこに行ったんでしょうかね?

さて今週の小ネタ。
Unityのメニューアイテムの追加とショートカットキーの指定についてですね。
今更感が満載ですね。まぁちょっとしたのが作りたかったのでついでです。

特に処理はさせてませんけど、こんな感じで書くとメニューに追加されてますね。
スクリプト自体は「Assets」-「Editor」に入れましょうね。
using UnityEngine;
using UnityEditor;

public static class MenuItemTest {

[MenuItem("MenuTest/Test")]
public static void Test() {

}
}




半角スペースを空けてショートカットを指定するとショートカットも設定できますね。
using UnityEngine;
using UnityEditor;

public static class MenuItemTest {

[MenuItem("MenuTest/Test #t")]
public static void Test() {

}
}

#は「Shift」ですね。




と、書いてきましたが大体スクリプトファレンスに載ってますね…。
https://docs.unity3d.com/ja/540/ScriptReference/MenuItem.html

2017以降のスクリプトリファレンスだと英語と日本語混じっていたので、
全部日本語で書かれてた5.4のスクリプトリファレンスですけど。

では今週もこれにてノシ
スポンサーサイト

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】制作中だったハクスラの一時凍結と、Unity2018のProBuilderってすごいね!って簡単な紹介。 

今週は北海道いい以外ずっと熱いらしいっすね!
家から出ないようにします!坂内です!

現在作成中のハクスラは…いったん凍結することになりました!(野毛会できまった)

絶対だすからな!ずえーったい出すから!そのうち!

去年の4月頃から始めたプロジェクトですが、呪われすぎてます。
一度お払いにいかねば・・・

今はちょっとお金なさ過ぎ。
受託案件いただきまして。
今の仕様だと何が面白いのか分からない。

等々の理由により、また仕様作り直しから来年あたりやろうかと。
是非その際には、一緒にハクスラ作りたい方いましたら、声かけて頂ければと思います。


さて、Unity2018の目玉の1個にProBuilderというのがあります。
これ、簡単に3Dのオブジェクトが作れるってやつですね。

普段3Dは触らないのですが、どんなものかなーってちょっと触ってみました。

①Window>Package Managerを選択。



②InProgress を Allに変更し、ProBuilderを選択し、Install。



③Tools>ProBuilder>ProBuilderWindowを選択すると、Wizard的なウィンドウがでます。




④好きな形のオブジェクトを作るには、New Poly Shapesを選択し、画面に描画していきます。


はい、こんな感じで、簡単に坂ができました。

さて、玉を上の方において実行すると…



ほーら転がった!

え?もっとちゃんとした形作れって?

そういうの僕のセンスが許さないんで。
こんなことできるよってただの紹介なんで。

ってことで、簡単なProBuilderの紹介でした!

あでゅ~ノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】UnityでGradleとProGuardを使ったビルドをしないといけなかった。 

こんにちは。
大坂です。

さて、今日もあんまりネタがないのですが。
タイトルの通りUnityでGradleとProguardを使用してビルドした話。

設定はこの辺をいじればGradleとProguardを使用したビルドになりますね。
使用しているのは「Unity2017.3.0f3」です。




設定すると自動でファイルが作られます。


この方法でビルドしたことがなかったので、色々エラーが出てビルド通すのも大変でしたが、
この辺使い慣れてる人は楽なんですかね?

メモがてらにエラーの対処方法
「Warning:」で止まる場合。
こんなやつね。

Warning: okio.DeflaterSink: can't find referenced class org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
Warning: okio.Okio: can't find referenced class org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement


調べると警告だからProguardのファイルに「-dontwarn」で指定して無視しろっていうのがよく出てきます。
本当に無視だけでいいのかは謎なところもありますが、こんな感じで指定すると「Warning」も消えてきます。

-dontwarn okio.**


あとは既存プロジェクトでこの方法にしたので色々ライブラリが入っていて、Duplicate系のエラーも出ましたが、
この辺はエラーを見て被ってるのを削除すれば対応できました。

で、何とかビルドだけ通すと今度はAdmobがでねぇぇぇぇ!とかって嵌ります(ぇ
調べると難読化しないようにしようねってちゃんと書いてありました。
https://developers.google.com/mobile-ads-sdk/kb/?hl=ja#proguard

Unityでやってると?こんな実機のログにこんなエラーも出るので

AndroidJavaException: java.lang.ClassNotFoundException: com.google.unity.ads.UnityAdListener


追加でこの指定もしました。

-keep class com.google.unity.** {
public *;
}


あとはアドフリくんの動画なんかも使ってましたが、マニュアルを見るとそれぞれの会社の設定のところとかで、
Proguardの設定について書かれているので、設定を追加したら無事動画が再生されました。

やったことない方法でビルドするといろいろ嵌るよね!っていう話とメモでした
ではまたノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】CanvasScalerをいじったら、Androidのタブレットで妹ちゃんが見えなくなった!?なんでやねん! 

こんにちは!坂内です!

大阪で大きな地震があった模様です。
震度6弱の大地震。死傷者もいるらしく、復旧も大変そうです。
知り合い関連はみんな無事ぽいかな?
あとアプリ開発界隈も無事ぽいかな?

さて、本日のネタは、「Canvas ScalerにあるScreenMatchModeを変更したら、Androidの一部の端末(タブレット系)で異変が起きた」です。

事の発端は、今回のバージョンアップでのお話。

今回のバージョンアップ前は、Canvas Scalerの設定は以下のようになっています。


ちょうどこの度私がGalaxyS9+を買い、縦長のスマホが出てきたっていうことで、今回のアプデでは以下のように設定しました。


これが問題の発端。

なんと!タブレットで起動するとこうなってしまうんです!!



ぎゃぁー 横100%でやったから上下が切れてしますんですよね・・・・じゃない!!
妹がいなくなったじゃぁあーりませんか!
これ、消えてしまう原因はちゃんとは把握していませんが・・・

ということで、CanvasScalerの設定を以下にしました。



たぶんこれがベストなんでしょうね。

【公式Canvas Scalerのドキュメント】
https://docs.unity3d.com/jp/530/Manual/script-CanvasScaler.html



ぶっちゃけ、ドキュメントみても全然意味わかりません。

Expandにした結果を簡単に説明すると、「縦横比はそのままで、縦か横のどちらかが画面サイズいっぱい」までスケールって感じですかね。
タブレットだと縦を基準に、縦長端末だと横を基準にスケールしてくれます。

いやー 上下が切れるのはわかるんですが、なんでキャラが見えなく・・・・こればかりは謎ですね・・・

んで、Scale With Screen SizeをExpandにしたら、タブレットではこんな感じになりました。



ということで、今後はExpandでいきますよ!


本日は以上!あでゅ~ノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】UnityEditorで作ったC#のコードでコード補完がされない時。 

こんにちは。
大坂です。

Unityで新しくC#Scriptを作成してそのまま開いたときに
ソシューションの再読み込みのポップアップが出なかったり間違って消してしまったりでコードが補完されないことがある。



こんな感じGameObjectの補完が出てきません。


ソリューションエクスプローラーを見てみると、確かに作ったスクリプトがいませんね。


VS再起動とかしてソリューションを読み込みなおせばいいのですがわざわざ再起動するのも面倒なので他の方法。

まずソリューションエクスプローラーのすべてのファイルを表示をクリック

ただのファイルの状態で出てきますね。

でこのファイルを右クリックして「プロジェクトに含める」を選択します。


作業はこれで終わりです。
ちゃんと補完されるようになりました。


ということで今週も適当なネタでした!
ではまたノシ

Category: Androidアプリ紹介

tb 0 : cm 0   

【ハルシオンブログ】タップしている間の処理(長押し中の処理)はこうやればできますよね。これで●●ッピーバードも作れちゃうね! 

コンニチハ バンナイデス。

Unityの難しくない技術はハルシオンブログへ。
「あぁこうやってやればいいのか、簡単じゃん」をモットーにやっております。

「へぇ・・こうやるとできるんだ。でもちょっと良く分からないや…」っていう技術的に難しい話題は、ここでは扱いません(俺が理解できないものは記事にしません)


ということで、本日は「タップしている間」のやり方をば。
これ多分以前も書いたと思うんですが、最近また使う機会があったので再度書いちゃいます。

とりあえず、こんな感じでハトを置いてみました。


ボタンを離すと下降し、ボタンを押している間上昇するようなものを作ってみます。

次にハトが動くためのコードをちゃちゃっと書きます。
【Blog.cs】
using UnityEngine;

public class Blog : MonoBehaviour {

public GameObject objHato;

enum HATO_STATE {
UP,
DOWN,
}
HATO_STATE state = HATO_STATE.DOWN;

/// <summary>
/// 押した時の処理
/// </summary>
public void OnTapDown() {
state = HATO_STATE.UP;
}

/// <summary>
/// 離した時の処理
/// </summary>
public void OnTapUp() {
state = HATO_STATE.DOWN;
}

private void FixedUpdate() {
if(state == HATO_STATE.UP) {
objHato.transform.Translate(0f,0.1f,0f);
} else {
objHato.transform.Translate(0f, -0.1f, 0f);
}
}
}


「押している間」というのは、「押してから離すまで」というわけで、OnTapDownが「押した時」、OnTapUpが「離した時」として処理しています。

あとはボタンが押された時と離された時に上記の処理を呼んであげればいいわけです。

では、押された時と離された時の設定をしてみましょう。

始めはボタンとしてオブジェクトを作ったので、こんな感じになっています。



しかし、ボタンコンポーネントには押された時、離された時という判断はできません。
なぜならば、「ボタン」というのは、「ポチっと”押す”+”離す”」の一連の処理のことを指します。
そのため、押す、離すのそれぞれの処理を捕まえようと思っている場合は、一度Buttonコンポーネントを外します。

代わりに、「Event Trigger」コンポーネントを付けます。



EventTriggerではドラッグを始めるや、押す、離すなどの処理を取ることができます。

今回はEventTriggerのPinterDownにOnTapDownを、PinterUpにOnTapUpを指定します。


これで完成!


こんな感じでタップ中の処理を作ることができます。

また、今回はボタンのようなものを準備しましたが、「画面のどこをタップしてもおk」という場合は、EventTriggerを使わない方法もあります。

【Blog.cs】
using UnityEngine;

public class Blog : MonoBehaviour {

public GameObject objHato;

enum HATO_STATE {
UP,
DOWN,
}
HATO_STATE state = HATO_STATE.DOWN;

/// <summary>
/// 押した時の処理
/// </summary>
public void OnTapDown() {
state = HATO_STATE.UP;
}

/// <summary>
/// 離した時の処理
/// </summary>
public void OnTapUp() {
state = HATO_STATE.DOWN;
}

private void Update() {
if(Input.GetMouseButtonDown(0)) {
OnTapDown();
} else if(Input.GetMouseButtonUp(0)) {
OnTapUp();
}
}

private void FixedUpdate() {
if(state == HATO_STATE.UP) {
objHato.transform.Translate(0f,0.1f,0f);
} else {
objHato.transform.Translate(0f, -0.1f, 0f);
}
}
}


Update処理にあるInput.GetMouseButtonDownとGetMouseButtonUpが、「画面をタップしたとき」「画面から指を離した時」の処理になります。


以上で本日の記事終わり!あでゅ~ノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】今週もiOSでちょこちょこと。 

こんにちは。
大坂です。

関東も梅雨入りしたみたいですね。
今日は起きたら雨やんでましたが。。

さて、今週もネタがないのでiOS対応ででちょこちょこ。
特に役には立たなそうですが。

最近Admobの「GoogleMobileAds.framwork」で「GLkit」と「MessageUI」を入れてなくてLinkerError出るのが数回。
毎回Xcodeで追加するのも面倒なので、Unityで「Assets」-「Plugin」-「iOS」に「GoogleMobileAds.framwork」を突っ込んで、
選択するとこんなのがあるのでチェックしてあげてビルドすると自動で追加されるよって話。

2018-06-07 1

もう一個、こんなエラーが出た時の対策。
2018-06-07 2

なんか「IPods-Unity-iPhone」のライブラリがないって言われてるね。
見てみるとそれっぽいのはあるんですけどね。

2018-06-07 3

でちょっと調べたらこいつ消したらいけるような感じだったので消してクリーンしてみて再ビルドしたら行けました。

はい!今週もこれだけです。
またノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】ハルシオン坂内の原体験?え?だらだら今までを書いてみたよ。 

こんにちは。坂内っす。

技術ネタが現在枯渇中なので、本日は読み物です。

ちょい前に原体験についての話が盛り上がってたので、ハルシオンの表の顔こと坂内の原体験をちゃちゃっと書いてみます。

と言っても、原体験なんてあるんだろうか?

時は幕末。

から時代は進み…

それでは、長いですが、お付き合いくださいませ。

●小学
1983年ファミコンが発売されました。
当時6歳だった僕は、ファミコンというものに憧れた。
一人っ子だったため、基本ほしいものは手に入ってた方だと思う。
しかし、記憶にあるのはファミコン本体はないのに、アイスクライマーとエキサイトバイクのカセットだけが手元にあったことだ。
この頃からゲームに耽っている人生が始まった。
当時の友人の家に行きファミコンばかりをしている毎日。
家に帰ってももちろんファミコン。

色々なゲームをやったね。
ロードランナー、アーバンチャンピオン、ゼビウス、バルーンファイト、めぼしいものは一通りやった。
当時となり駅のゲームソフトを売っているお店で、300円くらいでで1時間ゲームし放題というのがあった。
ゲームし放題というのは何かというと、お店にファミコンやら、PCエンジンやらの本体があり、やりたいソフトを手渡しされ、その場で遊べるというもの。
このシステムはこのお店しか見たことない素敵なものだった。

●中学
中学生になり、新しい友達が増えた。
その中で数名濃いのがいて、X68000を持っているやつ、、FM-Townsを持っているお金持ちのぼっちゃん、PC8001を持ってるおっさんくさいやつ。
こんなのが周りにいるもんで、パソコンというものに触れる機会が増えたころだ。
なんなんだ。

とある日、ちょうど家の近く(徒歩2分くらい)のやつがPC8801-MK2を貸してくれるということで、家から台車をもって借りに行ったものだ。
初めて家にパソコンがきた瞬間である。

一緒に借りてきた雑誌(だったかな?)に書いてあるプログラムを打ったのが初めてのプログラミング。

ランダムの色のドットを、画面上のランダムな位置にプロットしていくだけのものであった。

そう、きれいな星空ができるのだ。

この時の感動はいまだに忘れた。

でも、それが初めてのプログラミングだというのは未だに覚えている。

その後、MSX1、MSX2、MSX2(ディスクあり)、TurboRと買ったのはいい思い出。
もちろん高くてそんなに買うことができないが、使ってた中古のMSXを友達に売りつけるテクニックは今考えてもすごかった。

そしてこの頃MSXFANというMSXの雑誌がありまして、そこにある格闘ゲームのプログラムを解読しながらいじっていたのはいい思い出。

●高校
高校になったころには、MSXではなくPC98に移行していたかな。
また、よく遊ぶジャンルも格闘ゲームになっていた。

毎日のようにゲーセンに遊びに行ってたのもこの時期。
ちょうどスト2、KOFなどの全盛期。
格ゲー好きには一番ゲーセンに浸っていたい年代ですね。

そしてNEOGEOのROMを買うことになる。
ほら、うちがゲーセンだよとばかりに友達を呼んでは格ゲー大会の日々だった。

●大学
相変わらずゲームばかりをやっている人生。
この頃、「2D格闘ツクール95」というものがあった。
格闘ゲームを作るってツールだ。
この時、プレイステーションのKOFのキャラをPROアクションリプレイを使い1コマ1コマ吸出し、ドットを整形し、キャラを2D格ツクに移植してた。
めちゃくちゃこだわって作っていたため、この頃のブログでキャラを配信していたが、評価は上々だった。
まずは、動きを製品版と同じレベルまでもっていき、そこから新しい技とかを追加していたな。

その後「EverQuest」と出会ってしまう。
ここからネットゲー人生が始まるのある。

EverQuestではVeeshanというサーバで日本人を集めた、ギルド「IMPACT」を立ち上げ。100人くらいを集めブイブイ言わせてた。
大学>バイト>朝までEQ。
完全にこの頃ぶっ壊れてたね。
とりあえず全サーバーの日本人ギルドでもTOP3くらいには入ってたんじゃないかな。

●就職1
大学卒業後、とあるコネから会社に入るが、やばかった。
起きるの5時、帰宅2時とかの会社だったので、ゲームどころじゃなかった。
メーカーの機器、組み立てライン等だったので、プログラムとは一切関わらない仕事。
つまらないし、色々ある会社だったので、2年で辞めました。

●専門学校
仕事をしている時に、ネットワーク系の仕事もちょこっとやり、面白そうということで、ネットワークシステム科に入学。
学校では基本情報、CCNA、SJCP等の資格を取り、部活を設立。
プログラミングの部活を作り、経済産業省のプログラミングコンテストにも入賞。
CISCOのルーターシミュレータを7人くらいで開発。
(今見るとしょぼいけどね)
http://www.u22procon.com/archives/work/2004/group_03.html

専門学校では、首席で卒業。ってか専門に首席とかって言葉あるのか知らんけど。

●就職2
専門卒業後、メーカー系の孫会社に就職。
現場にでるも、2年後にリーダーの話が部長から来たんだけど、そのタイミングで新人研修の時の他の会社の人から声を掛けられていて、一緒に独立。
2年半くらいしかいなかったかな…

●独立1
一緒に独立した人は営業職の人。
始めはスキューバダイビングのSNSを作ろうと。
お店からのマージンを頂き、サイトで紹介し、予約もそこからできるサイトということで始まった企画。
スキューバのお店に話を持ち込むも、「スキューバは命を預かるものだから、そんなサイトで一元さんが来られても困る。」と言われ。
速攻断念。
うそーん。こっち会社辞めてまで君に付き合ったのに、もうあきらめるの?

その後の企画ではネイルのサイト「NailsWalker」を立ち上げ運用。
運用していると、とある会社からメールが1通…「Walker」って名前を勝手に使わないでください。
今後もそのまま運用する場合は訴えますと。
そうです。あの会社さんから注意が入りました。

その後サイトをまるっと変更し、「Dail」(デコとネイル)のサイトを立ち上げました。
登録した方達が、自分のネイルの写真をアップし、みんなからコメントをもらえるというサイト。
今うまくやれば、行けるんじゃないかな?
だれか一緒にやりません?

もちろん相方は営業。何もしない。
結局俺が一人でサイトを2回作るが、相方は何もしないで、お金ももらえない。
もうやってられんと、転職。
なんで営業の人って口だけなんすかね。
「〇〇件取れたよー いくらになるよー」っていうけども、1円も入ってこない。あーこわい。
第一取れた証拠も資料もなにもない。口だけでしょ?

●就職3
ここはシステム屋
色々やりましたが、やはり一番思い出に残るのが、「新人研修の講師」ですね。
ちょうどこのころの新人さんが、男2女6くらいの素敵な陣で、とても楽しく新人研修をさせて頂きました。( ´艸`)
この頃であった客先のゲームとお酒が好きなお客様。
飲みまくって仲良くなったのが今の相方。

今からちょうど6年前くらいですね。
「アプリ作ればお金入るらしいで」「俺達プログラムできるから作れんじゃない?」

この二言から始まったのが現ハルシオンシステム。
この話をし、土日でアプリ作ってみようぜ。

ゲームが好きな二人が実行できるわけがない。
家に帰ればゲーム。
土日は1日中ゲーム。

え?いつ作れるの?

「まず会社やめよう。自分達で会社作れば仕事時間にゲーム作れるじゃん」

●独立2 ㈱ハルシオンシステム
ゲームなんて作ったことはない。
作り方も知らない。
そんな二人がアプリを作る前に作った会社が株式会社ハルシオンシステム。
起業してから、色々な勉強な日々が続きました。
気が付いたら今日6月4日がハルシオンシステム6年目じゃないですか!
やだー!

そうですか。6年目ですか。

稼げてないけど、6年目入っちゃいましたね!!

まずは目指せ10年!!!

ってことで、原体験なのか、俺の人生なのか、よくわからない書きものになってしまいました。

文章書くの苦手ですいません。


最後まで読んでくださった方ありがとうございます。
ふらっふらした人生ですが、今も元気に生きています。
今後も頑張っていくので、おひねりを・・・・ポケガに課金お願いします!

ではあでゅ~ノシ

Category: その他日記

tb 0 : cm 0