2014年12月26日金曜日

ARFantasy制作過程115


「ARFantasyLocal」宣伝向け動画

人気ブログランキングへ
にほんブログ村 デザインブログランキング

2014年12月7日日曜日

ARFantasy制作過程112(解説)

0. コンセプト

基本コンセプトは一見ありきたりなロールプレイングゲームを完全にAR化したものを作ることです
25年くらい昔のファミコンのRPGくらいのボリュームのあるゲームで
イメージはなるべくいかにもファンタジーらしいものでオリジナリティはなるべく出さないようにするように
ドラゴンや魔法使いや妖精といったファンタジーでイメージするものをなるべくそのままAR化し
システムもなるべく昔のRPGのようにわかりやすくすることを心がけました
ARゲームというだけでもわかりにくくなりがちなので

1. 始め方

STARTボタンをタップして表示される騎士のボタンをタップするとカメラが起動します
起動したカメラで千円札の表左側を写すとオープニングが始まります


2. マーカー


メインマーカー=千円札の表左=一ドル札の裏中央=5ユーロ札の裏左=解説サイトの星形

アイテムマーカー=千円札の表右=1ドル札の表右=5ユーロ札の表右=解説サイトの取っ手

他には解説サイトの騎士の画像もメインマーカーですが他のマーカーとは視点が違います

マーカーの写し方のコツ:最初は正面から写して
ゆっくり近づけたり離したりしてください
また、背景が単一の色の方が初期トラッキングはしやすいです
一旦トラッキングが開始されればマーカーがカメラから外れなければ
色々な角度から見ることができます


3. 基本操作とボタンの説明

ピンチジェスチャーで拡大縮小します
上部のボタンはステータスボタン、キャラ選択ボタン、テキスト変更、ホームボタン(メニューに戻る)、
4インチ以上ではBGM(音楽のONOFF)とFocus or fix(キャラを追いかけるかの切換え)
ボタンです

下部のボタンは選択したキャラにより異なります





停止方法:右上のホームボタンを押してください
メニューに戻るでもどれます
ゲームの進行データは自動的にセーブされています

4. モード

ゲームは主に
マップモード、戦闘モード、街モード、ステータスモード
からなります

マップモードで歩き回り敵キャラと遭遇すると戦闘モードに
街や城にぶつかると街モードに入ります

ステータスボタンをタップすると現在選択中のキャラクターが拡大表示されて
ステータスモードになります
戦闘中の場合はこの間戦闘は一時停止されています

5. キャラクター操作方法

キャラの操作方法はモードと章により微妙に違います
また操作するキャラクターによっても違います

マップモードでは全章共通で青い枠内をタップすると
青い枠の中心の+マークとタップ地点に表示される*のとの位置関係により
+から*方向へキャラクターが移動します
カメラやマーカーの位置関係によらず
画面内に見えているキャラが現実の空間での+から*方向へ移動します

街モードではtalkボタンをタップすると近くのキャラの話を聞いたり
アイテムを拾ったりできます


戦闘モードでは動物に乗っていない章では
青い枠内の右側をタップすると右に左側をタップすると左に回転して
上側をタップすると前進、下側をタップすると後退します
これで後ずさりしながら攻撃したりもできます
馬や龍などの動物に乗る章では
重力に対してiPhoneを傾けた方向に旋回します
画面をタップすると前進と停止が切り替わります
主人公はattackボタンで攻撃、defenseボタンで盾を使います
jumpボタンでジャンプします
主人公の正面に敵がいるときにattackボタンをタップして攻撃できます
敵のあたり判定位置は大体体の中心なので敵の背が高いときはジャンプ攻撃が必要です
ジャンプで敵の攻撃をさけることもできます
盾を使っているときの防御力は盾の種類のより変わります
攻撃により
攻撃ポイント-防御ポイントのダメージが与えられその分HPが減ります
HPが0になるとゲームオーバーです
攻撃ポイントと防御ポイントはキャラ同士の属性により変わります
土<風<火<水<土
の順に強弱があります
強い属性のキャラが弱い属性のキャラを攻撃した時の攻撃ポイントはoffense(攻撃力)の2倍
強い属性のキャラが弱い属性のキャラから攻撃された時の防御ポイントはdefense(防御力)の2倍です

6. 戦闘

戦闘は逃げるか敵を倒すか主人公が倒れると終了します
敵を倒すと経験値とお金とアイテムが手に入ります
経験値が一定値を超えるとレベルアップします
主人公の正面に敵がいるときにattackボタンで切り付けると敵にダメージが与えられます
逆に敵の正面にいるときに敵が攻撃すると主人公がダメージを受けます
各キャラクターはHPが0になると戦闘不能になります
主人公が戦闘不能になるとゲームオーバーです



