読者です 読者をやめる 読者になる 読者になる

Mini Center CLR 勉強会 - HoloLensやりました

Center CLRでHoloLensの勉強会が出来ればと思い、ボスへメッセージ。

f:id:matsujirushix:20170225213737p:plain

プレゼン形式ではなくワイワイガヤガヤとなることを期待して、「Mini Center CLR」という名称で開催しました。

www.meetup.com

直前&大して告知しなかったにもかかわらず10名が参加しました。

事前にアンケート調査したところ、 f:id:matsujirushix:20170225214713p:plain

むむむ。ただ集まるだけでは会話が盛り上がらない不安が沸々と湧いてきた、、、

そこで、細かな説明はバッサリと無しにして、開発するために必要なスキルとか、だいたいどんな作業になるかを知ることができるように、資料を用意しました。

Mini Center CLR 勉強会HoloLens

f:id:matsujirushix:20170225215548j:plain

最初にスライド説明して、デモンストレーション、その後、ライブコーディングという流れでやりました。ライブコーディングは、Unityに必要な設定をした後、Robot Kyleを貼り付けて表示する(だけ)でした。

結局、(場の雰囲気をうまく作れず)ワイワイガヤガヤとはなりませんでした。ちょっと凹んでいます。

めげずにまたやりたい。

堀江織物のプライベート見学会しました

経緯

東京出張したときに、いつも夕食に付き合ってもらっている堀江さんf:id:matsujirushix:20170219110922j:plain

