マイペースなプログラミング日記

DTMやプログラミングにお熱なd-kamiがマイペースに書くブログ

Android

不定期的にAndroid

突然Androidアプリを作り始めた。まぁ、一部の人向けなので、大々的な配布は行わない模様。大々的に配布できるアプリをそろそろ作りたいものだが...

PMDファイルを無理矢理assetsやresに突っ込んで読み込ませた結果

microSDカードにファイル突っ込んで読み込ませると言っても、Androidでディレクトリ作ってファイル配置するのめんどいと思い、assetsやresに突っ込めないか?と思ってやったら突っ込めない事もなかった...が何かおかしい。原因はそのうち調べる

ListView面白い!

BaseAdapter継承してgetViewオーバーライドしてListViewにセット!面白い。ただgetViewの中でWeb上の画像などをImageViewにセットしようとすると、ListView内の画面外にある項目がスクロールで画面内に入るたびにWebにアクセスしてしまったので、前もってア…

久しぶりのAndroidとかその他

久しぶりにAndroidのView作りをした。OpenGLを使ってた時期を除くとどれくらいブランクがあることか。とりあえずListView用のAdapter作って、RelativeLayoutを使うなどした。RelativeLayout面白いけど設定間違えると悲惨なことになるな!あとUIスレッドでネ…

簡単なフレームワークっぽいものを作成中

Androidで簡単に3Dが使えるようなフレームワーク作りたいなーと思い作成中。頑張る

某掲示板の調子が悪いので

Androidで遊んでいます。新しい端末になったのでプログラムが動かなくなったりしたけど元気です

新しい端末で

新しいAndroid端末を購入したが、新しい端末でOpenGLの描画ができない!と思いきや GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT); としている部分があったが GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT | GLES20.GL_DEPTH_BUFFER_BIT); にしたら動いた!と…

久しぶりのAndroid

久しぶりにAndroid弄ろうと思いeclipseを立ち上げ今まで作ってきたプロジェクトをビルドして、実機で起動しようと思ったら何か設定が変わってたのか動かなかった。結局原因がわからないまま実行できるようになったので、何が何だが...新しいAndroid端末304SH…

AndroidでLAT式ミクさん表示したので

次はアニメーションやる

まだスペキュラーがないけど

モデル表示は完成に近づいてきた?アニメーションが大変そう

画像のサイズ!

テクスチャ画像のwidthとheightが2のべき乗じゃない部分があって、今まで読みこめてないテクスチャがあることに気付いた。今まで目が黒かったのはそのためだったか

いろいろ順番間違ってる感じがするけど

MMDのモデル表示は進んでいます。あともう少しでモデル表示が終わって、アニメーションに突入する予定です。さぁ、頑張ろう!

ようやく続きができた

AndroidでOpenGL ES 2.0を使ってMMDのモデル表示をやろうとしながら、今まで全然作業が進んでなかったが、今日、ようやく手が進んだ。明日は...いそがしくなりそうなので、進まない可能性が。まぁ、いいや。のんびり進めよう

さて本気出さないと

シェーダはRubyのおかげで固まった感じだけど、まだAndroidだと描画部分まだ書いてなかった。早くやらんとな

シェーダの読み込み部分を作った

やっつけなんで例外処理が適当だけど。もう少し頑張ったらシェーダ読み込む。ShaderExceptionは自分で作った例外クラス。まだ使ってないので動くか不明 package net.d_kami.mmd.reader; import java.io.InputStream; import java.io.InputStreamReader; impo…

よし、再開

全然やらずに止まってたけど再開した。ByteBufferが大活躍中だけど、速度はどうなんだろう?getFloatとかgetIntなどがデフォルトでビッグエンディアンなのでリトルエンディアンにする必要があるけど、バイナリファイルをFileChannelを使ってByteBufferまで持…

読み込み途中

今日(昨日?)はPMDの読み込み途中で終了した。取得したのは ヘッダ 頂点リスト 面頂点リスト 材質リスト ボーンリスト IKリスト の6項目。早く表示まで辿り着きたい。そしてアニメーションやって物理演算やって...夢が膨らむ