7. 街

街には建物があり扉の前に立つと扉が開き建物の中が見えるようになります

手前に移動すとマップモードに戻るかというメッセージが表示され「はい」と答えると
マップに戻ります

背景以外の人物にはtalkボタンで話せます(一章の城の赤い騎士は話せません)
会話の最中はキャラを動かせません
次へボタンやYes, No, 1, 2, 3といった選択肢ボタンが表示されるので
それらをタップすると話が進みます

落ちているアイテムの前でtalkボタンをタップすると拾うかどうか聞かれて
yesボタンをタップすると拾えます

アイテムや弓矢を購入できる店があります
カウンターに近づくと自動的に会話が開始し
買えるアイテムが選べるので選択すると
お金が足りる場合は
ARの店員がその商品を持ってきます

宿屋ではお金を払うと鍵がもらえて奥の部屋に入れるようになります
奥の部屋のベッドの前でtalkボタンをタップするとHPが回復します




8. ステータス

画面左上のステータスボタンで現在選択中のキャラの
ステータスモードになります
戦闘中では戦闘は一時停止されて
選択中のキャラが拡大表示されます
モンスターを選択していた場合はモンスターが拡大表示されます
TEXTボタンでMEMBERボタンを選択した場合は
そのメンバーの詳細が表示されます
powerはoffense(攻撃力)に
strengthはdefense(防御力)に関係します
speedはキャラの移動速度です
conscienceはキャラの良心で良心の高い敵を倒すと良心が下がったり
謎を解くと良心が上がったりします



9. 装備の変更

主人公の装備は
防具選択ボタンをタップして表示される鎧と盾を選択すると変更できます
武器も同様です
武器や鎧は主に町に落ちているものを拾って手に入れます
馬の鎧は購入することもあります
魔法使いは魔法選択ボタンをタップして表示される魔法から覚えた魔法を選択できます
アーチャーは弓選択ボタンで表示される矢から6種類の矢を選択できます


10. アイテム

アイテムボタンでアイテムを選択して
アイテム使用ボタンで使用します
アイテムは現在選択中のキャラに使用されます

アイテムは以下の5種類です
potion:HP100回復
antidote:毒消し
magic potion:MP回復
elixir:HP完全回復
phoenix feather:戦闘不能からの回復

毒を持った敵の攻撃を受けると一定確率で毒状態になり
毒の状態にあるときに攻撃すると攻撃者自身もダメージを受けます


11. キャラクター選択

ウィザード、アーチャー、四種類のモンスターが仲間になります
仲間にした後は上部のキャラクター選択ボタンでキャラを選択できます
選択すると下部のキャラクター操作用のボタンが変更されます
Remというボタンをおすとそのキャラは味方チームから外されます
Addというボタンを押すとそのキャラが味方チームに加えられ再び表示されます
選択すると選択したキャラクターがマーカーの中心
位置するように全体が移動します

12. 戦略

主人公を選択しているときに左下にされる戦略ボタンをによって仲間の行動を大まかに決められます
・Charge
魔法や弓矢を使って戦います
魔法や弓矢は手動で最後に選択したものを繰り返します

・Thrift
弓や魔法は使わず節約して戦います

・Ran Away
逃げます
一定確率で逃げられます
ボス戦は逃げられないこともあります

・Idle
なにもしません

13. 文字表示

テキストボタンで変更できる文字表示は以下の五タイプあります
・off
テキストの非表示
・member status
選択したキャラのステータスの詳細
・team condition attribute target
味方と敵のチームの状態、属性、ターゲット
・team behavior
味方と敵のチームの行動
・progress status
進行状況

14. 魔法

ウィザードの使う魔法は25種類あります
最初に使えるのは5種類でレベルが2上がるごとに20種類までは1つづつ魔法を覚えていきます
21番目から24番目は街に落ちているゴーレムを拾うと覚えられます
21番目から25番目の魔法はモンスターを召喚する魔法です
街中でも使えますがモンスターは動きません
戦闘中に使うと敵モンスターを攻撃します
最大五体まで召喚します

魔法は土、風、火、水、回復の五タイプです
魔法を選択したらTargetボタンでターゲットを選択して
use magicボタンをタップします
この際すぐにボタンから指を離さないでください
タップしてから指を離したときに魔法が使われます
タップして指を離さない間はウィザードが呪文を唱え続け
魔法を表す球体が徐々に大きくなります
この大きさに応じて魔法の威力が変化します
モンスターを召喚する魔法ではモンスターの大きさが変わります

15. 弓

アーチャーの操作方法は
矢を選択してから
弓ボタンをタップします
そのとき指をボタンから離さないでください
右手で弓ボタンをタップした状態で左手で青い枠内をタップすると
弓を構えたまま上下左右に狙いを定められます
そして弓ボタンから指を放すと
弓が放たれます


