Takunojiのプログラミング・プレイグラウンド(遊び場)

Javaプログラミングを基本にして、ゲーム作成に必要なことの調査結果、やったら面白そうなことなどを記載します。プログラミングのススメ的なことも記載します。プログラミングで楽しく遊ぶために色々と記載して行きます。

Unity 始めの一歩

前回、Unityのインストールを行いました。

今回は、サンプルプロジェクトの取得と起動〜起動ファイルへの出力を行います。

①デモプロジェクトの取得→以下のサイトよりダウンロードします。

japan.unity3d.com

 

こんなサンプルプロジェクトをダウンロードしました。

f:id:Takunoji:20170515214455p:plain

ダウンロード後に、プロジェクトを開きます。
だがしかし、コンパイルエラーが出てきて何もできませんでした。

どうやら、コンパイラの設定などが必要の様だ

とりあえず、始めにやらないといけないのは環境設定ということがわかった。
iOsAndroid端末でのアプリケーション作成を考えているので

次回、「モバイルアプリ開発環境」の準備を始めたい
Unityで使用するための3Dオブジェクト作成にBlenderの使い方をやりたいと思います

レトロパイ(Retropie) インストール

レトロパイ~ラズパイ用のエミュレーター~のインストールです。
<下のプロジェクトの一部のようです。(ちょっと興味深い。。。)

blog.petrockblock.com
<参考にしたサイト>

ラズベリーパイにゲームOS retropieをインストールしよう : Yuki Nakata's Blog
Raspbian - RetroPie Docs


<手順>→ 自分はダウンロードできませんでした。下に出来た手順を示します。
レトロパイのダウンロードページよりイメージをダウンロード(結構重い。。。)
※自分のラズパイは初期型なので青枠で囲った部分をクリック

f:id:Takunoji:20170513092752p:plain

・SDカードの初期化、イメージの解凍~インストール(ファイルをコピーして配置する)
 を参考サイト➀に習います。
【実行結果】→失敗。ダウンロードが中断されてしまいました。。。
        何回か試してできなかったので次の方法へ

【うまくいった手順】
以下のサイトを参照しました。

Raspbian - RetroPie Docs

【手順】
1.GITのインストール → 以下のコマンドを入力
>sudo apt-get install git lsb-release

2.GITからPULLする(チェックアウト)
レトロパイを配置するフォルダー(ディレクトリ)へ移動する
>cd [移動するフォルダ]
※ターミナルを開いた時のディレクトリでよければ移動しなくてよい
>git clone --depth=1 https://github.com/RetroPie/RetroPie-Setup.git
※GITからファイルを取得し現在のディレクトリ(カレントディレクトリ)にコピー

3.レトロパイのセットアップ処理を行います。(スクリプトの起動)
>  cd RetroPie-Setup
>  chmod +x retropie_setup.sh  → 起動権限の付与
 > sudo ./retropie_setup.sh

あとは画面が起動するので参考サイトに習います。

Unity インストール

Unityのインストールです。
下記のサイトにアクセスします。

unity3d.com

今回は無料(Personal)を洗濯してダウンロードしました。
インストーラ自体は重くありませんが、本体をダウンロードするのに700Mほど
かかります。
インストール完了

f:id:Takunoji:20170510212353p:plain

この後にUnityへのアカウント取得、ログインを行います。

f:id:Takunoji:20170510215242p:plain

無料版(個人用)なので「Personal」を選択
何やら英語が出てきました。。。こんな感じで入力しました。

f:id:Takunoji:20170510215949p:plain

結局、アンケート調査の様ですね

f:id:Takunoji:20170510220228p:plain

以上、インストール完了、そしてプロジェクトを作成

f:id:Takunoji:20170510220526p:plain

さて、ここからが問題だな。。。何を作ろうか?

 

TensorFlow Getting Startedを実行する

前回は、インストールのドキュメントにあるソースを実行してみました。
今回からは、「Getting Started」を始めます。
その前に、「テンソル」っていうのは下記参照で。。。

テンソル - Wikipedia

機械学習などあまり知らない、全く知らない人向けに良いガイドになる様だ
有難い。

・ 0テンソル(a rank 0 tensor)を表現するとき → (何も書かない)
・1テンソル( a rank 1 tensor)を表現するときは       → [1., 2., 3.] # [3]
・2テンソル( a rank 2 tensor)を表現するとき     → [[1., 2., 3.], [4., 5., 6.]] # [2, 3]
・3テンソル( a rank 3 tensor)を表現するとき   →[1., 2., 3.,, 7., 8., 9.,] #[1, 2, 3]

どうやら、 ノードを作成する処理が以下になる

node1 = tf.constant(3.0, tf.float32)
node2
= tf.constant(4.0) # also tf.float32 implicitly
print(node1, node2)

