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開発環境構築の残り
OpenCv Document
https://docs.opencv.org/java/2.4.2/
JavaFxサンプル
2d Game
JavaMe(J2ME)チュートリアル
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アプリも行けるのではないだろうか?
と思っている
というわけで、BelderGameEngineの使い方を勉強します。
参考にするのは、以下の動画です。
www.youtube.com
初めに、レンダーを切り替えるようです。
右側のパネルにある「Start」ボタンを押下するとゲームが起動します。
ゲームを起動するとマウスが見えなくなってしまうので「esc」ボタンでゲームを終了します。
とりあえず、地面(のようなもの)を作成します
Plane(板)を選択して広げます。初期表示されているキューブは上に持ち上げます。
「S」押下してマウスで広げます。
そして、キューブを選択した状態で以下のように「Physics」を選択します。
そして「RgidBody」を選択
そしてゲームを再生
空中にあった、キューブが地面(?)に落下します。
今日はここまでにします。
次回は、キューブを動かしてみます。
Blender python UI開発メモ 〜 ユーザ入力〜
blenderでユーザー入力を行うにはダイヤログを使う事にする
複数行テキストフィールド
https://developer.blender.org/D622
Eclipse セットアップ
- Java Install Eclipse〜開発ツールのインストール〜
- TensorFlow C++環境〜EclipseにCDTをインストール〜
- Setup OpenGL with Java〜JOGLを使う準備 for Eclipse〜
- Eclipse Meven 開発手順〜プロジェクトの作成〜
- Java OpenCV 環境セットアップ(on Mac)
- Java Basic
- Java Basic Level 1 〜Hello Java〜
- Java Basic Level2 〜Arithmetic Calculate〜
- Java Basic Level3 〜About String class〜
- Java Basic Level 4〜Boolean〜
- Java Basic Level 5〜If Statement〜
- Java Basic Summary from Level1 to 5
- Java Basic Level 6 〜Traning of If statement〜
- Java Basic Level8 〜How to use for statement〜
- Java Basic Level 8.5 〜Array〜
- Java Basic Level 9〜Training of for statement〜
- Java Basic Level 10 〜While statement 〜
- Java Basic Swing〜オブジェクト指向〜
- Java Basic Swing Level 2〜オブジェクト指向2〜
- サンプル実装〜コンソールゲーム〜
- Java Basic インターフェース・抽象クラスの作り方
- Java Basic クラスとは〜Step2_1〜
- Java Basic JUnit 〜テストスイートの作り方〜
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 で右側のウィンドウを開く
2.開いたウィンドウより[External Tools]を開きModeDevelop (built-in)を選択
4. 「install MonoDevelopTools」というボタンが表示されるのでクリック
ダウンロードを開始、ダウンロード後 ↓
5.パッケージを開きインストール開始
インストール後に、C#ファイルを開く→MonoDevelopが開く
自分の場合は、結構重くて、起動に時間がかかりました。というかうまく起動できていなかったので、
Unityから起動(C#ファイルをダブルクリック) ではなく、別個に起動しました。
こんな感じです、C#で参照しているオブジェクトなどを探すのに便利です。
テキストエディタだとAPIドキュメントが手放せなくて作業スピードが落ちます(笑)
以上、でした。
Unity Script 開発メモ 〜Widgetコントロール〜
任天堂プラットホーム
https://developer.nintendo.com
psvita向けに作る
http://japan.unity3d.com/blog/?p=1516
iOS実装について
https://docs.unity3d.com/ja/current/Manual/iphone-basic.html
やっぱり、日本語入力不可でコマンド入力だな⭐︎
入力設定
https://docs.unity3d.com/jp/current/Manual/script-InputField.html
本の3dモデル フリー
https://free3d.com/3d-models/book
基本アニメーション
unity3d.com
アニメーションclip作成
モーション作成
この情報は助かった、C#で複数行の文字列が定義できる。
C#でヒアドキュメントmagelixir.wordpress.com
オブジェクトの生成
void Update(){
//スペースを押したら
if (Input.GetKeyDown (KeyCode.Space)) {
//Instantiate( 生成するオブジェクト, 場所, 回転 ); 回転はそのままなら↓
Instantiate (target, new Vector3 (1.0f, 2.0f, 0.0f), Quaternion.identity);
}
自動制御関連
http://gomafrontier.com/unity/1510
キーボード入力関連
https://docs.unity3d.com/ja/current/ScriptReference/KeyCode.html
実機でのテスト
https://unity3d.sakura.ne.jp/unity/unity-for-ios.html
ゲームデータ保存
Unity Error Fix 〜InputFieldのインスタンスが取れない~
以下のようなエラーが出ます。
NullReferenceException: Object reference not set to an instance of an object
ConsoleWindow.Awake () (at Assets/Script/ConsoleWindow.cs:14)
<Code>
public InputField inputField;
public InputField inputField;
private string commandStart = "コマンド: >";
// Use this for initialization
void Awake () {
Debug.Log("ConsoleWindow.Start");
inputField.onEndEdit.AddListener(AcceptStringInput); InputComplete();
}
上記の赤色の部分で落ちます。
まぁトーゼンですわな。。。インスタンスも参照も取得してないし(笑)
で、inputField(変数)のインスタンス or 参照を取得する方法がわかりませんでした。
そして、ここのサイトにありました。
GameObjectの宣言は必要なく、直接「GetComponent()」で呼び出しができるので
「initialsObject」は必要ありませんでした。
→inputField = GetComponent<InputField>();で取得できました。
-
-
public GameObject initialsObject; // この行はいらない
-
InputField initialsField;
-
Text initialsFieldInput;
-
-
initialsField = initialsObject.GetComponent<InputField>();
-
initialsFieldInput = initialsField.GetComponent<Text>();
-
}
-
-
public void otherFunction(){
-
// error: Object reference not set to an instance of an object
-
}
-
}
以上です。
Unity Component InputField 〜アタッチって何?〜
Unityの使用方法について調べていると「アタッチ」という言葉が出てきます。
下のようになっているところに。。。
下のように追加することです。「ConsoleWindow(Script)」
やり方はドラッグ&ドロップ、対象のファイルをドラッグ
ドロップしようとすると下のように色が変わります。結果は上の方にあります。
以上です。
Unity Error Fix 〜InputFieldが動かない~
テキストフィールドに入力を行おうとしたら
以下のようなエラーが出ました。
/***********************************************************************
GameObject is already being activated or deactivated.
UnityEngine.EventSystems.EventSystem:Update()
***********************************************************************/
色々調べたが、見つかりませんで。。。
でも「既に非表示にしたか表示済みの状態で同じ処理をしようとした」時に
同じようなエラーメッセージが出力された。という情報を見つけ
ピンと閃きました。以下の部分
・On Value Change とOn End EditでGameObject.SetActiveを設定していました。
下記のOn Changeの時には他の処理をしたかったので以下のように変更しました。
これでとりあえずは、エラーを解消できました。
以上でした。