Category Archive: Alternativa3D

[iPhone][Alternativa3D][AIR]AIR for iOSでシンプルな3Dゲームをリリースしました。

メモ記事を書いてましたが先週やっとiPhoneアプリとしてリリースしました。

Live with the Wind.
support site
itunesStore

初めてFlash:Air for iOS(AIR3.3SDK)で作ってみたよ。
3DエンジンにはAlternativa3D(8.17.0)を使用したよ。

もろもろ苦戦したことは以前公開したStage3D勉強会#2の資料に書いたので興味ある方は読んでみてください。


■実装以外でのゲーム性について
▼気持ちよさの工夫
BGMのBPMに連動するような動きを意識
→風を連続で取ったときの効果音がBPMと連動するようにスピードを調整
→風車の首を降り始めは曲調が変わるタイミング
→あと風車が首を振るときのスピードもBPMと連動するような

▼飽きさせない工夫
上昇気流だけを取り続けて飛ばれるとゲームオーバーになりにくいが緊張感なくなりゲームが単調になる
追い風も取らせて緊張感のあるゲーム展開にしたい
→上昇気流だけを取りつづけた場合は無理ゲーになるような設定に。
 (風車の背がどんどん伸びていく)
→2種類のコンボ要素の追加
 (コンボを続けると風車の背が伸びにくくなるようにしている)
※「上昇気流を取る→風車がのびる」という部分がルール的には判りにくくなってしまったのでヒントの項目に記載したけど理解できてない人も多いかも。。

▼操作性について
iPhoneアプリというと傾きセンサーだけど今回は無しで。
プレイヤーが学習してやりこみ性あるゲームにしたかった。
傾きセンサーでは細かいコントロールができないので運要素が増えてしまう
個人的に思うようにコントロールできないのは嫌い、というのが一番の理由
あと電車でプレイしてる姿も少し恥かしくなるしね。


8月中は無料で9月から170円になりますので是非試してみてくださいまし。

※Flash製なので簡単にWEBおためしプレイ版も用意できますよ。
>FlashPlayer11.0
(音鳴ります)

[AS][Alternativa3D]Blender(2.6.3)で書き出したcollada(.dae)ファイルをAlternativa3Dで読み込むときの注意

教えて頂いたのでメモメモ

collada(.dae)ファイルって方言が多いようです。
Blender(2.6.3)で書き出したものをそのままAlternativa3Dの公式サンプル(parsersexample/ParsersExample.as)で読ませようとするとうまくできませんでした。
(公式サンプルに含まれているcolladaファイルは問題なく表示されるので、Blenderでのcollada書き出しがalternativa3D的にはイマイチみたい)


該当箇所はここの8行目

//parsersexample/ParsersExample.as内のonColladaLoadメソッド抜粋
private function onColladaLoad(e:Event):void {
	// Model parsing
	// Парсинг модели
	var parser:ParserCollada = new ParserCollada();
	parser.parse(XML((e.target as URLLoader).data), "parsersexample/", true);
	trace(parser.objects);
	var mesh:Mesh = parser.getObjectByName("Cylinder01") as Mesh;
	mesh.x = 0;
	scene.addChild(mesh);

	// Загрузка ресурсов
	uploadResources(mesh.getResources(false, Geometry));
	
	// Собираем текстуры и назначаем материалы
	var textures:Vector.<ExternalTextureResource> = new Vector.<ExternalTextureResource>();
	for (var i:int = 0; i < mesh.numSurfaces; i++) {
		var surface:Surface = mesh.getSurface(i);
		var material:ParserMaterial = surface.material as ParserMaterial;
		if (material != null) {
			var diffuse:ExternalTextureResource = material.textures["diffuse"];
			if (diffuse != null) {
				textures.push(diffuse);
				surface.material = new TextureMaterial(diffuse);
			}
		}
	}

	// Loading of textures
	// Загрузка текстур
	var texturesLoader:TexturesLoader = new TexturesLoader(stage3D.context3D);
	texturesLoader.loadResources(textures);
}

parser.getObjectByName(“Cylinder01″)でオブジェクトの名前を拾おうとしてますが、Blenderで書き出したcolladaファイルはこの名前が含まれていないのでエラーになります。
とりあえずはcolladaファイルの中身を以下のように修正すればOK。

<library_visual_scenes>タグの中<node id=”hoge” type=”NODE”>にid属性と同じ値を持ったname属性を追加。
<node id=”hoge” name=”hoge” type=”NODE”> こんな感じ
Blender側で用意したオブジェクトの数だけ修正してあげましょう。