スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

簡易SL4Aシミュレータ

初アプリ開発、HTMLの基盤も出来たし、そろそろ中身を作っていきます。中身はPythonで作っていきます。

AndroidではSL4A (Scripting Layer for Android) というスクリプト言語を実行させる環境アプリがあって、この上でPythonが動かせる。GUI機能はないのだけど、WebKitが使えるので、GUIをHTMLで構築し、JavaScriptを使って、Pythonとデータの受け渡しが出来るとのこと。しかもアプリとして出力できる。


情報源はこの記事。

Python で Androidアプリをセルフ開発 ( sl4a と、AIDE を 使って Pythonスクリプトをスマホ上で独立Androidアプリに変換)
http://keitaiseikatsu.blogspot.jp/2013/07/python-android-sl4a-aide-pythonandroid.html


前にやったことあるけど、もう一回試してみよ・・・・・あ、あれ!?全然動かない。。。


どうやらAndroid5.0以降、動かなくなっているよう。あいやー。

検索すると、パーミッションエラーとかなんかで、SDカードじゃなくて内部ストレージに移したらOK云々ありますが、僕がアプリを完成させるより、SL4Aのアップデートの方が早いと期待して、色々試すのは後にします。

Android5.0.2でSL4AのPythonは起動不可能?
http://blog.livedoor.jp/kikwai/archives/52137963.html

sl4a permission issue after android upgrade
http://stackoverflow.com/questions/27227386/sl4a-permission-issue-after-android-upgrade

執筆時のバージョン
sl4a_r6.apk
python3forandroid_r6.apk

というのも、一々ファイルを実機に移してコンパイルして動作確認しながら開発なんて煩わしいので、シミュレータ上で動作確認を行うから、とりあえず実機で動かなくても開発はできる。

ただし、SDKに含まれるAndroidのエミュレータは激重なので、ネットブックでも動く簡易的なシミュレータを作ることにしました。

