ブログを引っ越しました!!
bao_bao_blog
http://d.hatena.ne.jp/bao_bao/



このサイトとも分かれの時がやってきました。
ロリポおじさんには結構長い間お世話になってしまってます。かれこれ、無駄に5年くらいはお世話になっているかなー。

結果からいうと、はてなに引っ越します。
http://d.hatena.ne.jp/bao_bao/

このレンタルサーバー自体は、まだ活用しなければならない理由の為、残っていきますが(このブログの過去記事も)。
だらだら書いてるmixiの日記は除外して、それ以外の、まだためになる事は全てはてなに持っていきます。

[理由]
カテゴライズして記事を書いていこうとしましたが、あまり広げすぎると、モチベーションが下がってあまり更新しなくなるという事が分かりました。

当分は、はてなに活動の記録を残していこうと思います。

今まで、verBetaをありがとうございました。
続きははてなで。


投稿者: ||bao_bao||
comments (3) trackback (0)

ブログを引っ越しました!!
bao_bao_blog
http://d.hatena.ne.jp/bao_bao/



Spark progect http://www.libspark.org/ を運営されているyossyさんが公開されているThreadライブラリ(コードネーム:そうめん)のワークショップに参加させていただきました。 詳しくは、僕の公式のブログ記事 下の写真は、懇親会でのそうめん料理(この日限定)。
投稿者: ||bao_bao||
comments (0) trackback (0)

ブログを引っ越しました!!
bao_bao_blog
http://d.hatena.ne.jp/bao_bao/



Papervision3D 2.0(GreatWhite)導入時のメモ。 Papervision3D 2.0(GreatWhite)を使ってようと思って、ここからダウンロードして、パスを通して、コンパイルしたところ、以下のようなエラー。
「TriangleMesh3D.as override としてマークされたメソッドは、別のメソッドをオーバーライドする必要があります。」
とエラー。 試行錯誤の結果。Papervision3D 1.5のパスを切ったらコンパイル成功した。
投稿者: ||bao_bao||
comments (0) trackback (0)

ブログを引っ越しました!!
bao_bao_blog
http://d.hatena.ne.jp/bao_bao/




遅ればせながら、papervision3Dを使ってみました。
使った感想は、


面白い!!


思ったより簡単。

まだ、基本中の基本しかやってませんが、blogを読んでるといろいろなことが出来そうです。
とりあえず今回は、ポイントをメモして今後の作業に生かします。

以下がソース

package
{
import flash.display.StageAlign;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;

import org.papervision3d.objects.Cube;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.materials.BitmapFileMaterial;
import org.papervision3d.objects.Plane;
import org.papervision3d.scenes.Scene3D;

public class Main3D extends Sprite
{

var container:Sprite;
var scene:Scene3D;
var camera:Camera3D;

var obj:Cube;
var objSize:int = 300;
var segment:int = 1; //分割数

private var valX:Number = 0;
private var valY:Number = 0;

// コンストラクタ
public function Main3D():void {
//ステージ設定
stage.frameRate = 60;
stage.quality = "BEST";
stage.scaleMode = "noScale";
stage.align = StageAlign.TOP_LEFT;

initialize3D();
}

function initialize3D()
{
trace("initialize3D実行");
container = new Sprite();
addChild(this.container);

//containerの位置
container.x = stage.stageWidth / 2;
container.y = stage.stageHeight / 2;

//3Dシーン生成
scene = new Scene3D(container);

//カメラの作成+設定
camera = new Camera3D();
camera.z = objSize;
camera.focus = 500;
camera.zoom = 1;

//マテリアルの設定
var material:BitmapFileMaterial =
new BitmapFileMaterial("map.jpg");
material.doubleSided = true;
material.smooth = true;


//cubeオブジェクトの生成
obj = new Cube
(material, objSize, objSize,objSize, segment, segment);

scene.addChild(obj);

addEvent();
}


private function addEvent():void
{
this.addEventListener
(Event.ENTER_FRAME, update3D);
this.addEventListener
(Event.RESIZE, onResizeStage);
}

private function update3D(evt:Event):void
{
valX += this.container.mouseX/50;
valY += this.container.mouseY/50;
obj.rotationX=valX;
obj.rotationY=valY;

//レンダリング
scene.renderCamera(camera);
}

//リサイズ処理
private function onResizeStage(evt:Event):void
{
container.x = this.stage.stageWidth/2;
container.y = this.stage.stageHeight/2;
}
}
}

作業の順番は、


1.シーンを作成

2.カメラの作成+設定

3.マテリアル設定

4.オブジェクトの作成

5.レンダリング

という流れ。

インポートするクラスは、以下

