【マスコットアプリ文化祭】AR動画投稿しました
久しぶりの書き込みかな?
最近AR技術に興味を持っていたので,ARマーカーと呼ばれるものを自作してみました.
マーカーを検出して,その部分に対して動画を再生させたり,MMDモデルを描画したりします.
マーカー検出の詳しい手法は後日書くかもしれない
この動画はマスコットアプリ文化祭に登録します.
皆さんもマスコットアプリ文化祭,盛り上げましょう!
【MMD×AR】クリスマスを女の子達と過ごす!!【マスコットアプリ文化祭】 - YouTube
【MMD×AR】クリスマスを女の子達と過ごす!【マスコットアプリ文化祭】 ‐ ニコニコ動画:GINZA
マスコットアプリ文化祭のHP
【マスコットアプリ文化祭】プロ生ちゃんくりっか~ 作りました
マスコットアプリ文化祭の投稿フォームが完成したようです
mascot-apps-contest.azurewebsites.net
何かミニゲーム程度に作ってみようと思い,プロ生ちゃんをいじめられるクリッカーゲームを作りました.
一応自作ゲームを一般公開するのは初になります.
DLリンク
「マスコットに悪いことしたいよね?」
内容:
倒しても倒しても増殖するプロ生ちゃんを退治し続けるゲームです
基本マウスクリックだけの簡単操作でプロ生ちゃんをやっつけます
オートセーブ形式なので,暇時間にちょこっと遊んだりできます(←ならスマホアプリの方がいいのでは?)
→スマホアプリは開発環境も知識も無いので断念しました...
細かいルール,遊び方などは.zipファイルの中のReadMeに書いています
※このゲームはDirectX9以降の入ったWindowsOS(98~10)に対応しています
上記動作環境を満たしていて動作しない場合は,対応できる保証はありませんが,連絡
いただけると幸いです
SS:
見ての通り,約1時間で1000万ものプロ生ちゃんが犠牲になります,ヤッタネ!
マスコットの数ってどう数えたらいいんだろう...?
DLサイト(↑2ファイルが置いてある)
3D弾幕結界について
動画投稿しました
以前リクエストをもらった弾幕結界の3D化の途中段階です
途中段階ではありますが,ある程度考えが纏っているので少し解説を書いていきます
<弾幕結界について>
この弾幕の(主に1~4波の)流れは
①オプションの発生
②オプションが特定の軌道を描きながら弾を発射
③ここで発射された弾は主に、
1.中心付近を向いて飛ぶ
2.1と正反対に画面外に向けて飛ぶ
3.そのまま停滞
1の場合、多くは暫くすると弾は停止します
④オプションによる弾の発射が終了すると,発射された弾(特に停止している弾)が中央に収束
⑤①に戻る
といった感じです
この弾幕の攻略法ですが
例えばオプションが弾を発射している時はフィールドの中央はほぼ安全です,しかし最後の収束までには脱出しなければなりません
逆に画面下の方で回避するとオプションが後方から飛ばしてくる弾を避け続け,収束は上から降ってくる弾を避けるという形になります
どちらにしても,収束時の弾幕を安全に避けるには予め弾の軌道を覚えて安置、または容易に避けられる場所を探すことが重要です
<3D弾幕結界>
この弾幕を3D化するにあたって,気づいた点が一つ
「オプションは基本的に円運動しかしていない」
という事です
画面中心を基準に回転しているだけであとは半径や角速度が多少変化している程度です
よってこのオプションは
・半径
・角速度
・角加速度
この3つのパロメータがあればおおよそ再現できるだろうと推測しました
ここからそれを3Dに持ち上げる作業です
まずは下の画像をご覧下さい(3枚すべて同じモデルを別の角度から撮影しました)
ここでは
赤:X軸
青:Z軸
緑:Y軸
としてそれぞれ色の明るい方を正とします
また球を描画すると見辛いので3本の銀のワイヤーで球を表現しています
棒と連結している白い球が「オプション」の位置です
このオプションの位置を決定するためには
・半径(長さ-Rとする)
・角度その1(水色の扇部分-Phyとする)
・角度その2(緑の扇部分-Sitaとする)
この3つだけで決定します
2つの角度は「XZ平面の位置を決定する角度」「Y成分を決定する角度」といった感じです
いわゆる「3次元極座標」と呼ばれる座標系です
これをXYZの座標系に変換する必要があるのですが
X=R×cos(Phy)×cos(Sita)
Z=R×sin(Phy)×cos(Sita)
Y=R×sin(Sita)
でそれぞれ求められます
この3次元極座標を使用するメリットは
・「長さ」の成分をダイレクトに持っている
これは,例えば長さを固定して角度だけを変えれば同一距離上にある複数のオブジェクトの生成,半径を維持した円運動の表現が容易、などができることが挙げられます
今回作ろうとしている物にピッタリですね
下の画像の大量の球は全て中心から等距離に存在します
これらは予め長さだけを決定して,2つの角度を等間隔で加算していきました
こんな感じで時間経過とともに半径,角度を変更していくと,冒頭の動画のような3D空間を回転するオプション群を作ることができます
あとはオプションに一定間隔で弾を発生させ,その方向,速度,加速度等を指定すると弾幕結界のような3D弾幕が展開できます
と,弾幕の作り方は大体完成しています
あとは実際にどういう形に展開すれば弾幕結界を再現できるか,或いは3D映えする弾幕にできるかを模索中です.
いつ完成するかは未定ですが,できたら動画投稿します
この弾幕の作成にあたってDixq様の以下のサイトを参考にしました.