ただ、実機で動かせないのは、モチベーション的に痛い。その上に、今回は自作シミュレータなので全然動作が違ったなんてリスクも。。。:(


SL4AのAPIがすべて動作する完全なシミュレータを作ろうと思ったら、それこそアプリどころじゃなくなるので、簡単なものを目指します。

上記の記事(Python で Androidアプリをセルフ開発)のサンプルで出てくる関数は4つ。

Python側 android.eventPost()
Python側 android.waitEvent()
Javascript側 android.eventPost()
Javascript側 android.registerCallback()

この4つが動作すれば、GUIとのデータのやり取りは出来るので、大抵のことは何とかなるんじゃないかな、との予想のもとに、これらの関数だけ擬似的に動作するシミュレータを作ることにしました。

どん!

GUIにはPySideを使っています。

色々強引です。別にAndorid上での操作を完全再現したいわけじゃないんだ。細かい修正は実機でやるとして、大まかに作り進めるためのもんだから。動きゃいいんだ、動きゃ。


理想は、上の記事のサンプル(index.htmlとscript.py)がそのままで動作することだったんですが、ちょっと諦めました。

初めはその発想で、HTMLの動作を常時確認するスレッドと、script.pyを常に回すスレッドのマルチスレッド式にしたのですが、スレッド内からWebKitのJavascriptを実行させようとすると、メモリの重複やらなんやらでPythonが落ちてしまうことがわかって、上手い解決を見出せませんでした。

特定のファイル(debug.txt)があるときと無い時の分岐を加えて無理やり動作させています。


細かい使い方なんかは、後日ウェブサイトの方に専用ページを作るつもりでいますが、いつになるか分からないので、使いたい人がいらっしゃいましたら、コメントしてください。

これで開発は進められますが...、やはり実機で試したいなぁorz


それにしても、JavaScriptの開発はデバックがホント大変。可能な限りPythonで書こうっと。
スポンサーサイト

Javascriptでスプライトシートアニメーション

気が付けば、今年の挨拶をすることなく、すでに2月。今更ながらあけm、・・いや、もうやめておこう。
ちなみに正月休み等の連休もメインPCを1回も起動することなく終わってしまいました。ネットブックはかろうじて開くんですけどね。

そんな中、とりあえず何をしているかというと、ゲーム製作はそっちのけで、取りあえず何か公開・配布できるものを作ろうと思ってアプリ製作に注力しています。あ、いや、することにしました。いつからって?さっき。

メインPCでしか動かないような大型開発環境では続かないということは分かっているので、ネットブックで動く開発環境でというと、HTML、Javascriptを主体とするしかない。

そして、久々の一人の休日、一日かけて出来たのがこれ。
《クリックエフェクトアニメーション》
http://tiblab.net/programming/javascript/touch-effect/
クリック(またはタップ)すると、薄緑の円が抜け出せないほわ~んとアニメーションします。

ダウンロード
http://tiblab.net/cgi-bin/download/?id=touch-effect


いや、待って。何でこれなんだ!っと言う疑問はひとまず置いといて、実はこのほわ~んは下のスプライトシートと呼ばれる画像を使用するんですが、この画像自作です。
touch_effect.png

何で作ったかと言うと、Blenderです。いやー、久々に使いましたね!Blender!
最初はフリー素材探してたんですが、案外ないものですね。



続きを読む

ワークロガー

新しいPC購入後、結構PCに向かっている気はするのだけど、自分がどんなことに時間を使ったのかイマイチわかってません。前々から把握出来たらなぁなんて思っていたので、作業時間を記録するロガーを作ってみました。

up_201404191559114f0.jpg

開始時間と終了時間をテキストファイルに保存するだけの単純なソフト。どこまで活用されるかはわかりませんが^^;

使用言語はC#。C#とJavaはよく似ているので、どちらかが出来ればもう片方もすぐ出来る、と巷では言うのだけれど、僕にはどうにもJavaは難しく感じます。Androidの開発環境とかもC#だったらよかったのになぁ。

自前ダウンローダ作成

絵・動画・アプリケーション等々、自作のコンテンツを作成している人は、そのコンテンツを配布する際にどうやって配布するか考えると思います。

最近は無料のファイルストレージサービスでも、かなりの容量を保存できるものがありますのが、多くのサービスは1ファイルのサイズ容量に制限があります。

小さなファイルを配布する際には問題ないですが、動画など大きなファイルを配布したい場合には、有料サービスを利用するか、大容量ファイルでも短期的に保存できるサービスに継続的にアップロードし続けるか、お金か手間かがかかってしまう場合も少なくないかと思います。

そんな時、ファイルを細かく分断してアップロードし、それらをダウンロードしながら結合する自前のダウンローダソフトウェアを作っちゃおうっという企画です。

サーバー提供側からすると、やられたくない方法なので、あんまり大きな声では言えませんが^^;


プラットフォーム:Windows

続きを読む

ランチャー(ショートカット)プログラムの作成

特定のソフトウェアで、特定のファイルを開かせる(役割としてはショートカットと同じ)ようなソフトウェアを作るための記事、もとい、リンク集です。そんな需要があるのかな

言語:C、C#

~作ろうと思った経緯(前置き)~
あるソフトウェアで作った自分のプロジェクトファイルを配布するとき、そのソフトウェアを同封し、クリック一つで、プロジェクトファイルを同封したソフトウェアで開くようにしたかった。

わかりにくいですね。

具体的に言いますと、Blenderというゲームを作れるソフトがあるのですが、Blenderには実行ファイル(exe)の書き出し機能はあるものの、現時点の完成度はいまいちなので、Playerソフト(BlenderPlayer)で製作したプロジェクトファイル(ゲーム)を開いてもらうのが無難なのです。操作としては、作成したプロジェクトファイル(blendファイル)をPlayerソフト(BlenderPlayer.exe)にドラック&ドロップすることで、ゲームがスタートします。そこを1クリックでゲームを始められるようにしたかった、ということです。

あと、プロジェクトファイルには独自のアイコンをつけることは出来ませんから、実行ファイルにすることで、自作のアイコンにして、オリジナル感を出したかった。

さらに、exeファイルでゲームを出力すると、Blenderの仕様上、dllファイル等のファイルをexeファイルと同じフォルダにたくさん置かなければならならず、フォルダ内がゴチャゴチャしてしまうので、それらをサブフォルダに追いやって、すっきりさせたかった。

要は、Windowsのショートカットと同等のことがしたかったのだけど、ショートカットは相対パスで指定することが出来ません。ただ、バッチファイルを使ったり、そういうフリーソフトを使ったりで出来ないことはないようです。
参考:ショートカットを相対パスで指定する(http://d.hatena.ne.jp/foohogehoge/20081020/1224480568

です、が、オリジナルアイコンで配布したいじゃないかー

っと、配布するものも無いのに、そういう妄想にかきたてられたので試しました。ふー、長い前置きでしたね。。。

続きを読む

メールで家計簿をつけるための集計スクリプト

家計簿つけなーっと思い立ち、携帯メールで日々の出費を記帳したいと思い、特定のメールに書かれている本文を表にして集計し易くするスクリプトを書きました。Python触るの久々~

プログラム言語:Python2.6.2
対象メールサーバ:Gmail

目的:
-------
食品 100
外食 550
雑貨 210
-------
こんな日々のメールを、1ヵ月貯めた後で自動でまとめるスクリプト。まとめると言っても、表にするだけですけど。表にしたあとはExcelなどの表計算ソフトで集計すればいいやってもの。

続きを読む

ニューラルネットワークのべんきょー

やろうやろうと思ってなかなか手を付けられなかったニューラルネットワークにようやく手を出しました。

こちらの本のソースをPythonに書き換えて試してみました。ちゃんと組めているかは些か怪しいですけど。

ゲーム開発者のためのAI入門

続きを読む

このブログについて
□ ブログ内容
決まった趣旨はありません。
興味を持ったこと・日常で行ったことを何でも書きます。

3DCG・プログラミングなどが多めです。

□ 現在の活動
・ウェブサイト制作
 (http://tiblab.net)
・3Dゲーム制作
 (コックパニック)
検索フォーム
ユーザータグ

Blender キャプチャ blendファイル BGE Python GameEngine ムービー Android CG  Red5 Terragen C# C++ 

カテゴリー
プロフィール

TiBra

Author:TiBra
趣味でCG制作、プログラミング等を行っています。メイカーズに憧れています。

ネットを通じた交流を広げたく思っていますので、コメント・メールはお気軽にどぞー

戯言程度のことは、こちらのブログに投稿しています。基本戯言なので、実質移転しているようなものです。

Mail:tibraあっとlive.jp
HP:TibLabmemocode
動画:VimeoFC2動画ニコニコ
ファイル:SkyDrive
企画:3Dゲーム作業実況

Blogリンク
不都合がございましたらご連絡ください。
当ブログのリンクバナー
FC2 ID
FC2カウンター
RSSフィード+解析コード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。