そして、ノードからセッション内で計算グラフ(computional graph)を作成する処理が
以下の様になる様だ…

sess = tf.Session()
print(sess.run([node1, node2]))

 処理法はなんとなくわかったが…

つまり、なに?という疑問が消えない

なので、ちょいとアプローチ方法を変えて考えて見ようかと思います。

 

Minecraft in ラズベリーパイ

Minecraftをラズパイでやるための手順です。

1.ラズパイをインストー

www.raspberrypi.org

ダウンロードしたファイル(NOOBS)を解凍してSDカードに展開します。

2.LANケーブルを挿して電源を入れてやります。

3.メニューからゲームで既にインストールされています。
Scratchもインストールされていて良い

そして、ゲームパッドでマイクラをやるために以下のコマンドを叩きます。
$ sudo apt-get install joystick

$ sudo apt-get install joystick jstest-gtk
こちらのサイトを参考にしました。

上記コマンドで、ゲームパッドをラズパイに認識させることができます。

そして、マイクラで使用するためにはゲームパッドのボタンにキーボードのボタンを
対応させます。

追加で以下のコマンドを叩く

$ sudo apt-get install software-properties-common

リポジトリの追加コマンド

 

そして、対象のアプリを落とします
$ sudo add-apt-repository ppa:ryochan7/antimicro
$ sudo apt-get update
$ sudo apt-get install antimicro

下記のサイトを参考にしました。

gcnqf306.cocolog-nifty.com

Docker OSについて

前回は、Dockerコンテナの構築を行いました。
そして、OSについては触れませんでした。。。なので今回は調べます。

docker infoコマンドで以下の様な情報を確認しました。

f:id:Takunoji:20170506203457p:plain

選択している部分はOS名を示しています。
だけど前回はその部分に触れていませんので。。。

・dockerコンテナに移動する(ターミナル使用)
>docker exec -it コンテナ(image)名 bash (bash使用時)

f:id:Takunoji:20170506220038p:plain

今回はnginxのコンテナに移動してみました。docker info でnameが「webserver」だったので以下の様にコマンドを入力しました。

f:id:Takunoji:20170506220910p:plain

f:id:Takunoji:20170506221328p:plain

上記の結果から、1コンテナにつき1OSで起動しているのかな?と仮説を立てます。
理由は、docker infoではalpine linux だったが今回のOS名はGNU....
なので起動しているコンテナと、dockerが起動している仮想OSが違っているのでは?と思った次第です。

調査の結果、起動しているAlpain Linuxに関してはMacOS Xで使用しているOSの様だ
詳細に関してはわかりませんでしたがとりあえずは問題もない様です。
そして、今回のGNU Linuxに関しては起動しているコンテナのOS....
→ベースになっているOSとnginxが起動しているOS(コンテナ上のOS)が違うということは「複数のOSが起動しているであろう」という仮説です。
詰まる所、コンテナを作成しそれを配布するのが自分のやろうとしていることになりました。→まだ仮説の領域は出ていません。。。


なので、次回はコンテナの作成を行おうと思っております。

2017/05/08 追記
desuga,Dockerコンテナを使用するなら単純にVMを使用してイメージファイルを
共有する方が便利だと思ったのでDockerはTendorFlowでの実行環境用にしようと思います。。。。

Docker コンテナ構築

前回は、DockerをMacにインストールしました。

今回はDockerのコンテナ(起動するアプリケーションの基本になるもの)を構築します。
参考にしたサイトはこちらです。

qiita.com

早速、コンテナの構築を始めます。
まずは、インストールした、Dockerを起動します。(Dockerデーモン起動)
起動確認をしておきます。
ターミナルを起動して、「docker info」コマンドで確認します。

f:id:Takunoji:20170506201429p:plain

そして、「nginx(エンジンエックス)」のイメージを取得します。

以下のコマンドを入力
>docker pull nginx:latest

f:id:Takunoji:20170506201725p:plain

イメージの取得確認
>docker images

f:id:Takunoji:20170506202034p:plain

「nginx」が存在していることを確認します
そして、起動します。

>docker run -d -p 8080:80 --name webserver nginx

f:id:Takunoji:20170506202552p:plain


localhost:8080」にアクセス

f:id:Takunoji:20170506202532p:plain

これでウェブサーバーを起動できました。

そして、DB(PostgreSQL)のイメージを取得します。
参考にしたサイトは以下のサイトです。

qiita.com


docker pull postgres

f:id:Takunoji:20170506210531p:plain

インストール確認

f:id:Takunoji:20170506212725p:plain

起動してみます。

>docker run -it --name postgres -d postgres:latest

f:id:Takunoji:20170506213736p:plain

