UnrealEngine4
横移動と弾がでるようになった。
自機(円柱)の移動は↓のようにBluePrintでつくっているのだけど、なんかもっとスマートなやり方があるのでは無いかと思う…。
Metal cocos 6
とりあえずGithubに上げた
nyakagawan/MetalCocos · GitHub
cpp-empty-testのTextureQuadが1枚かけるだけで、HelloWorldのifdefをはずして、labelとMenuボタンを描画ONすると、描画が乱れる。
これで一区切りとして、放置しているOculusを触りたい。
MetalはiOSじゃないとダメだし、OculusはGPUパワーいるからウチはWindowsDesktopじゃないと動かせないし。コンテキストスイッチコストがちょっと大きいのでMetalはしばらく休みかなー、わかんないけど
Metal cocos 5
なんとか休みが明けるまでにTextureQuadを描画するまで行けた。つまづいたところとか一応書いてみようとしているところだが、先にこの記念すべきスクリーンショットを貼っつけたい!ということで。
まだUniform(定数バッファ)にちゃんと対応してなくて、TextureQuad特別仕様なプログラムになっているので、そこを対応して、他のShaderを移植してーって感じで進めていくかなぁ。
それ以外にOculusDK2を買って届いたはいいけど、まったく触ってないので、一応作るネタだけはあったりするのでそっちをやりたいという気持ちもあったり。
Metal cocos 4
やはりrenderCommandのcommit前にvertex/index-bufferをreleaseしていたのがabortの原因なようだった。
glのAPIでGPU情報を取得しているっぽいところで最大TextureサイズをConfigureに設定していたが、これが動いてないのでTextureが作られない現象が発生していた。
GPU情報の取得とかについてはMetalはきっとサポートしてないと思うので、GLAPIをふっかつせねば。
やっとクラッシュせずに実行するところまで行ったが、HelloWorld.pngが表示されていない。
画面的にはLanchImageが出っぱなしになっているので、FrameBufferがSwapされていないとか?
Metal cocos 3
以下、作業しながらメモしたものなのであしからず…。
======================
EAGLViewのcontextの生成部分のMetal対応が必要で、そこでコンパイルエラーで止まっている。
contextは外部に公開されて使われているうようなので、その用途からMetalで相当するものを見つけるか。
もし相当するものがない場合は、互換レイヤーを今より上げて、GLViewのところでMetalViewを実装する必要があるかもしれない。
というか、どう見ても名前的にそちらのほうが正しいような気がする。
と、思ったが。GLViewはios抽象レイヤーの外なので、ここにMetalを入れるのも違うかも。てなると、今の実装で間違いじゃないのだけど…。
GLView部分にレイヤーを入れるとなると、大工事な気もする、調査してないし分からんけど。
にしても、VisualStudioに慣れきった体にはXcodeがキツイ…。
contextはGLのコンテキストのようだ。Metalでは不要な気がする。ってことでその辺はサクージョ。
実行すると"Metal default library not found"というメッセージでABORT。metalファイル(シェーダファイル)が見つからないためLibraryが作れないということらしく。
libcocos2dの中にいれたあったmetalファイルをtest-cpp-emptyのほう(スタートアッププロジェクト)にいれてやったら解決。
ShaderはとりあえずkShaderType_PositionTextureColor_noMVPだけswichcaseを対応。これ以外を使う場合programが見つからないで落ちるはず。
実行時にrenderEncorder.drawIndexPrimitivesでABORT。VertexBufferとIndexBufferをdraw前にreleaaseしてしまっているのが原因か?そもそも、頂点バッファとIndexBufferは最初に確保してあとは使いまわしたい気もする。それでよければsetupVBOの辺で初期化してやれば良いし、Metalサンプル見て、そういう運用じゃなさそうなら何か考える。
ViewとRenderer周りを整理するために書いたクラス図
OculusRift GameJam 参加してきました。
遅ればせながら…。
去る2014/11/29、30に開催されましたOculusGameJamへ参加してきました。
僕は@yandoさんと2人チームでOculusRift+LeapMotionでチャーハンをひたすらフライパンで炒めてスコアを稼ぐ、という謎ゲームを制作しました!
僕はOculus実機を持ってないどころか、LeapMotion実機も無い状態で参加していたのですが、途中で心優しい他の参加者の方にLeapMotionを貸していただき、Oculusに関する調整は@yandoさん任せという状態で開発を行いました。僕の担当した部分は、チャーハンの注文を追加する部分や、具材を上空から降らせる部分とか、どちらかと言えばガワの部分を担当しました。
個人的に今回参加してよかったなぁという点を上げたいと思います。
- OculusRiftを活用したゲームを沢山遊ぶことができた
- LeapMotionについて詳しくなった
- 1日目にちゃんと家に帰って寝れた
- 前のGameJamに参加していた人に再会できた
- GameJam自体おもしろい
などなどあります。この中でも「ちゃんと家に帰って寝た」そしてゲームはちゃんとそれなりに出来上がった。というのはちょっとした体験でした。今まで(といっても2回しかないですが)参加したGameJamではどちらも夜通しの作業だったので、こういう健康的というかw、あまり根を詰め過ぎずにやれたのは良かったです。
これでGameJamへの参加は3つめとなりますが、いつも最後は楽しく終われています。チームメイトに恵まれているというのも大きいと思いますが。今度はGlobalGameJamだと思いますので、それもぜひ参加したいと思っています。
最後に、作ったゲームを開発パートナーの@yandoさんがLeapMotion3DJamというコンテストに応募してくれました。実行ファイルをDownloadできるようですので、ご興味のある方はぜひプレイしていただけたらと、チャーハン作っていただけたらと思います。他にもクオリティ高そうなゲーム上がってますしね!
OculusRift GameJam
第3回 Oculus Game Jam in Japan【東京西新宿ニフティ会場】 - OcuJam | Doorkeeper
キャンセル待ちで参加登録していたOculusRiftGameJamにどうやら当選したようだ。Riftの実機は会社が購入したものを触ったぐらいで、本格的に、というか遊びでも開発をやったことは無い状態なのだがOculusRift自体に興味があるしGameJamに参加したかったので勢い半分で登録してみた次第だ。
しかし、自信がちょっと無い・・・。他の参加者の方の足をなるべく引っ張らないように、開催まで1週間を切っているが出来るだけの予習をしたいところだ。まずは、Unityのメカニムのことを勉強して、あとUnrealのこともある程度分かるようにしておかねば。どちらを使う事になるかはわからないが、どちらかを使うことになるだろう(といっても、自分の持っているノートPCでは性能が低すぎてUnreal自体動かない可能性もありそう…。Unityで是非お願いしたいw)