//シーン作成するためのScene3Dクラス
import org.papervision3d.scenes.Scene3D;
//オブジェクトをキューブにするCubeクラス
import org.papervision3d.objects.Cube;
//カメラのCamera3Dクラス
import org.papervision3d.cameras.Camera3D;
//マッピングするためのBitmapFileMaterialクラス
import org.papervision3d.materials.BitmapFileMaterial;

1.シーンを作成
//Scene3Dクラスの引数に表示オブジェクトを入れる

scene = new Scene3D(container);

2.カメラ作成+設定
//カメラを作成

camera = new Camera3D();

//オブジェクトとの距離(z軸)
camera.z = objSize;

//焦点(値を小さくすると、広角レンズになります。
camera.focus = 500;

//ズーム
camera.zoom = 1;

3.マテリアル設定
//マップのファイルを引数にとる

var material:BitmapFileMaterial =
new BitmapFileMaterial("map.jpg");

//ポリゴン表裏どちらもレンダする。(falseにすると、裏面が透明になる。キューブの場合、表面しか見えてないため、見た目の影響は無し)
material.doubleSided = true;

//マップにスムースを適用するかどうかの設定
material.smooth = true;

4.オブジェクトの作成
//オブジェクトを作成する。引数は以下
/*
第1引数:マテリアル
第2引数:幅
第3引数:奥行き
第4引数:高さ
第5引数:ポリゴンの分割数
第6引数:ポリゴンの分割数
第7引数:ポリゴンの分割数
*/

obj = new Cube
(material, objSize, objSize,objSize, segment, segment,segment);

//シーンインスタンスにオブジェクトをaddChildする
scene.addChild(obj);

5.レンダリング
//レンダリングする。ここでは、エンターフレームイベントで毎フレームレンダリングする。

scene.renderCamera(camera);

プリミティブなオブジェクトの種類は、
Plane:板
Cone:円錐
Sphere:球
paperPlane:紙飛行機(サイズしか変更できない)
Cylinder:円柱
Stars:星(パーティクル)

ブログとか読んでると、モデルデータを読み込んだり、シェーディング(陰影)がつけれたり出来るらしい。ちょっとこれは、僕は突っ込んでやってみたいと思います。


ちなみに以下のサイトを参考にさせていただきました。
http://www.thinkit.co.jp/article/91/3/


投稿者: ||bao_bao||
comments (0) trackback (0)

ブログを引っ越しました!!
bao_bao_blog
http://d.hatena.ne.jp/bao_bao/



ステージ上に描画したものをMCシンボルにして、そのMCにスプライトをaddChildAtしたときの自分用メモ。

mc.addChildAr(sprite,0);

index(第2引数)を0にすると、スプライトは、MCの背面にいっちゃう。
1にすると前面に来る。



投稿者: ||bao_bao||
comments (0) trackback (0)

ブログを引っ越しました!!
bao_bao_blog
http://d.hatena.ne.jp/bao_bao/



先日のsparkProject勉強会#1に参加させていただきました。
僕にとっては、かなり高度なお話で勉強になり、いい意味で焦りと不安を感じさせていただき、ありがとうございました。

で、その刺激から実行しようとしたことは、制作に入る前にprogressionとそうめんを理解しようということです。どちらも、サイト作りの効率化をあげてくれます。なので、現在進行中のサイト作りは、ちょい中断して、まず、progressionの勉強をしようと思います。

リファレンス、チュートリアル見ても、結構さっぱりな感じなのですが、試行錯誤して、ちょっと理解。メモとして、書き残していきます。

まず僕が引っかかっていたことは、シーンと表示オブジェクトをごっちゃに考えていたところ。

Scene01というクラスのミス記述。

package myproject.scene
{
import jp.progression.scenes.SceneObject;
public class Scene01 extends SceneObject
{
var sp:CastSprite;
function Scene01(name:String)
{
super(name);
sp=new CastSprite();
sp.graphic.beginFill(0x000000);
sp.drawCircle(100,100,100);
sp.endFill();
}
protected override function _onInit():void
{
this.addChild(sp);
}
}
}

thisは、シーンで表示オブジェクトじゃない・・・・。

progression.container.addChild(sp);

で表示されるようになりました。


今日もう一つわからなかったこと(他にもわからないことだらけですが)。
Flashのリンゲージ設定したシンボルの配置の仕方。

リンゲージプロパティのクラスの項目で、任意のクラス名を書き、別途クラスファイルを作成して、表示オブジェクトにaddChildすれば表示されて解決。

たぶん、すごく単純なことなんだろうけど、表示された!!って喜んでしまいました。


しかし、このようなフレームワークを作るnium先生はすごいなと思いました。


投稿者: ||bao_bao||
comments (0) trackback (0)

News

正式なブログを始めました。ActionScriptは鉛筆デッサン お金がなくなったので、アカウント停止を食らいました。m(__)m http://bao-design.com/">http://bao-design.com/