起動確認
>docker ps

f:id:Takunoji:20170506213848p:plain

「nginx」と「postgres」が起動しています。
次回は、OSの起動について確認します。

Dockerのインストール mac

前回はソースを眺めました、その他にTensorFlowの書籍、チュートリアルを読んでみましたが。。。結局何もわからず(笑)
数学の勉強を始める気にはなりませんで。。。

仕方ないので、とりあえずDockerのインストールをします。チュートリアルにも書いてたし。。。まぁTensorFlow & Dockerというところで(笑)
※Dockerを使用した方が簡単に使えるという情報をゲットしたためインストールすることにしました。

Dockerのインストールにはこちらを参照しました。

・Dockerのインストール、下記のサイトよりダウンロード(マックなのでりんごの方)

www.docker.com

f:id:Takunoji:20170505212729p:plain

自宅のネットワークスピードが遅いからなのか、結構時間がかかります。。。
というか、何も反応がないように思ったので手段を変更します。
以下のサイトを参考にします。

docs.docker.com

今回はStableの方をダウンロードします。

f:id:Takunoji:20170505215725p:plain

インストール完了

f:id:Takunoji:20170505215855p:plain

アプリケーション起動、以下の様な画面が出てきます。

f:id:Takunoji:20170505220303p:plain

しばらくすると、上部が緑色に変わります。

f:id:Takunoji:20170505220337p:plain


どうやら、上記の画面が出ている状態が「デーモン」(PCの裏側で動くプロセス)
が起動している状態を示していて「docker info」コマンドで以下の様な表示が行われる
1. ターミナルを起動する
2. docker infoコマンドを入力

f:id:Takunoji:20170505222555p:plain

とりあえずは、Dockerのインストールが完了⭐︎

TensorFlow Pythonに慣れる

前回は、インストールを行いました。その他にグラフィック用のAPIもあるらしい


今回は、pythonからTensorFlowにアクセスして起動します。
一応、macでターミナルを起動して実行しています。
./tensorにTesorFlowをインストールしましたので起動するのは
./bin/activateでした。

Pythonファイルを「test.py」で作成し以下の様に記述しました。

f:id:Takunoji:20170425221915p:plain

使用したエディタは「vi」毎度お馴染みですが一応以下を参照しました。

viエディタの使い方

tensorflowを変数「tf」で使用する様に宣言:1行目
node1を作成 :3行目

node2を作成:4行目

node1, node2をコンソール出力:5行目

テンソルフローのセッションを取得:7行目

node1, node2の配列を実行する → 詳細はよくわかりませんでした。

node1, node2からnode3を作成:10行目

node3を表示:11行目

node3を実行:12行目
【実行結果】

f:id:Takunoji:20170425222705p:plain

 

詳細部分はまるでわからないが、とりあえず座標を出力しているのかな?
詳細だけでなく全くわかりませんでした。

わかったのはtensorflowで「run」「add」をした値を表示すると上の様に出力されるということだけ(笑 )

 

TensolFlow 開発編〜プログラムでテンソルを動かす〜

この記事は以下のサイトを参考にして実行しています。

Getting Started With TensorFlow  |  TensorFlow


前回
の続きです。インストールしたTensolFlowを起動するところから始めます。
以下のコマンドを叩きます。
>source 「virtualenvのインストールしたディレクトリ」/bin/activate

f:id:Takunoji:20170423204130p:plain

くどい様ですが、「(tensol)」が表示されていることを確認します。

そして、今気がつきましたが、インストールは完了していませんで。。。。
以下の処理を行います。
pythonのtensorflowをインストールする

>pip install tensorflow

f:id:Takunoji:20170423213005p:plain

エラー文言が出ましたが、とりあえず無視(pipのバージョンは新しいため)f:id:Takunoji:20170423213253p:plain

これもエラーが出力されました。。。。
読み進めると「エラーが出たらこっちをやってね❤️」と記載があります。

1. pipのアップグレード
>sudo easy_install --upgrade pip

>sudo easy_install --upgrade six

2.tensorflowのインストール(pip用)
>export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/mac/tensorflow-0.9.0-py2-none-any.whl # 環境変数を設定する

>pip install --upgrade $TF_BINARY_URL

しかし、またエラーが。。。

自己解決しました。
1.tensorflowをアクティブにする

2.上記の処理を再実行
>pip install 。。。。と上記のコマンドを入力

そして起動確認(参考にしたサイトに「Validate Install」と書いている部分に記載あり)

f:id:Takunoji:20170423221106p:plain

なんか「command not found」と出ていますが、tensorflowが動いているので
とりあえず無視します。→後に戦うことになるでしょう(笑)

どうやら、仮想空間(actibvateした状態)が起動していないと読み込みができない様だ