16. イベントアイテム

アイテムには各章固有のイベントアイテムがあります
これらはストーリー上手に入れるとアイテムマーカーで表示できます


17. クリアー方法

各章はボスを倒すか謎を解くかのいずれかの方法でクリアーできます
例としては3章を取り上げます
ボスの砦まで行ってボスを倒してもクリアーできます
小人の薬を手に入れ、ハープを手に入れ、ハープを団扇と交換し、
団扇で風車を動かし、お礼にリンゴをもらってリンゴをボスに与えてもクリアーできます


18. 10章で登場する空飛ぶ船の操作方法

青い枠内の上下左右をタップすると下上左右に旋回
碇ボタンで前進と停止が切り替わります
砲弾の種類を選んで三つの大砲ボタンで
前方か左右に大砲を打てる
この章では空飛ぶ城にある目印にぶつかると
城を見つけたというメッセージとともに
目印が消えていきます
全部で四つの目印を見つけるとクリアーです
モンスターは近づくと攻撃してきます


19. 11章で登場する船の操作法

iPhoneを傾けると船は旋回します
碇ボタンで前進と停止が切り替わります
砲弾は選べます
砲弾を選んで砲弾ボタンをタップして指を離さない状態で
青い枠内をたっぷすると
大砲の向きを上下左右に動かせます
(このときよく見ると大砲を騎士が動かしているのがわかります)
そして指を放すと大砲が放たれます
大砲の受ける重力は現実の重力と同じ方向です
マーカーやカメラがどのような方向を向いていても現実の重力の方向に落ちていきます


20. 全体の進行の説明

1章をクリアーすると
2,3,4,5章が現れます
2,3,4,5では土、風、火、水の四つの属性を持ったモンスターを仲間にできます
2,3,4,5章のいずれかをクリアーすると6、9章が現れます
3章、5章であることをするとおまけ的な8章、7章が現れます
6章をクリアーすると空飛ぶ船が手に入り10章へ進めます
9章をクリアーすると11章へ進めます
10章または11章をクリアーすると12章へ進めます
12章をクリアーすると13章へ進めます



人気ブログランキングへ
にほんブログ村 デザインブログランキング

2014年11月8日土曜日

2014年10月16日木曜日

ARFantasy制作過程104

ARシナリオ終了時にフリーズするため
ARシナリオ終了直前に各リソースを明示的にアンロードして
何がアンロードされるときにフリーズするかを確かめたところ
ビデオテクスチャであると判明
とりあえずいくつかのビデオテクスチャの使用をやめたらフリーズしなくなった

なぜビデオテクスチャのアンロードでフリーズするかはどうもはっきりしない
とりあえずフリーズを引き起こすビデオテクスチャの使用は取りやめて
全章大幅作り直しの方針に変更
最低でも一月はかかる予定

人気ブログランキングへ
にほんブログ村 デザインブログランキング

2014年10月12日日曜日

ARFantasy制作過程103

やや進展あり(と思ったらやっぱりフリーズした2014/10/13/00:09追記)
階層構造のある3Dオブジェクトをアンロードする際に変な順番でアンロードしているのが原因
っぽい気がしたので
ObjectiveC側からARシナリオをターミネイトする前に
LUAの方で明示的に3Dオブジェクトを削除した
そして削除後に15秒ほど待ってからARシナリオをターミネイトした
そしたら大部分のパターンのフリーズは起こらなくなった
それとアンロードする前にトラッキングのループを停止した(これは必要かは不明)

人気ブログランキングへ
にほんブログ村 デザインブログランキング

2014年10月10日金曜日

ARFantasy制作過程102

困った
ARFantasyの各章を念入りにデバッグし
ほぼバグは出なくなり完成したと思った
そこでiOS8へのアップデートを忘れていたので
iOS8にアップデートしたら
謎のバグでARシナリオ終了時に時折フリーズするようになってしまった
しかも全13章すべてで同様の問題が発生

過去にリリースしたアプリは問題なく動く
違いは何かというと若干サイズが違う
iOS8にしてからFPSが若干上がったように見える
そのせいでメモリが足りなくなっているのか?
と思って過去のアプリARSFのサイズを大きくし試してみたが特に問題なし
ARFantasyのアセットをダミーに差し替えてみたら問題が起こることは確認できなくなった
よってサイズの問題ではないがアセットの問題の可能性がある

リソースのアンロードの際にフリーズしている模様
節約のためにテクスチャを複数のマテリアルで使いまわしていたが
その影響かと思い使いまわしをやめてみたが
若干フリーズしにくくなったものの色々ゲームを進めてから終了するとフリーズ

