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

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

JavaMeを使う 真・開発環境構築 失敗〜Net Beans編〜

これも失敗しました。-> Macの場合(JDKの問題)
Javaのバージョンを1.8でやるようにすれば大丈夫みたいです。
JDKが新しいから何も調べずにインストールすると後で面倒くさい…

ちょいと反省…


下のものをダウンロード、インストールします。
<インストール>
1. Net Beansインストール:https://netbeans.org/downloads/
2. Net Beans用のSDK        :  Java ME SDK Downloads

NetBeansは簡単にインストールできると思うので省略します。

f:id:Takunoji:20180421144158p:plain

Net Beans起動

f:id:Takunoji:20180421144525p:plain ← このアイコン(Mac)

f:id:Takunoji:20180421144459p:plain

実際に起動して、プロジェクトを作成するときに以下のような画面が出ました。

f:id:Takunoji:20180421145200p:plain

JavaMe関連がダウンロードできるのか?
アツいものを感じます!!

f:id:Takunoji:20180421145306p:plain

インストール!

f:id:Takunoji:20180421145534p:plain

途中「自己責任で〜」とダイヤろぐが出ますが気にせず続行
Net Beansの再起動して再度開きます。

f:id:Takunoji:20180421150703p:plain

Javaのバージョンを1.8以上にしているとNetBeans8.2では動きませんでした。
ちょいと注意した方が良いかも?
Javaバージョンの切り替え方法(Mac)

ここのサイトを参考にしてやりました。

qiita.com

でもコマンドの入力をミスってしまい。。。
lsコマンドとか使用不能になりました。
やる前に以下のコマンドでPATHの値を保存しておくと良いと思います。
一応危険なので注意してやるようにしてください、後が面倒臭いです。

でも、結局は「Net Beans」でプロジェクトの作成ができませんでした。
つくづく、縁がないのなぁ「Net Beans」

JavaMeを使う開発環境構築〜失敗:環境構築出来ませんでした〜

失敗の原因は
EclipseでJavaMeをやるときは別の方法でやる必要がある
事に気がつきました。次回やります。
参考サイト:

j2megroup.blogspot.jp



今度は、フルJava(全部Java)でのアプリケーション開発に着手しようと思います。
以下から「JavaMe SDK」をダウンロードして使用する算段です。

<注意>
オラクルへのユーザー登録が必要になります。

今回使用するのは、OpenCv, JavaFx, Java3D(JOGL)を使用する予定です。
早い話が、Javaでゲームを作ろうという事です。 

Java ME SDK :いろんなプラットホームでの説明が書いてます。

下のリンクはEclipseようです。
上のリンクだとEclipse4.7(Oxygen)では出来ませんでした。

docs.oracle.com
<2018/04/21 追記>

開発環境の構築として必要な作業は以下になります。
1.Java Me SDKのインストール(今回はEclipseでのセットアップです)

今までに、「Unreak Engine」「Unity」「Blender」と実際に触ってみました。
で、3DモデルはBlenderを使用することにしたのですが、Blenderゲームエンジンも使ってみたところUnityと変わらない感じだったので、Javaでやったらどうだろう?
となりました。

ポイントとしては、単体で動かせるので、ケータイやPC、ラズパイにもインストール可能であるということです。JVMさえ動けばどこでも動くのがJavaです。

というわけで、上記のSDKをダウンロードしてEclipse
ウィンドウ > 新規ソフトウェアのインストールを開きます。

f:id:Takunoji:20180420215004p:plain

f:id:Takunoji:20180420215142p:plain

SDKを指定してやれば、インストールができます。
インストール後は、以下のように表示されます。

f:id:Takunoji:20180420215449p:plain

簡単ですが、こんな感じです。 -> 2018/04/20

しかし、セットアップはまだ終わりませんでした。

www.eclipse.org

上記のサイトからモバイル用、Java Card用とあるようですが今回は、モバイル用をインストールします。
始めのようにダウンロードした、ファイルをプラグインとしてインストールします。

f:id:Takunoji:20180421104616p:plain

ヘルプ > 新規インストールで開きます。

f:id:Takunoji:20180421104726p:plain

インストールしたら再起動が走ります。
ここまでで、JavaMe SDK, Mobile Toolsのインストールを行ったので
Eclipseの再起動は、2回行っています。

そして、Eclipseのパッケージエクスプローラより
新規 > Java Me Project を開き