物理エンジン

MMDではモデルやモーションにもよるが、ほとんどの場合、物理演算がないと悲しい結果になることがわかった。私の技術ではRubyでMMDをもう高速化できそうにもないので、別の環境でやろうと思っている。その環境の候補がAndroidなのだが、パソコンのRubyに比べ…

そのまま流せば良かったんだ

当然のことに気付かなかったが、端末から受け取るレイヤーと外に送信するレイヤーが違っても、ヘッダだけちょっと弄ってあとはそのままで良かった感じ。ヘッダをちょっと弄るといってもTCPだと死ねそうだけどね。それでDNSの外に向かうパケットは処理で来て…

もう続かないかもしれないのでVPNService使ったコードを晒します

VPNServiceを使ったソースコードを公開します。起動するとネットに繋がらなくなるけど、端末から飛んでいくパケットが途中まで(現在最初のパケットのみ)見れます。VPN関係のライブラリの使い方が正しいか不明。Android 4.0からが対象。また、AndroidManifest…

モデル読み込み

何かライブラリがあれば...と思っていたが見つからなかったので過去に自分で作ったメタセコイアのモデルを読み込むやつを使うか。我ながら酷い出来だ。色使えないし、テクスチャ使えないし。構造無視だし

文字列で起動するActivity指定

何の役に立つかはわからんけど、設定ファイルに起動するActivity書いておいて、Go!かな?ちなみに、この処理はあるActivityに書いてあるので、Intentのコンストラクタにはthisが指定されている Class c = Class.forName("net.d_kami.test.TestActivity"); I…

IPヘッダの解析にByteBufferを使ってみた

前回はbyte[]でやってたけど、ByteBufferを使うようにしてみた。ByteBufferだとgetShortがあるのでちょっと楽できた public void set(ByteBuffer packet){ int first = packet.get(); version = (first >> 4) & 0x0F; headerLength = first & 0x0F; serviceT…

うお、IPヘッダクラス書き直し!

byte[]でやってたけどByteBufferの方が良さそう。intとかshortでも値を取れるし、先頭から順番にアクセスしていくからポジションが変わるのもよい。何よりビット演算が減らせるのは嬉しい。でも微妙に残ってしまうんだよな

相手からの応答は来たけど...

VpnService使ったAndroid端末とのやり取りはIP層からのやり取りで、接続先とのやり取りはTCP上かUDP上(両方ともヘッダ無し)のやり取りみたいね。だから、接続先からの応答はTCPヘッダ又はUDPヘッダとIPヘッダを付与してからAndroid端末に渡すっぽい。そしてA…

DNS...

VpnServiceを使って、Android端末からのパケットは受けとることができた。IPパケットを取得、その上にはUDPで送信先ポート番号は53!DNSだった。それをVpnServiceでprotectしたDatagramChannelで送信。これで応答が返ってくると思いきや無反応...なんてこっ…

IPヘッダを表すクラスを作成してみた

VpnServiceを使ってIPパケットを取得できたのでIPヘッダを表すクラスを作成した。読み込んだパケットをsetする。ちょっと長くなってしまった。最初の来るパケットはUDPっぽいので次はUDPヘッダクラスを作成する package net.d_kami; /** * IPv4ヘッダを表す…

VpnServiceで見れるのは...

4.0から導入されたVpnServiceで見れるレイヤーはIPからっぽいな。どこかの情報でEthernetフレームを取得できてそうなことが書いてあった気がしたがそんなことはないようだ?Ethernetフレームタイプを表示させたら見事IPアドレスの一部だった

Android 4向けのアプリを作って公開したい

Android4をちょっと調べてみたら面白そうな機能が追加されてたので何か作ってみたいな。使い方がわからないライブラリがあるのでGoogle先生とサンプルを見ながら勉強していきたい

せっかく4.0が入ってる端末を持っていることだし...

4.0の新機能を使って作ってみようか