本社の工場が2015年9月に移転したのですが、「そういえば新工場に一度も行っていないですね(汗」ということで、2月18日に見に行くことに。

せっかくなので、お友達とかも誘って見学できないかと打診したところ、

f:id:matsujirushix:20170219111619p:plain

おぉ!スバラシイ回答が!

そういうわけで、プライベート見学会しました。

f:id:matsujirushix:20170219112313p:plain

(先方に迷惑かけるとアレなので、今回はFB友達に限定して告知しました。)

見学会

案内してくれたのは、弟さんの堀江航司さん。 f:id:matsujirushix:20170219110228j:plain

堀江織物は「旗・幕など布への印刷」している会社で、印刷物は、のぼりや横断幕といった屋外広告やテーブルクロスやチェアカバーといった店内装飾物などで使われています。また、クッションカバーや抱き枕カバーなども。

堀江織物の業務内容 布への印刷加工全般。紅白幕、のぼりポールやスタンドなどの取り付け器具の販売

印刷方法は4種類あって、生地や用途によって使い分けています。

  • シルクスクリーン印刷
  • 昇華転写印刷(オンデマンド印刷)
  • ダイレクト印刷(オンデマンド印刷)
  • 大判インクジェット印刷(オンデマンド印刷)

シルクスクリーン印刷は本社、オンデマンド印刷はオンデマンド事業部工場(クルマで5分程度移動したところ)なので、シルクスクリーン→(移動)→オンデマンド、という順に見学しました。

見学内容をどこまで記載していいのか不安なので写真だけです。 もう少し知りたい人はこちらをご参照ください。

シルクスクリーン印刷

f:id:matsujirushix:20170219110238j:plain f:id:matsujirushix:20170219110248j:plain

オンデマンド印刷

f:id:matsujirushix:20170219110318j:plain f:id:matsujirushix:20170219115243j:plain

最後に

  • 現在、次の見学会予定はありません。(反響あれば企画するとかしてもらうとか)
  • ただ見て周るだけでなく、少し体験させてもらえたり、プロの技を見せつけられてスゲーっていう感じのができたら良いなと思いました。
  • 個人でも印刷してもらうことができます。オリジナル作品作っている方は必見。

日本語環境で流暢に英語を喋る

SpeechSynthesizerクラスで「Thank you for the mail.」を喋らせてみると、 片言の発音になってしまいます。 「Thank you for the mail.」

MainPage.xaml

<MediaElement x:Name="Media"/>
<Button Content="Speech!" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Click="Button_Click"/>

MainPage.xaml.cs

private async void Button_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
{
    SpeechSynthesisStream stream;
    using (var ss = new SpeechSynthesizer())
    {
        stream = await ss.SynthesizeTextToStreamAsync("Thank you for the mail.");
    }
    Media.SetSource(stream, stream.ContentType);
    Media.Play();
}

話し手を英語にすると良いみたいですが、日本語Windows10にはデフォルトでインストールされていない模様。

foreach (var voice in SpeechSynthesizer.AllVoices)
{
    Debug.WriteLine($"{voice.Description},{voice.Gender},{voice.Language}");
}
Microsoft Ayumi Mobile - Japanese (Japan),Female,ja-JP
Microsoft Haruka Mobile - Japanese (Japan),Female,ja-JP
Microsoft Ichiro Mobile - Japanese (Japan),Male,ja-JP

ココに追加方法が書いてありました。

stackoverflow.com

すべての設定 > 時刻と言語 にある、地域と言語 を選んだ画面で、English(United States)を追加します。

f:id:matsujirushix:20170210235822p:plain

f:id:matsujirushix:20170210235848p:plain

さらに、オプションで言語パックと音声認識をダウンロードします。

f:id:matsujirushix:20170210235953p:plain

f:id:matsujirushix:20170211000001p:plain

すると、英語の話し手が追加されます。

Microsoft Ayumi Mobile - Japanese (Japan)
Microsoft Haruka Mobile - Japanese (Japan)
Microsoft Ichiro Mobile - Japanese (Japan)
Microsoft David Mobile - English (United States)
Microsoft Zira Mobile - English (United States)
Microsoft Mark Mobile - English (United States)

コードに、話し手の指定を追記します。

SpeechSynthesisStream stream;
using (var ss = new SpeechSynthesizer())
{
    ss.Voice = (SpeechSynthesizer.AllVoices.First(x => x.Gender == VoiceGender.Female && x.Language == "en-US"));
    stream = await ss.SynthesizeTextToStreamAsync("Thank you for the mail.");
}
Media.SetSource(stream, stream.ContentType);
Media.Play();

「Thank you for the mail.」

コード

github.com

環境

chibi:bitワークショップやりました

東京のメイカーから夕食のお誘いがあったので行ってきました。

食事だけではアレなので、クローズドでワークショップでもしましょうという話になり、初めてchibi:bitのワークショップをやってきました。参加者は3名。

場所はレインボー倉庫 下北沢

1Fにカフェ、1Fと2Fには細かく区切られたレンタルスペース、3Fと4Fはイベント/ワークスペースのようです。

4Fは、ものづくり作業ができるように壁や机に工具/工作機械が並んでいました。見た感じ、木工メイン。

f:id:matsujirushix:20170206222528j:plain

chibi:bitワークショップ

最初に、chibi:bitの開発環境はいろいろあるよ的な説明。 次に、chibi:bit IDEのブロックプログラミングで”LEDにテキスト表示”を作って、chibi:bitへ書き込み。 その後は、後ろから見ているので好きにやってちょうだいという放置プレーでした。

Aさん

プログラミング未経験のAさん。 LED表示とウェイトを大量に並べて、ドット絵でアニメーションを黙々と作っていた。とにかく黙々と。楽しいのかこっちが不安になった。(後から聞いたら楽しかったようです。)

Bさん

Processing経験者のBさん。 変数の使い方とか、並列実行(というかイベント駆動)あたりが気になっていた模様。ブロックは早々にやめて、JavaScriptで書いていた。

chibi:bitはブロック<->JavaScriptが相互変換できます

Cさん

.NET開発とかmbedを少し触ったことがあるCさん。 chibi:bitに実装されているセンサーをアレコレと試していた。温度とか照度とか。

おまけ

f:id:matsujirushix:20170206222959j:plain

時間があったので、Arduino+TextileSensorKit触ったり、HoloLens触ったりした。

Building holographic apps with Unity抜粋

Holographic development documentationのBuilding holographic apps with Unityの、気になる部分をメモ。

Unity development overview

Sceneの設定

  • Main CameraのPositionを(0,0,0)にする。
  • Main CameraのClear FlagsをSolid Colorにする。
  • Main CameraのBackgroundを#00000000にする。
  • Main CameraのClipping Planes - Nearを0.85にする。

プロジェクトの設定

  • 使うAPIによって、Player SettingsのPublishing SettingsにあるCapabilitiesをチェックする。
  • Build SettingsのPlatformをWindows Storeにする。
  • Build SettingsのSDKをUniversal 10にする。
  • Build SettingsのUWP Build TypeをD3Dにする。
  • Project SettingsのQualityの、Windows StoreのDefaultをFastestにする。
  • Holographic viewで表示させる場合は、Player SettingsのOther SettingsにあるVirtual Reality Supportedをチェックする。

Recommended settings for Unity

スプラッシュ画面

  • Unity Proライセンスが無い場合は、常にUnityスプラッシュ画面が表示される。変更できない。

ラッキングロス

Performance recommendations for Unity

後日、書く

Exporting and building a Unity Visual Studio solution

  • UWP Build Typeは、D3Dが推奨。システムキーボードを使う場合はXAML
  • Unity C# Projectsをチェックすると、Visual Studioのリモートデバッガが使えて、さらにスクリプトが編集できる。Unityとはファイルが分離されているので、Unityを編集したときは、再エクスポートが必要。
  • Configurationは、Debug,Master,Releaseの3種類。最適化とプロファイラに違いがある。

Best practices working with Unity and Visual Studio

まとめ

設定しておくと良さそうな項目は次のとおり。

  • Build Settings.Platform = Windows Store
  • Build Settings.SDK = Universal 10
  • Build Settings.UWP Build Type = D3D
  • Project Settings.Quality.Windows Store.Default = Fastest
  • (Holographic view) Player Settings.Other Settings.Virtual Reality Supported = checked
  • Main Camera.Position = (0,0,0)
  • Main Camera.Clear Flags = Solid Color
  • Main Camera.Background = #00000000
  • Main Camera.Clipping Planes - Near = 0.85

HoloLens開発はじめました

HoloLensのアプリケーション開発のために、Unityはじめます。

公式のDevelopment overviewによると、

2D apps can use any tools for building Universal Windows Apps suited for environments like Windows Phone, PC and tablets. These apps are experienced as 2D projections and can work across multiple device types.

Holographic apps need tools designed to take advantage of the Windows Holographic APIs. In particular, if building an app we recommend using Unity. Developers interested in building their own engine can use DirectX and other Windows APIs.

Holographic appsは、UnityもしくはDirectX

くうさんによるとこれでも出来るらしい。

github.com

DirectXはちょっと辛そうなので、Unityで。

ざざっとネットを漁った感じだと、大きく2つのことをマスターしないといけないようです。

  • Unityのこと
  • Holographic appsのこと

それぞれについて、参考書を頼りにやっていきたいと思います。

Unity5の教科書

http://amzn.asia/3P6jwtKamzn.asia

他のUnity5本と比べて、仕組みを理解してもらうことを主眼に、丁寧に構成されていると感じました。C#プログラミングの説明が少ないのも好印象。

Develop Microsoft HoloLens Apps Now

www.apress.com

現時点、本だとこれしか見当たらない。

chibi:bitの開発環境

chibi:bitの開発環境を一通り確認しましょう。

f:id:matsujirushix:20170203220846j:plain

chibi:bit開発環境

chibi:bitの公式な開発環境chibibit/ideです。 ここでは、ブロックとJavaScriptの2種類でプログラミングでき、画面上でchibi:bitをシミュレートして動作確認することができます。 また、ブロックとJavaScriptを相互変換(ブロック→JavaScriptJavaScript→ブロック)も可能です。 f:id:matsujirushix:20170203221255p:plain

micro:bit開発環境

chibi:bitは、BBC micro:bitの互換機なので、micro:bitの開発環境を使ってプログラミングしても問題ありません。 micro:bitの開発環境は、現在、5種類(+モバイルアプリ)もあります(!)

こちらのWebページから、使いたい開発環境の"Start with this editor"をクリックします。 簡単に扱えそうなものから順に見ていきましょう。

Touch Develop

タッチパネル操作しやすい開発環境です。 見た目はテキスト入力ですが、左下に並んだボタンをクリックしてプログラミングします。関数電卓のような操作感です。 f:id:matsujirushix:20170203223508p:plain

Block Editor

ブロックでプログラミングする開発環境です。 Touch Developに変換することができます。 f:id:matsujirushix:20170203224149p:plain

JavaScript

JavaScriptでプログラミングする開発環境です。 JavaScriptとはいえ、テキストエディタではなく、マウスでポチポチと操作します。 f:id:matsujirushix:20170203224804p:plain

Python

MicroPythonでプログラミングする開発環境です。テキスト入力です。 f:id:matsujirushix:20170203225326p:plain

Microsoft PXT

ブロックとJavaScriptの2種類でプログラミングする開発環境です。 chibi:bit開発環境と同じ。(というか、Microsoft PXTがchibi:bit公式に、という流れですね。) f:id:matsujirushix:20170203225746p:plain

一通り眺めてみると、

これがベストっていうのは無く、、、 好きなものを使いましょうw