f:id:Takunoji:20180421105844p:plain

このようにプロジェクトが作成できます。

そして、参考にするサイトを「Using the Oracle Java ME SDK Software with Eclipse
に変更して、Eclipseの設定を行います。
1. JavaMeパースペクティブを開く

2. 「Preference」「設定」を開く(SDKインストール後)、何もしなくて良さそうです。

f:id:Takunoji:20180421131725p:plain

3. Java Me Projectの作成
・プロジェクトを作成する

f:id:Takunoji:20180421133029p:plain

・プロジェクト名の設定(下の方にConfigurationが設定されていることを確認)

f:id:Takunoji:20180421133115p:plain

・次へを押下して、以下の画面が表示されます。
※参考サイトには何も書いてなかったけど自分はチェックを入れました。

f:id:Takunoji:20180421133723p:plain

・同様に次の画面

f:id:Takunoji:20180421133812p:plain

そして完了ボタン押下!!

f:id:Takunoji:20180421133922p:plain

ぐわー!!痛恨の一撃!!!
どうやら手順が足りないようだ、結構飛ばしたしな。。。
<やったこと>
EclipseへJavaMe SDKのインストール
・Mobile Tools for Java Extentionのインストール
>>> ここを飛ばした。。。
・Installing Java Card Emurator
>>>>>>>> 
Eclipseの設定
というわけで、Java Cardインストールをやります。

Java Card Downloads

そして「Java Card SDK」をインストール...
色々やってたらちゃんと出来ませんでした。

最終奥義出します。→再セットアップ(Eclipseアンインストール)
NetBeans 使ってみようかな?

詳細は、以下のサイトで和訳してやると分かりやすいです。

docs.oracle.com

紆余曲折の結果今回は、失敗してしまいました。

https://docs.oracle.com/javame/config/cldc/rel/3.3/win/gs/html/getstart_win32/setup_eclipseenv.htm
今日はここまでにします。

Blender Game Engine 〜まとめ〜

前回は、BGEでのゲームコントロールの作成方法をやりました。
正確には、右ボタンを押下した時にオブジェクトを動かす。というものでしたが
前回やった工程を増やして、上下左右のボタンに対応した動きを設定すると以下のようになりました。
f:id:Takunoji:20180418211119p:plain

試した部分は「Physics」と「Liner〜」「Loc」「Rot」の部分を試しました。
回転したり移動したりとちょっと面白かったです。
ポイントとしては「Loc」の値を設定して移動する時にはオブジェクトの向きを基準に
移動するというところです。その部分は実際にいじってみるのが一番良いと思います。

f:id:Takunoji:20180418212110p:plain ← 右端のパネル
ロジックエディタの右端(Actuator)
f:id:Takunoji:20180418212100p:plainf:id:Takunoji:20180418212051p:plain
それぞれの値を調節してやれば、キャラクターの操作はできそうです。

大雑把にアクションの作成方法を学習しました。


 

Blender Game Engine 〜キューブを動かす〜

前回は、チュートリアル動画のはじめの部分をやってみました。
今回はその続きをやります。
参考動画はこちら

youtu.be

前回は、キューブを上に持ち上げて、重力をかけるとこまでやりました。

f:id:Takunoji:20180416211549p:plain

上記の画面で(重力をかける設定をしてます。)「P」ボタンを押下

f:id:Takunoji:20180416212322p:plain

と、ここまでが前回。

ここからキューブの向きを変えて落とします。

f:id:Takunoji:20180417202547p:plain    f:id:Takunoji:20180417202603p:plain

まぁ何も起こりませんなぁ(笑)  ※動画より引用
自然な動きを与えるには、「コリジョンバウンド」を設定するようです。

f:id:Takunoji:20180417203156p:plain f:id:Takunoji:20180417203146p:plain f:id:Takunoji:20180417203132p:plain        f:id:Takunoji:20180417203450p:plain

チェックを入れるだけですね。。。
落下した後に地面の上に止まりました。(刺さっていません)

そして、ここからが本番
画面を上下の二つに分割します。新しいビューを使用するためです。

f:id:Takunoji:20180417203846p:plain

f:id:Takunoji:20180417204015p:plain

Open The Game Logic Editor

f:id:Takunoji:20180417204115p:plain

開いたロジックエディタの一番左から、センサーを追加します。
センサーというのは、コントローラーの事と今は思っておきましょう。

