えむにわリソース

ITのスキマ的なあれこれを書きます。

技術書典3でGrimoire.js本出します

10月22日(日)に秋葉原UDXで開催される技術書典3にて

『Grimoire,js解読記』を頒布します。

スペースは『え22』 Outlaw Tech です。

techbookfest.org

表紙はコレです。

f:id:m2wasabi:20171020101718j:plain:h320

神絵師も予算もないのでKonozama

内容は

  • Grimoire.jsの紹介
  • Grimoire.jsプロジェクトのソース読みからのTypeScriptビルド環境の追いかけ
  • Grimoirel.js開発者 Kyasbal氏 のGrimoire.jsレンダラー入門

です。

頒布価格は

  • 紙媒体+電書 500えん
  • 電書のみ 100えん

の予定です。

技術書典の決済システムは、電子版のみ対応予定。

紙媒体は、決済システムの在庫水際の立ち回りがよくわからないので現金のみでお願いします。

決済システム提供のお知らせ | 技術書典ブログ

開催詳細情報は公式サイトをチェックです!

techbookfest.org

入場に関しては整理券を配布するようです。

スマホで確認できるサイトがあるので活用しよう。

blog.techbookfest.org

あと上に登るとボーナスステージラウンジがあるみたいです。

blog.techbookfest.org

全く至れり尽くせりですね。

※次回は神絵師予算確保したい


2017/11/03追記

しめやかに通販やっています。

Boothさん m2wasabi - BOOTH(同人誌通販・ダウンロード)

Comic-ZiNさん(早く専売マーク取ってくれないかな…) COMIC ZIN 通信販売/商品詳細 Grimoire.js解読記

Google Cloud Speech APIを使ったHoloLensアプリ(Unity2017対応など)

先週のできごと

先日、Google Cloud Speech APIを使ったアプリを制作し、リクルートATL様に寄稿させていただきました。

f:id:m2wasabi:20170718072611j:image
HoloLensで言霊を撃ってみよう | ATL SHOWCASE

それにまつわる内容で、 Tokyo HoloLens ミートアップ vol.4でLTの機会を頂きました。

www.slideshare.net

HoloLensでの音声認識は手垢の付いたネタにも関わらず良い反響を頂きました。ありがとうございます。

Unity・アセットをアップデート

アプリ自体の紹介は上記リンクにお任せするとして、 寄稿・紹介後に、Unity2017への対応・Google Cloud Speech RecognitionのV3.0へのアップグレードを行ったので、 それについて書きます。

アプリのソースコードは公開しています。

github.com

Unity2017への更新

元々Unity5.6.1 で作成したアプリですが、寄稿が終わったのでUnity 2017.1.0f3 に更新しました。 本アプリ自体、特に難しいことはしてませんので、各アセットのバージョンアップ対応が主になります。

HoloToolkit for Unity

Unity2017対応は、アーカイブはまだですがmasterブランチでは行われています。 /Assets/HoloToolkit/ディレクトリをプロジェクトから削除し、 ダウンロードしたコードから /Assets/HoloToolkit/ をコピーすることで無事動作しました。 プロジェクト内のprefabやオブジェクトは適宜置き換えましょう。

github.com

Google Cloud Speech Recognition

Google Cloud Speech Recognition

Unity2017リリースの少し前に バージョン3.0に更新されました。

1. ThreadManager.csの更新

バージョン2.3まではUWPアプリケーションでも問題なく動作していたのですが、 3.0はUWPでビルドしようとするとエラーで蹴られます。(Unity Editorでは動く) f:id:m2wasabi:20170718085727j:plain

そこで、以下のファイルを書き換えます。 \Assets\FrostweepGames\GCSpeechRecognition\Scripts\Core\Managers\ThreadManager.cs

gist.github.com

2. 名前空間の変更

また、名前空間やクラス構成がごっそりと変わっているので、対応します。

using FrostweepGames.SpeechRecognition.Utilites;
using FrostweepGames.SpeechRecognition.Google.Cloud;

using FrostweepGames.Plugins.GoogleCloud.SpeechRecognition;
3. メソッドの置き換え

使い方もがらっと変わっているので、これも更新します。

3.1. クラスの変更
private ILowLevelSpeechRecognition _speechRecognition;

private GCSpeechRecognition _speechRecognition;
3.2. 初期化処理

初期化処理も大きく変更が必要です。

_speechRecognition = SpeechRecognitionModule.Instance;
_speechRecognition.SpeechRecognizedSuccessEvent += SpeechRecognizedSuccessEventHandler;
_speechRecognition.SpeechRecognizedFailedEvent += SpeechRecognizedFailedEventHandler;

_speechRecognition = GCSpeechRecognition.Instance;
_speechRecognition.SetLanguage(Enumerators.LanguageCode.JA);
_speechRecognition.RecognitionSuccessEvent += SpeechRecognizedSuccessEventHandler;
_speechRecognition.RecognitionFailedEvent += SpeechRecognizedFailedEventHandler;
3.3. イベントハンドラ

