Python:ImageMagick install

おばんです。圧倒的かずまなぶです。( `ー´)ノ

アニメーションするグラフを作るときに、jupyternotebook では


%nbagg
import matplotlib.pyplot as plt
import matplotlib.animation as animation

と、モジュールをインポートして

ani = animation.FuncAnimation(fig, plot, interval=100, frames=100)
ani.save("output.gif", writer="imagemagick")
plt.show()

というふうにアニメーションさせた後、保存します。

このとき、アニメーションを保存するためには、imagemagickが必要になりますので、
インストールのやり方をメモしておきます。

mageMagick のインストール

いろいろインストール方法を調べましたが最も簡単なのは、インストーラーを使うことです。http://www.imagemagick.org/script/download.php

ImageMagick-7.0.8-28-Q16-x64-dll.exe をダウンロードして、実行するだけです。

以上

HoloLense:折り紙の続き #5

https://docs.microsoft.com/ja-jp/windows/mixed-reality/academy

アカデミー

こんばんは Keita Nakamori です。

折り紙の続きをやっていきます。

今日はUnity2017.4.20f2でやってみます。

インストールからやっていきました。

はまりどころ1   PIN コードはどこだ!?

一通り折り紙を配置してVSに吐き出したあと リリース-x86-デバイスでホロレンズへ書き出そうとしたところPINを要求されました。

20分くらい探したところ セッティング>アップデート&セキュリティ>For developers ずーっと下にスクロールしてDevice discovery のPairボタンをおすと出てきました。これはつらいです・・・

はまりどころ2

cursorオブジェクトを配置しWorldCursor C#をaddし、開いたところ、まずMicrosoft NET 4.6.1をインストールしろと出ましたので、従いました。

これがまた結構時間がかかる、フリーズしたかと思いました。はっきりいってオニですな。

いや なにかがおかしい.ファイルを開くたびに VSをインストールしているような挙動を示しています。これがおかしくないというのなら、なんなんでしょ。

追記:

解決方法としては、とりあえずPCを再起動した後、再びC#のスクリプトを開こうとすると、同じようにNETなんちゃらのインストールを促されるのですが、ここで、「インストールしない!!」が正解でした。

はまりどころ3

なんかおかしいのでいったんPCを再起動しUnityを立ち上げたところ、さっきまで作っていたオブジェクトたちがいなくなってしまいました。

ここは最初につくったOrigamiシーンをダブルクリックすると復活しました。

はまりどころ4

リリース-x86-デバイスでホロレンズへ書き出そうとしたところ「配置ができてない」とかいう警告が出ました。メニューの中に「Origamiの配置」というのがあったので、これを最初にやってからリリース-x86-デバイスをやるとHoloLenseに書き出しができました。

はまりどころ5

今日は前回に引き続き

  1. RAYを飛ばしてオブジェクトに干渉させる
  2. ボールをタップすると重力で落ちる
  3. 音声認識で最初に戻る
  4. オブジェクトを好きな場所に移動させる。
  5. 金平糖みたいなオブジェクトが爆発する。

をやってみましたが、まともに動いたのは1,2だけ。いろいろありますなあ。

 

HoloLense:ホロレンズエミュレータの準備 #4

こんばんは、keita nakamoriです。

ホロレンズ本体を持っていない場合はエミュレータを使用することもできます。

101Eはエミュレータを使用した場合のおりがみチュートリアルなので、これで学習したいところですが、ハードルがまた幾重にもあります。

事前準備が必要なのでやっていきましょう。

BIOS 仮想化の有効化

エミュレータのインストールにちゃんと書いてはいるのですが、この通りできません。わたくしなりにアレンジしました。

起動時にF1を押しっぱなしにして、BIOSに入ります。(私はthinkpadなのでF1でしたが、お使いの機種によって違うので調べてください。)

BIOSの設定で仮想化を有効にするかどうかの設定があります。「Enable」にしましょう。2か所ありました。

Hyper-Vの有効化

ホロレンズのエミュレータを使用するにあたり、Hyper-Vを有効にしておく必要があります。

cmdを開くときに右クリックして管理者として実行したのち、
下記のコードをコピペします。

DISM /Online /Enable-Feature /All /FeatureName:Microsoft-Hyper-V

するとwindowsの再起動を促されるので、実行します。
すると、「windowsの機能の有効化または無効化」を開くとHyper-Vが有効になっていうことが確認できます。

VSのインストール

Visual Studio Community 2017をインストールします。
その時、大事なことは「UWPのインストール」にちゃんとチェックを入れることです。
はまりました。

ホロレンズエミュレータのインストール

ここまでやったら、やっとホロレンズエミュレータのインストールができます。

下記のリンクの指示に従ってインストールをしましょう。

 

以上、お疲れさまでした。

このように、まとめるとカンタンそうに見えますが、いちいちはまっているので、結局丸1日かかっています( ゚Д゚)

同じ思いをする人が出ないよう、お役に立てたら幸いです。

難しいことはワカリマセンw

Python:リスト内包表記をやってみる

こんにちは、今日はリスト内包表記をやっていきます。

タプルをリストに変換するコードという、簡単なケースを例としてやっていきましょう。

通常の書き方

リスト内包表記を使ったやり方

メリット:空リストが不要、アペンドも不要

さらにif文にも対応できる

#普通のやり方

#内包表記の場合

メリット:空リストが不要、アペンドも不要、if文のネストも不要

さらに i , j の2変数になり、for文がダブルになった場合

#通常の場合

#リスト内包表記の場合

メリット:たったの1行で書けてしまう。
ただし、2変数を超える場合は見難くなるので、通常のfor文を使ったほうが解りやすいかもしれない。

さいごに

どうでしょうか、リスト内包表記。かなりパワフルな表現方法ではないでしょうか。
よく見かける書き方なのでぜひマスターしておきたいです。

Python:ラムダ式の使い方

こんにちは、今日はラムダ式についてまとめました。

使わなくてもコードは書けますが、コードがシンプルになる場合があるので、
覚えておいて損はないです。
また、よく見かける書き方なので、
他人のコードを理解するためにも知っておいたほうがよいでしょう。

理解する手順として、
1.通常の関数を使ったやり方
2.関数部分をラムダ式に置き換えて動きを理解する
3.さらに簡単にする

です。やっていきましょう。

例題として、文字で構成されるリストを用意して、
頭文字を大文字に書き換える関数を作ってみましょう。

通常の関数を使ったやりかた

ラムダ式でコードをシンプルにする

さらにシンプルにする

ってことで、どんどん使っていきましょう。

HoloLense:おりがみ やってみました #3

こんにちは、keita nakamori です。

本日は、マイクロソフトアカデミーの101 「おりがみ」をやってみました。

初めに、よくわからなくてUnity5.6でやったのですが、VSからホロレンズにはき出すときにエラーになってうまくいかず焦りました。Unity2018でやれば簡単でした。

はまりどころ

VSのセッティングで、メニューバーの下にある設定で masterではなくて releaseにしなくてはならないことは失念していました。
その右隣りは、X86 と DeviceでOKです。

安定して送信するためにはUSBをつないで 「Device」を選択するといいのです。

チャレンジ

今回は初めに「リモート」でチャレンジしました・・・が、IPアドレスに何をいれればいいのかわからなかったので断念しました。

本日編み出した技

ホロレンズ本体右側の耳の上あたりにあるボタン2個を同時に押すと、動画撮影になりました。

HoloLense:オブジェクトを増やしてみる #2

Hello I am Keita Nakamori.

and then ,Let’s start making holorense project again!!

前回作ったオブジェクトに少し手を加えてみましょう。

工場のプラントっぽい感じにしてみました。

機器をつなぐコンベアとかパイプラインのイメージです。

Assetストアからstanderd assetsをインポートして、テクスチャーなりを張ってみました。

さあ、ビルドしましょう。

結果:画面が狭くて全体像がわからない・・・だめだこりゃ

ホロレンズにUnityの文字が浮かび上がってあと、画面が水色に・・・。

カメラの目の前に設置した青い円柱状のオブジェクトが、画面全体に移りこんでしまい壁のようになってしまいました。

高さを1.4mにしているのですが、この程度であれば、人間の有視界角は少なくとも120°以上あるわけですから、肉眼で見たときに、全体形状は見えるはずです。

しかし、ホロレンズではオブジェクトが表示される範囲は公称40°未満であり、とにかく極端に狭い範囲にしか映し出されません。※実際には25°程度にしか体感できませんでした。

なので、有視界全体の中に画角25°の板が表示されている状態になってしまいます。

次に、少し歩いてみて、設備全体を眺めようと思いました。

そこでも画角の狭さが災いして、オブジェクト同士の位置関係全体を写すことができませんでした。あっちみて、こっちみて。つながりを脳内補間する感じです。

現状では、機械設備のようなデカいものを表示するのには向かないと思います。

今後に期待

後継機にはとにかく画角の改善を期待したいです。

Hololense:初めてのホロレンズ #1

Hello my name is Keita Nakamori  as a mechanical engineer.

From now on . Let’s start a microsoft holorense project!!

まずはアカデミーで、基本を覚えましょう

https://docs.microsoft.com/ja-jp/windows/mixed-reality/academy

Unity:2017.1.2.p2が安定らしい

Visual Studio:2017(15.2)が良い組み合わせらしい

でもとりあえず手元にあるUnity2018でやっていきます。

Unityを起動して プロジェクト名をhorotest_001にしました(間違えてローマ字になってしまったw)

カメラの設定

カメラのポジションを0,0,0

Clear FlagsをskyからSolid Colorへ

Back groundをデフォの青っぽい色から真っ黒、しかも透明へ。rgba(0,0,0,0)です。

Clipping Planesは0.3から0.85に変更します。

これで、カメラからの視界を確認すると、真っ暗になり、ホロレンズのデフォ状態になりました。

画質を落として、スピードを重視したセッティングにしましょう。

menu>edit>project settings>quality

levelsのwindowsマークの一番下のDefaultの▼マークをクリックしてVery Lowにします。

XRに対応するためのセッティングをしましょう。

menu>edit>project settings>player

windowsマークをクリックして※重要

XR settings Virtualにチェックを入れる

そうするとwindows Mixed Realityが使えるようになります。

試しにオブジェクトを作ってみましょう。

さっきつくったカメラの前にcubeを置きます。45°傾けるとわかりやすいです。

目の前の真っ暗な背景にcubeだけが浮いています。

ビルドしましょう

menu>file>build settings

UWP Holorenseにチェックを入れます C#にはチェックができなかったです。よくわかりません。やってみましょう。>build

フォルダはUnityではない別のフォルダを自分で作って選択してください。

でないとUnityと混ざってしまいます。

出来上がったフォルダを見ると.slnという拡張子のものがあります、

これをクリックするとVisual Studioが起動します。

そうすると真っ黒な画面が出てきて不安になると思いますが大丈夫です。

VS側の操作

ARMのところをx86に変えましょう。そう書いてあるんで。

右側がいきなりローカルコンピュータに書き換わるのでDeviceに直しましょう。

かなりはまりどころです。!!!

ホロレンズとPCをUSBで物理的につなぎます。

リモートでIPアドレスを指定してつなげる方法もありますが。それはあとで。

Deviceを押すと、ビルドが開始されます。

しばらく待っていると、ホロレンズ上にでかでかとUnityの画面が出てきて、そのあとに、Unityで作ったcubeオブジェクトが見えてきます。

ホロレンズ側の操作

これでホロレンズにはプロジェクト名 horotest_001のアプリケーションが入りました。

以後、ブルームするとAll Appsのなかに「青いunityアイコン」でhorotest_001が生成されていますので、ここからエアタップして起動します。

まとめ

ここまでで、一通り、何もないところから、目の前にオブジェクトを映し出すところまで来ました。では次回からは少しづつ応用して世界を広げていきましょう。