f:id:Takunoji:20180417210336p:plain

そして「Controller」はすっ飛ばして、「Actuator」の変更を行います。

ついでに飛ばした「Controller」は右です。

f:id:Takunoji:20180417210929p:plain  f:id:Takunoji:20180417211021p:plain

そして、今回はキーボードでコントロールしてキューブを動かしたいので
Actuator -> Motionを選択します。

f:id:Takunoji:20180417211208p:plain

余談ですが、選択しているキューブに重力設定をしていないと2行くらいしかない
※重力設定が「Static」の状態

f:id:Takunoji:20180417211643p:plain

重力設定を「Static」から「RigidBody」に変更します。

f:id:Takunoji:20180417211901p:plain

ちょっと分かりづらいですが、プロパティが増えています。

Key: の「Right Arrow」と表示されている部分をクリックしたら「PressKey」と

f:id:Takunoji:20180417212119p:plain 表示されるので使用するキーを押下する
今回は、「右→」Right Arrowを選択しました。
そして、一番右のプロパティを以下のように変更します。

f:id:Takunoji:20180417212620p:plain Yの値を「3.0」に設定する

f:id:Takunoji:20180417212709p:plain

そして、ゲームを実行します。「P」ボタンを押下します。

f:id:Takunoji:20180417212943p:plain f:id:Takunoji:20180417213133p:plain

右にしか移動しないのでキューブがおっこちます(笑)

今日はここまでにします。

JavaFx Game 開発メモ〜モバイル用〜

Net Beans8.2(2018/04/22最新)はMacではうまく動かないJava10とか使用不能
なので7.2を使用するJDK10.XXが使用不能なのでJDKを8に戻す

https://netbeans.org/downloads/7.2/?pagelang=pt_BR


Java Me開発環境構築の残り

docs.oracle.com

java 3D チュートリアル

Java 3D Tutorial

 

OpenCv in Java Download

stackoverflow.com

 

OpenCv Document

https://docs.opencv.org/java/2.4.2/


JavaFxサンプル
 

2d Game

jaxenter.com

 

JavaiPhoneアプリいける?

www.slideshare.net

 

JavaMe(J2ME)チュートリアル

mobile-apps-dev.blogspot.jp

Blender Game Engine 〜他のゲームエンジンとの比較(感想)〜

紆余曲折を経て Blenderに戻ってきました。
OpenCvによる機械学習も進めたいのですが。。。
まずは「動くもの」を作るのを優先したく、ちょいと保留です。

経緯として以下のような状況です。
1. ゲームを作りたいのでどの言語(もしくはツール)を使用して開発するか検討
 「UnrealEngine」→ほぼプログラミングがいらない感じで、プラグインを作るにも
          時間がかかりそうなので却下(使用しないことにしました。)
          ※プログラミングをメインにしないなら最高だと思います。

          ただし、GPUのスペックがある程度高くないと使用できない

 「Swift」     →Xcodeを使用してiPhoneアプリの作成ができる、3Dモデルや
          各部品(イメージファイルなど)をAsetとして読み込み使用できる
          ※プログラミングの習得難度は低い、C++,Python等アクセス可

 「Unity」    →3Dモデルの作成など簡単なことはUnityのみでOK, C#を使用
           iPhoneなどの入力キーボードを使用するときは対象の言語
          (Swiftなど)での修正作業が必要になる
 「Blender」  →3Dモデルを作成するのに使用する他のゲームエンジンでも
          作成した3Dモデルを使用できる

Blender Game Engine」
Pythonを使用できる、作成したゲームをコンパイルツールでiPhone用に起動ファイルを出力できる
これを使えばBlenderのみの実装でiPhoneアプリも行けるのではないだろうか?
と思っている

www.youtube.com

というわけで、BelderGameEngineの使い方を勉強します。

参考にするのは、以下の動画です。

www.youtube.com

初めに、レンダーを切り替えるようです。

 

f:id:Takunoji:20180416210809p:plain

 

f:id:Takunoji:20180416210826p:plain

右側のパネルにある「Start」ボタンを押下するとゲームが起動します。

f:id:Takunoji:20180416210911p:plain

ゲームを起動するとマウスが見えなくなってしまうので「esc」ボタンでゲームを終了します。
とりあえず、地面(のようなもの)を作成します
Plane(板)を選択して広げます。初期表示されているキューブは上に持ち上げます。