イベントハンドラも引数が増えたので対応します。

失敗時

private void SpeechRecognizedFailedEventHandler(string obj)

private void SpeechRecognizedFailedEventHandler(string obj, long l)

成功時

private void SpeechRecognizedSuccessEventHandler(RecognitionResponse obj)

private void SpeechRecognizedSuccessEventHandler(RecognitionResponse obj, long l)
3.4. Start/Stop

録音開始メソッドは、音声の個人認識をするオプションがつきました。

開始

_speechRecognition.StartRecord();

bool VoiceDetection = false;
_speechRecognition.StartRecord(VoiceDetection);

終了

_speechRecognition.StopRuntimeRecord();

_speechRecognition.StopRecord();
変更のサンプル

https://github.com/m2wasabi/SpeechGoUnity/commit/6d1824a659f05baa8d7e136f65419b9fc096f7d5

以上の変更で無事動くようになります。

おわりに

今回、Unity2017への更新で、C#6対応などビルド環境が一変したので心配しましたが、 思ったより不具合もなく移行できました。

アップデート対応は手間だけどやっておいて損はありません。

AndroidStudio3.0 Canary2 でKotlinをbuildしようとするとこける問題

f:id:m2wasabi:20170601195852j:plainAndroidStudio3.0からKotlinが正式サポートされました。 6月1日現在プレビュー版で以下からダウンロード可能です。 https://developer.android.com/studio/preview/index.html?hl=ja

AndroidStudio2.x空の変更点は、 プロジェクト開始時にJavaから変換を介せずに最初からKotlinでプロジェクトを開始できます。 f:id:m2wasabi:20170601194129j:plain

何も考えずにビルドすると、

Unable to find method ‘com.android.build.gradle.internal.variant.BaseVariantData.getOutputs()Ljava/util/List;’

のようなエラーが出てしまいます。 f:id:m2wasabi:20170601194453j:plain

Kotlinのバージョンが合ってないので、

build.gradleの内容を以下のように書き換えます。

ext.kotlin_version = '1.1.2-3'
ext.kotlin_version = '1.1.2-4'

そんなわけでLet’s enjoy Kotlin!

参考

stackoverflow.com

Android Studioの更新でSDK Managerが起動しなくなったら

Android StudioXamarinUnity で共通のAndroid SDKを使っている場合、 SDK ManagerAVD Managerを単体で起動するケースがよくあります。

自分の場合、Android Studioのバージョンを更新したときに、同時にAndroid SDKのバージョンも更新して、AVD Managerが起動しなくなってしまいました。

尚、ggってよくお勧めされる、JavaのPathとバージョンが合ってないのでfind_java.batに固定値ぶち込むみたいな腑抜けた対応は近年は不要です。

自分の場合

結論として、SDK toolsが壊れていた(or バージョンが遅れていた?)ので、コマンドラインツールをダウンロードし、Android SDKtoolsフォルダを置き換えてやることで動作しました。

https://developer.android.com/studio/index.html?hl=ja

f:id:m2wasabi:20170429015117j:plain

f:id:m2wasabi:20170429015806j:plain

一般的対処How to

  1. JDKのバージョンを最新に更新する(ちょっと古いと動かないというのはよくある)
  2. コマンドで java -versionを実行し、インストールしたjavaと同じか確認する
  3. SDK toolsAndroid SDK以下のtoolsディレクトリに展開する

RPGツクールMVの Milkcocoaプラグインを更新しました

RPGツクールMVのプラグイン更新しました。

フラグ関係のみ、データ保存の永続化に対応しました。

github.com

使い方は、GitHub参照のこと。 https://github.com/m2wasabi/milkcocoa-rpgmv-plugin#43-永続スイッチ変数の操作new

デバッグ足りなそうなので不具合あったら教えてください。

Xamarin入門者の集い #2でLT発表しました

4月17日に行われた『初心者歓迎XamarinのLT会!Xamarin入門者の集い #2』で、 初心者LT枠として発表してきました。

jxug.connpass.com

タイトルは 『Xamarin.Formsのための基礎体力づくり(圧縮版)』です。 丁寧に説明していると到底5分で収まりきらない内容ですが、 読み物としてお楽しみください。

懇親会の時に聞かれた内容

Q. 勉強の期間はどのぐらいか
A. 勉強のみしていた期間は約1か月。あとは作りながら覚えた。まだ完璧ではない。
Q. プロジェクトを受注する前から勉強したのか、受注してから勉強したのか
A. C#基礎は受注前から勉強していた。でも具体的な使い方を学んだのは受注が決まってから
Q. Xamarinの案件なんて見つからない
A. ふわっとしたモバイルアプリの案件をXamarinでやるんだよ。自分色に染めろ!

これで、仕事や趣味でXamarin(.Forms)を使ってアプリを出す人が増えれば幸いです。