シナリオをターミネイトする前に各オブジェクトをデリートしてみたら
フリーズしにくくはなったものの
すべての3Dオブジェクトを一回表示してから終了しようとしたらフリーズした

魔法、武器、防具、アイテム、モンスター、町、買い物といった
各部分の組み合わせを実行しフリーズするパターンを決定しようとしたが
確率的なのかどうも発生条件が不明


人気ブログランキングへ
にほんブログ村 デザインブログランキング

2014年9月21日日曜日

短編アニメーション5



2011年の4月か5月ごろスマートフォン向け3Dアニメーションコンテスト向けに作成
5作目の短編アニメーション
3DSMAX使用

人気ブログランキングへ
にほんブログ村 デザインブログランキング

2014年9月20日土曜日

短編アニメーション4



2011年の4月か5月ごろスマートフォン向け3Dアニメーションコンテスト向けに作成
4作目の短編アニメーション
3DSMAX使用

人気ブログランキングへ
にほんブログ村 デザインブログランキング

2014年9月19日金曜日

短編アニメーション3


これも2011年の4月ごろスマートフォン向け3Dアニメーションコンテスト向けに作成
3作目の短編アニメーション
元ネタはほぼすべてエッシャー
3DSMAX使用

人気ブログランキングへ
にほんブログ村 デザインブログランキング

2014年9月18日木曜日

短編アニメーション2


これも2011年の4月ごろスマートフォン向け3Dアニメーションコンテスト向けに作成
2作目の短編アニメーション
3DSMAX使用

人気ブログランキングへ
にほんブログ村 デザインブログランキング

2014年9月17日水曜日

短編アニメーション1


2011年の4月ごろにスマートフォン向けの3Dアニメーションコンテスト向けに作成したものがでてきた
3DSMAXで初めて作った短編アニメーション
このころはまだBlenderを知らなかった
視線は交差、右目で左を左目で右の画像を見る


人気ブログランキングへ
にほんブログ村 デザインブログランキング

2014年8月23日土曜日

ARFantasy制作過程99




衝突領域を可視化して実機テスト
衝突判定のスクリプトは書き直し
今までは矩形領域の和集合から矩形領域の和集合を引いた領域について
キャラの前方が入り込むと移動できなくしていたが
これだと衝突領域の個数に比例して重くなる
かわりに2Dの昔のRPGでありそうなやり方で
衝突領域を多次元配列のデータ
({{oxoooxxxx},
{ooxoxxxoxx},
{ooxxxxoxxo}}
}
といったような)
で定義して
キャラの前方の座標を粗視化(四捨五入)した整数値を添え字とするデータが
xならキャラの動きを止めるという方法に変更
これなら1000個ぐらいの衝突領域を定義しても動いた
この方が現実の物理の場の考え方にも近い気もする

人気ブログランキングへ
にほんブログ村 デザインブログランキング

2014年8月22日金曜日

ARFantasy制作過程98







ワイン、ボトル、グラス、紅茶、には環境マップを使用
するので仮テクスチャ
2478トライアングルに抑えた
テクスチャは1024X1024一枚
このシーンでは背景を追加して6体以上のキャラを動かしたいのでなるべく軽くしたい
後はテクスチャの調整とスカルプトして法線のベイク

人気ブログランキングへ
にほんブログ村 デザインブログランキング

ARFantasy制作過程97



人気ブログランキングへ
にほんブログ村 デザインブログランキング

2014年8月13日水曜日

ARFantasy制作過程96





跳ね橋の左右の台に射手と魔法使い乗っけると
おもりが上がって跳ね橋が下がり通れるようになるようにした
あたり判定に座標系を表示して可視化してデバッグ


人気ブログランキングへ
にほんブログ村 デザインブログランキング

2014年8月12日火曜日

2014年8月7日木曜日

ARFantasy制作過程92







2247トライアングルに抑えて
テクスチャは
1024X1024と
屋根と側面の繰り返しで使う512X512ピクセルのが2枚
まず大まかにモデリングしてから
複数使うパーツは一個残して一旦分離
テクスチャ付けてからエディットモードで
コピーして分離したパーツを目安に再配置
再利用はしにくいがパーツをインスタンスにするより速くできた

中に入った時に外壁を消して内装だけ見えるようにするので
内装部分も1500トライアングルくらい使う
ステンドグラスは内側から見たときは半透明になるようなマテリアルで

味方キャラクター4体、敵キャラクター5体ほどとその他の小道具が表示されるシーンなので
これ以上追加するとARで動かしにくくなる

しかしキャラクター一体あたり1500トライアングルくらいは使っているので配分としては
もっと背景に使いたかった



人気ブログランキングへ
にほんブログ村 デザインブログランキング