f:id:Takunoji:20180416211320p:plain

f:id:Takunoji:20180416211429p:plain 「S」押下してマウスで広げます。

f:id:Takunoji:20180416211549p:plain

そして、キューブを選択した状態で以下のように「Physics」を選択します。f:id:Takunoji:20180416212253p:plain

f:id:Takunoji:20180416212130p:plain

そして「RgidBody」を選択

f:id:Takunoji:20180416212237p:plain

そしてゲームを再生

f:id:Takunoji:20180416212322p:plain

空中にあった、キューブが地面(?)に落下します。

今日はここまでにします。
次回は、キューブを動かしてみます。

 

Blender python UI開発メモ 〜 ユーザ入力〜

pythonからJavaを使用する

https://stackoverflow.com/questions/3652554/calling-java-from-python?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa

 

 blenderでユーザー入力を行うにはダイヤログを使う事にする

https://stackoverflow.com/questions/15595124/input-dialog-box-blender?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa

 

複数行テキストフィールド

https://developer.blender.org/D622

Eclipse セットアップ

  1. Java Install Eclipse〜開発ツールのインストール〜
  2. TensorFlow C++環境〜EclipseにCDTをインストール〜
  3. Setup OpenGL with Java〜JOGLを使う準備 for Eclipse〜
  4. Eclipse Meven 開発手順〜プロジェクトの作成〜
  5. Java OpenCV 環境セットアップ(on Mac)
 

Unity Error トラブル〜全角の文字決定時にEnter Keyアクションが動く〜

[2018/04/15]
iPhoneでのアプリケーションを作成する時には、入力部分はXcode(swift)での実装が必要らしい。。。

以下のソースで実行した時に文字決定のエンターキーで処理が走ってしまい
文字決定の時と、コマンド入力時のエンターキーのアクションを判別したい。

    void Update() {
        if(inputField.isFocused) {
            inputField.MoveTextEnd(false);
        }
        if(Input.GetKeyDown(KeyCode.Return)) {
            string command = getInputCommand(inputField.text);
            if (command == String.Empty) {
                Debug.Log ("Break now:");
            } else {
                exeCommand (command);
                inputField.text = inputField.text + commandStart;
                inputField.MoveTextEnd(false);
            }
        }
    }
文字決定時には文字がすでに入力されているのか入力されていないのか不安定で
両方の場合がある。。。タチの悪いバグだ(笑)

こいつをやっつけるのには、文字決定時とコマンド入力時の判別を行わないとけないが
さて。。。
調べてみると「inputField.text」では、全角に対応できなくて
「inputTextField.textComponent.text」は対応している。。。らしい
でも、全角入力後に「改行が消える」という謎なバグがあぁぁぁぁ。。。

 

Unity Develop Tools 〜 C#のソースを編集する〜

UnityでC#の実装を行いたいときに使う
Windowsの場合、[Edit > Preferences]
Macの場合、[Unity > Preferences]

Macで記事を記載しているため、Macの場合です。

1.Unity -> Preference で右側のウィンドウを開く

f:id:Takunoji:20180412201211p:plain f:id:Takunoji:20180412201435p:plain

2.開いたウィンドウより[External Tools]を開きModeDevelop (built-in)を選択

f:id:Takunoji:20180412201723p:plain

4. 「install MonoDevelopTools」というボタンが表示されるのでクリック
 ダウンロードを開始、ダウンロード後 ↓

                         f:id:Takunoji:20180412202326p:plain

5.パッケージを開きインストール開始

f:id:Takunoji:20180412202201p:plain

f:id:Takunoji:20180412202430p:plain

インストール後に、C#ファイルを開く→MonoDevelopが開く

f:id:Takunoji:20180412202646p:plain    f:id:Takunoji:20180412202724p:plain

自分の場合は、結構重くて、起動に時間がかかりました。というかうまく起動できていなかったので、
Unityから起動(C#ファイルをダブルクリック) ではなく、別個に起動しました。

f:id:Takunoji:20180412203325p:plain

f:id:Takunoji:20180412203345p:plain

f:id:Takunoji:20180412203401p:plain

こんな感じです、C#で参照しているオブジェクトなどを探すのに便利です。
テキストエディタだとAPIドキュメントが手放せなくて作業スピードが落ちます(笑)

以上、でした。