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

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

Java OpenGL jogl javafx 実装

Javaでの3D描画を行います。
mavenでjogl(java open GL)をセットアップします。
pom.xmlに以下の依存関係を追加します。

   <dependency>

     <groupId>org.jogamp.gluegen</groupId>

     <artifactId>gluegen-rt-main</artifactId>

     <version>2.0-rc11</version>

   </dependency>

   <dependency>

     <groupId>org.jogamp.jogl</groupId>

     <artifactId>jogl-all-main</artifactId>

     <version>2.0-rc11</version>

   </dependency>

そして、eclipseよりMavenBuildを実行します。goalは「install」を指定します。
依存関係が追加されて以下の様にライブラリ(jarファイル)が追加されます。

f:id:Takunoji:20170521194718p:plain

Mavenの使い方、セットアップは以下を参照しました。

Maven – Installing Apache Maven

環境変数を設定し「mvn --version」コマンドの起動確認をしてからビルドします。

以上で、ライブラリのインストールは完了です。

Blender 基本的な使い方1

Blenderの使い方をメモ

まずはダウンロードもとは以下になります。

blender.jp.uptodown.com

MACの場合はAppStoreでソッコーいけます(笑)

起動時の初期画面(Version 2.76 (2.76, 2015-Oct-11, Blender )

f:id:Takunoji:20170520210603p:plain

右クリックでオブジェクトの選択
左クリックで3Dカーソルf:id:Takunoji:20170520211136p:plainの移動
ホイールを押下した状態でマウス操作 → 視点の移動
スペースでメニューを表示する
→ 「add uv」と入力すると以下の様になる(sphereの追加)

f:id:Takunoji:20170520211349p:plainf:id:Takunoji:20170520211604p:plain

3Dカーソルのある位置にオブジェクトが追加される

f:id:Takunoji:20170520211738p:plain

そして、「Tab」キーを押下することでオブジェクトの形を変形するためのモード
EditModeに切り替えを行える、初期状態はObjectModeというみたいだ。

そして、スペースキー押下後に「smooth」を入力し以下を選択すると以下の様に

f:id:Takunoji:20170520213210p:plain

表面がスムーズな感じになりました。

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のインストールが完了⭐︎