flabaka
札幌でひとりMt.Flashしてみた
外はマイナス2度とか言ってるし、家の周りは雪ががっつり積もってる。
猫は炬燵で丸くなるじゃないけど、このままでは食っちゃ寝の自堕落な生活に陥りそうだったので、NAC札幌というクライミングジムに行ってきました。
Google先生情報によると、このジムはトップロープエリアがかなり充実しているみたいですが、今回は(ハーネスを持ってきていないし、一緒に行ってくれる人がいなかったので)ボルダリングのみでの利用でした。
終日利用しても、料金は1300円とか…(安っ!)。
札幌の相場って、このくらいなんですかね?
いつも行っているジムと比べると(ボルダリングエリアは)それほど広くなく、テープ課題の量も少なかったですが、その分変化に富んだ壁が多く、結構楽しめました。
休み期間の間に、あと1~2回行っちゃおうかなぁ…とか思ったり。
当初、石山緑地のボルダ壁も見に行こうかな? とか思っていたんですが、雪が積もっているので今回は断念。
- Comments: 2
- Trackbacks: 0
AwayPhysicsを使って衝突判定をしてみる
- 2011-12-03 (土)
- Away3D
Away3D 4とAwayPhysicsを使って衝突判定をしてみました。
AwayPhysicsは、GitHubからダウンロードしました。
AwayPhysicsのサンプルの中にあるGravityTest.asを、ちょっと古いWindowsXPのマシンで動かしてみたら、FPSの値が一桁しか出なかったり…
マシンによって、かなりの速度差がありますね。
ソースは、ここに置いておきます。
もっといい書き方がありそうだけど、最初なのでこんなところで…
しばらくAwayPhysicsで遊ぼうっと!
★追記(2011/12/04)
オブジェクト(球体)の数を増やすとFPSがどのくらい出るのかを検証してみたので、追記しておきます。
2年くらい前に購入したWindows7の安いノートPCでの結果です。(細かい数値は切り捨て)
| オブジェクト数 | FPS | ポリゴン数 |
|---|---|---|
| 100 | 60 | 6万 |
| 250 | 50 | 15万 |
| 500 | 25 | 30万 |
- Comments: 0
- Trackbacks: 0
enableParserを使って、ファイルサイズを抑えてみる
- 2011-11-28 (月)
- Away3D | FlashDevelop
前回のエントリで、以下のようなコードがありました。
Parsers.enableAllBundled();
enableAllBundledを使うことで、各種ファイル形式のパーサーを一度に読み込んで使えちゃうんですが、これだとファイルサイズが肥大化してしまうみたいです。
away3d.loaders.parsers>Parsers.asファイルに、英語のコメントが書かれています。
ざっくり意訳してしまうと、以下のような感じになるかと…
enableAllBundledを使うと、全てのパーサークラスを読み込んでいるので、SWFのファイルサイズが50~100KB増えちゃいます。読み込むファイル形式を制限して、個別にAssetLibrary.enableParser()を使ってあげると、SWFのファイルサイズはいい感じになりますよ
検証してみた
SWFのファイルサイズがどれだけ違うのか、検証してみました。
検証したデータは、先の英語の記事からDL出来るもの(Loader3Dを使って.awdファイルを読み込む)です。FlashDevelopを使って、デバッグとリリースの両方で試してみました。
//Parsers.enableAllBundled(); //enableAllBundledではなく、個別にファイルを読み込む Loader3D.enableParser(AWDParser); Loader3D.enableParser(AWD2Parser);
| デバッグ | リリース | |
|---|---|---|
| Parsers.enableAllBundled() | 255K | 113K |
| Loader3D.enableParser(AWDParser) | 210K | 92K |
| Loader3D.enableParser(AWD2Parser) | 204K | 90K |
サンプルではLoader3Dを使っていたので、それで検証してあります。
AWDParserとAWD2Parserでの違いですが、AWDParserはAWD1ParserとAWD2Parserのラッパークラスなので、その分若干ファイルサイズに違いが出ているっぽいです。
- Comments: 0
- Trackbacks: 0
FlashDevelop 4とAway3D 4でStage3Dを試してみる
- 2011-11-26 (土)
- Away3D | FlashDevelop
FlashBuilder4.5とAway3D 4を使ってStage3Dを試す方法が、Developer Connection(US)に掲載されています。
この記事をFlashDevelopで試してみることに…
FlashDevelopのセッティング
FlashDevelop側のセッティングですが、簡単です。
FlashDevelopをインストールする際、FlashPlayerにチェックを入れておくと、FlashPlayerも同時にインストールしてくれます。
デバッグ版のFlashPlayerも一緒にインストールしてくれるので、後で別途インストールしなくていいので、楽チン!(インストールにかなり時間は掛かりますが…)
あとFlashBuilderだとglobalplayer.swcをダウンロードして…とかしなければいけませんが、FlashDevelopはインストールの際にDevelop側が勝手にやってくれます。
params.wmode = “direct”;もFlashDevelopでは、デフォルトでその設定になっています。
プロジェクト設定から、対象プレイヤーをFlashPlayer11に変更しておきます。
コンパイラオプションの設定を追加しておきます。(-swf-version=13)
Away3D 4をダウンロード
先の記事に書かれているGitHubにあるAway3Dのページから、ソースをダウンロードしてきます。
Away3D 4をやってみる
ソースコードなどは先の記事に詳しく書かれているので、ここでは割愛しますが、コード内に以下の記述があります。
Parsers.enableAllBundled();
これを記述することで、away3d>loaders>parsersの中にある以下のクラスが使えるようになります。
- AC3DParser
- AWDParser
- Max3DSParser
- MD2Parser
- MD5AnimParser
- MD5MeshParser
- OBJParser
これにより、.awd、.3ds、.objファイルなどを扱えるようになります。(TweenerのSpecial Propertyみたいな感じですかね?)
この記述を書かないと、エラーが発生します。
本当にStage3D?
きちんとStage3Dで動いているのかな? と思いますよね?
日本のDeveloper Connectionに以下の記事が掲載されています。
- Stage3Dコンテンツ制作入門(@clockmakerさん)
記事内のイラストを見ると、DisplayObjectが最前面にあって、その後ろ側にStage3Dのレイヤーがあるそうです。
先のAway3Dのコードに、以下の記述を追記してみます。
//初期化あたりに書いておく _sp = new Sprite(); _sp.graphics.beginFill(0x00FF00); _sp.graphics.drawRect(0, 0, 800, 600); _sp.graphics.endFill(); addChild(_sp); //この後にAway3Dの記述があります
これを実行すると、画面全体が緑一色になります。
最前面のレイヤー(DisplayObject)に緑のBOXが表示されているからですね。
//初期化あたりに書いておく _sp = new Sprite(); _sp.graphics.beginFill(0x00FF00,0.2); //以下略
これを実行してみると、DisplayObjectの背後のレイヤーでStage3Dが動いているのが理解出来ます。
Away3DのView3Dクラスの中を見ると分かるのですが、away3d>core>managers>Stage3DManagerやaway3d>core>managers>Stage3DProxyを使うことによって、Away3Dの描画処理をStage3D側で行う設定になっているみたいです。
- Comments: 0
- Trackbacks: 0
Away3Dのテンプレートを作ってみた
- 2011-11-22 (火)
- Away3D | Away3DLite
Away3DLiteには、away3dlite>templatesフォルダの中に、Away3DLiteを始めるのに簡単なテンプレートファイルが幾つか入っています。
これを使うことで、ちょっとAway3DLite試してみるか…といった事が簡単に出来ちゃいます。
でもこのテンプレートファイルは、Away3Dにはないんですよねぇ…
前々から「Away3Dにもテンプレートファイルがあったら、便利だよなぁ」と思っていて、日曜日にFlashup 第12回に参加してきたこともあったので、テンプレートファイルを作ってみました。
作ったと言っても、(Away3DLiteと同じ感じで使えるようにする為)8~9割はAway3DLiteのテンプレートと同じコードなんですけど…
ダウンロード
使い方
BasicTemplate.asというファイルをダウンロードしてきて、同一階層にMainというクラスファイルを作成。
package
{
import away3d.primitives.Cube;
/**
* @author flabaka
*/
public class Main extends BasicTemplate
{
private var cube:Cube
override protected function onInit():void {
cube = new Cube();
scene.addChild(cube)
}
override protected function onPreRender():void {
scene.rotationY += 2;
}
}
}
これをコンパイルすると、Cubeがくるくる横に回転します。
ちょっと試したいんだけど、View3DとかScene3DとかCamera3Dとか毎回作るの面倒くさいよね! って人には、ちょっとだけ便利かも…
それは、まぁ、僕なんですけど…
- Comments: 0
- Trackbacks: 0
- Search
- Feeds
- Meta








