東京工業大学 ロボット技術研究会

東京工業大学の公認サークル「ロボット技術研究会」のブログです。 当サークルの日々の活動の様子を皆さんにお伝えしていきます。たくさんの人に気軽に読んでもらえると嬉しいです。
新歓特設ページ        ロボット技術研究会 HP        ロボット技術研究会 twitter公式アカウント

CG^2

「ロボット技術研究会」通称「ロ技研」は、その名前の通りロボットの制作や研究はもとより、電子工作や機械工作、プログラミングなどの幅広い分野にわたるものつくり活動を行っています。

カテゴリ一覧: loading

面白いゲーム、やる? やらない?

おはようございます、こんにちは、こんばんわ。塩谷 凛(@SALT_ORDER)です。

クリスマスとかいうクソイベントも終わり、今年も残りわずか。
あとは紅白見てそば食うだけ、なんて思っている人なんていませんよね?

そうです。コミケです!!
やっぱりコミケに行って、同人誌や同人ゲーム買わないと、新年は迎えられません!
そんなわけでここで私の作った面白い(?)ゲームを紹介させてもらいます。

まず日時と場所ですが、「29(木)西ほ41b」のCG^2で500円で売らせてもらいます。

そしてゲームのタイトルは……

 『SALT ORDER -first order-』です。

jacket

表紙から察してもらえたと思いますが、ジャンルはアクションです。


ー主な登場人物ー
ソルト
  sal博士のパソコンに住んでいる、少しツンデレなAIの女の子。

博士
  docちょっぴりえっちな博士。

メビウス
 EDGE3ソルトが作ったロボット(ソフト)。今作の主役。


ーあらすじー
博士の大切な研究データが盗まれてしまった!
データを取り戻すべく、ソルトの指示のもと、メビウスを動かし、敵の拠点に乗り込もう!


ーストーリーモード(メインモード)ー

  asdf

様々な敵を倒しながら、各ステージにある敵の電脳空間情報が詰まったデータチップをゲットしよう。
見てのとおり、メビウスはレーザーを撃つことができるぞ!

複数のワールドがあり、各ワールドの最後にはボスが待ち構えているぞ!

また、各ステージに隠されたサイバークリスタルという結晶をゲットすると、レーザーの威力、移動速度やジャンプ力などをアップグレードすることができるぞ!


ーK-8(ケイト)のアイテムショップー

  it

サイバークリスタルでアップグレードするパラメータを間違えたり、どうしてもクリアできないときはここでアイテムを買おう!
コインは次に説明するミニゲームで稼ごう!


ーミニゲームー

  mg

ケイトのアイテムショップでアイテムを買うのに必要なコインをここで稼ごう!
上の三つのミニゲームは欲張れば欲張るほど、失敗しやすくなるけど、欲張らずにはいられない
単純だけど、面白いミニゲーム。(操作はマウスです。)


ーステージメーカーー

  sm

自分だけのステージを作ろう!(操作はマウスです。)


ーキーコンフィグー
このゲームはゲームパッド対応(キーボード操作も可)で、操作ボタンを自分好みにカスタマイズできるぞ!



……ざっと説明できたかな?
少しでも興味を持ってもらえたら、うれしいです。

CG^2では、このゲーム以外にも面白いゲームを売りますし、すごい部誌も売る予定です。
コミケに来た際にはぜひ。


・まとめ
「29(木)西ほ41b」『SALT ORDER -first order-』500円で売るので来てね!



紙を折ろうぜ!

この記事は、rogy Advent Calenderの六日目です。


はじめまして、アカテツ科です。 

普段ゲームを作る自分ですが、今回は全くろぎげ内活動と関係ない
自分の趣味の話をします。(ごめん)

DSC_0385

折り紙です。 

お雛様とか折ったことがありますか?自分はあります。
「紙飛行機」(*)「紙風船」とかを遊びの為の折り紙とするならば、
これらは表現としての折り紙ですね。言ってしまえば、デフォルメです。



しかしながら、



表現の為の折り紙も、行くところまで行ってしまっています。
これらは「スーパーコンプレックス折り紙」と言われています。
一枚の、正方形の紙を、切ること無く、折るだけで上の様な作品を作るのです。

---ここまで前置き----


私は、こういった折り紙をただ折る行為に大学に入るまでハマってました。我が創作の原点。
そして、最近ふと思い立って、「自由に折り紙出来るソフトウェア」とか出来たら面白のではないか ↑のような折り紙を、コンピュータ上で折れたら楽しいんじゃないか!?
と思い立って、ソフトウェアとしての折り紙を調べるに至ります。


紙を折る
紙を折るというのは、折れ線で区切られた図形の鏡映変換で表現することができます。
図形を折れ線を軸に180度回転させればいいだけです(ほんまか)
今部内で流行りのOpenGLくらいの低レイヤーだと、物体の頂点を変換できる。


手順、大分端折りますが、


先ず、はじめとして頂点が四つの正方形があるとします。これが折り紙。
次に折り線を示すための2つの頂点ABを設定します。
自分は、ここでは手動でポイントを打っておきました・・・。
origmai1
ここで、線分ABが、正方形の淵と衝突(交わっている)か否かの判定を行います。
ここで、二こ以上の偶数点交わっていたら紙を折れます。(恐らくです。)間違いなのにさっき気付きました。AかBが折る対象の中に入ってたら折れない、で良いと思います。プログラムを直さねば、、
線分と線分の衝突判定については、マルペケつくろーどっとコムにお世話になりました。
origmai2
さて、衝突した二点を5,6として頂点データに追加します。ここで問題が出ます。
OpenGLで自分は「三角形の集合体」として物体を描画しています。つまりどんな多角形も、立体も、(描画関数の第一引数がGL_TRIANGLESなら)三角形の集合体を描画することで画面に出力しています。頂点を追加すると変になりそうですね。新たに三角形で敷き詰めるような頂点データの並び方にしなければなりません。インデックスバッファへの格納です。
つまり、多角形を三角形に分割する行為が必要です。上の図のように。

「多角形 三角形 分割」でGoogle大先生に教えを乞うと大量に情報が出てきました。尊い・・・。
自分はこのサイトを参考にしました。長くなりそうなので、簡単に紹介すると、
(1)適当な点(原点)から一番遠い頂点を選びます。
(2)その両隣の頂点で三角形を作ります。
(3)その三角形内に多角形の頂点がなければOK、(5)に行きます。なければ(4)へ
(4)隣の頂点に移行して、その両隣の頂点で三角形を作って(3)へ
(5)その三角形を記録して、多角形からその三角形を削除します。
(6)新たな多角形ができるので、上記を繰り返します。
(7)残り三角形になったら終了です。
上記URLは図があって分かりやすいです。参照推奨。

これを上の図でいうと、頂点4 5 6と頂点1 2 3 5 6の二つの図形で行って三角形に分割します。(折り曲げた時に不備の無いようにするためです。)
多角形内に点があるかの判定はマルペケつくろーどっとコムを参照しました。
これで折る準備が出来ます。
origmai3
どちらの面を折るか、と言う判定は、どちらでも良いとは思いますが、
ここではABと頂点(ここでは5,6以外)の距離を測って一番短い頂点がある方を折る、ということにしました。線と点の距離についてはマルペケつくろーどっとコムにお世話になりました。
origmai4
折るべき面の(ここでは5,6以外の)頂点を全てABに対して対称移動させます。
これで180度回ったことになるはずです(;;・;;´;;-;;・;;`;;)


いいだけ、とは言ったものの、
無題

(紙を折るシミュレーションをしている、、のですが、何もわかりませんね、、、)
自分にとってはこの時点で結構キツイです。ここまでが現在の自分の進捗の限度です。

一応紙を折ることは出来ました(?)。折るための二点は、今はかなり適当になっているのですが、多分予め存在する頂点同士を結ぶ形になると思います。しかし、これで全部出来ると言うことは決してありません。折り紙には色々な複雑な操作がありますからね。色々な折り方とか、ありますからね。沈め折りとか、、、。が見えてきた。

実は、こんな事をしなくても、「折り紙の展開図データ」なるものがあれば、最初から頂点が設定され、折るシミュレーションも結構いける、と思うのですが、ここでは展開図はナシです。なぜなら子供が扱うのを目標にしているからです。


展望

・多角形の三角形分割に付いて、何かアルゴリズムがあるようです。分かったら頑張って実装します。
・現実において、折り紙の作品には二次元で完結しているものも多いですが、大半は立体に見えていると思います。折り紙は三次元でやりたい。
ところが、↑のシミュレーションだけでは、二次元から脱出することが出来ないですね、、、。
イカに脱出するかを考えると、


紙を折る角度を付けられるようにする。
 頑張れば、出来そうです。次の実装の挑戦です。時間があれば。

紙が重なっているさまを表現する。
 折った面と、それに密着する面同士が微妙に離れる様にすれば良いのでしょうか。闇っぽいです。
 調べていたら、論文が出てきたのですが・・・。
紙が曲がっているさまを表現する。
 


想像以上に難しい様です。
ですが、子供にも扱えるような、(いわばgoogle sketchupのような)、簡単なソフトに出来るようにしたい。これからゲーム製作の傍らで、密かに頑張ります。




折り紙の展開図については、下の引用元のページに興味深いことが書いてあるので、参照してみると良いと思います。


引用元
折り紙研究ノート(三谷純)
ある折紙創作家の頁
任意多角形の三角形分割
マルペケつくろーどっとコム  ←本当に尊いサイトだと思います。

(*)紙飛行機馬鹿になりません。凄いんですよ!

GAME^3参加記(ゲーム製作進捗報告)

こんにちは。やむどぅさん(@ymduu)です。
ゲームの話ではなかった前回とは異なりゲームの話です。ロボット技術研究会ではロボットだけでなくゲームも作れる(ステマ)
去る2/22にGAME^3なるイベントが開催され、僕もそこに横スクロールアクションゲーム「Tech World」を展示してきました。
同じジャンルである横スクロールアクションゲームも多く参考になった他、音楽ゲーム(SP五段には難しかった)もあってめっちゃ良いイベントでした。
開催したまーぼうとりむこに圧倒的感謝。
では進捗報告です。
・ゲーム紹介
banban
Tech Worldはテックちゃん(主人公)を操作して敵を倒しつつゴールを目指し、時にはボスと勝負といった感じの横スクロールアクションゲームです。世間は厳しいので左上に存在するライフゲージがなくなると死です。
・敵
and-kun
かわいい。僕がANDゲートを見て生み出したラクガキに基づいてアカテツくん(@aktzk)が描いてくれました。感謝。刺さると体力が1減少します。
・電池
item1
「電池」で適当に画像検索して出てきた画像とにらめっこしながら自分でドット打ちました。かわいい。取ると体力が1回復します。
・進捗
左右移動にジャンプ、弾を発射して敵を倒し、敵に当たったらダメージを受け、電池で回復できる、といったゲームとして必要最低限のことができるようになったところです。基本機能実装フェーズは終了といった感じ。
・展望
ゲームとして必要最低限のことができるようになったといっても、敵は1種類しか居ない、ボス戦はない、マップは通れない壁だけと非常に質素なゲームになっているので、今後は
・ボスの実装
・マップギミックの実装(通り抜け床とか水とか)
・敵の種類を増やす
の三点を詰めて「面白いゲーム」を目指して行きたいと思っています。
新歓展示までにはボス戦を一つ実装したいですね。

・おしまい
ロボットだけでなくゲームも作れるロボット技術研究会に興味が湧いたら部室に来たりするといいです。
先輩とかが居て何を使ってどんなものを作ったとか説明してくれるはずです。
ちなみに僕が使っているのはVS2013でC++を書いており、画像の描画はDxlibにおまかせです。

お疲れ様でした。

妖精さんゲームの進捗

どうも、CG^2のおーまです。
制作していたRTSのような何かの進捗を報告したいのですが、その前に大きな報告を。

CG^2とCG^3が併合しました!

長らくゲーム系研究室は二つも必要ないんじゃないかと言われ続けていましたが、F^3のための領域整理を機についに併合しました。
名前はまだ決まっていませんがなんかかっちょいいのにしたいですね。
活動内容自体は全く変わりません。
これからも面白いゲームを作るべく頑張っていきたいです。

ではゲームの進捗を報告していきたいと思います。
まずはスクリーンショットをば。

無題

 なんかわちゃわちゃしました。
ちょっとゲームっぽくなってきたんじゃないでしょうか。

無題2
 

無題3
 
ボスとか必殺技も実装できてきました。
わりと形にしただけなのでまだ改善点がたくさんありますが、なんとなく雰囲気は掴めてきました。

ゲーム内容としては妖精さんをたくさん出してステージを進んでいき最後にいるボスを倒すっていうRTSにする予定だったんですけどなんかRTSにならずによくわかんないゲームになりました。なんあんんでしょうねこのゲーム。
また、実際にシステムを実装してみたところ思ったより操作が煩わしく、このままだと全く面白くないゲームになってしまうので、現在のシステムを基盤に操作性などを大幅に修正していく必要があります。
一応修正案は考えてあるので夏休み中にさっさと実装してシステムをブラッシュアップしていきたいですね。
味方の種類も敵の種類もまだまだ足りないのでそこも実装しなきゃですし、音楽も作らなきゃなのでやることたくさんありますが何とか完成させたいです。 
 

【CG^2】群知能ゲーム制作 -その2-

どうも、無事すずかけ大学大学院に入学しました。ニックさんです。
前回の記事で紹介したBoidsモデルを用いたRTS(リアルタイムストラテジー)ゲームの制作が少しだけ進んだので、今日はその製作状況についてお話します。

まず初めにゲームのタイトルとテーマが決まりました。
その名も「大合戦もののふボーイズ」です。
ss_36

↑ この歴史スペクタクルに日本男児なら胸が高まりますね。

ご覧のように、「サムライ達が戦場を相互作用を与えながら走り回る」合戦ゲームとなっています。
なぜサムライなのか?それは以下の理由から選びました。
  • 合戦というテーマそのものが、主題である「相互作用」が強い
  • 日本人なら誰でも見たことがある、馴染み深い絵柄
  • サムライに弓を持たせたり、馬に乗っていたりでいろんなバリエーションを出せる
  • 戦国図屏風は著作権フリー

キャラクターの絵は図書館から借りてきた資料集から拝借して加工しています。

具体的には、切り貼りしてキャラクターに2次元の骨組みをつけて、絵を貼り付けアニメーションをさせています。


ss_32
↑ ボーン設定画面。ボーンはjson形式で保存していて手打ちで設定しているので面倒。

そうして作ったキャラクターボーンを3D空間上のBoidsモデルの上に貼り付けています。
実際はゲームそのものは2D空間で成り立っているのですが、表示だけはカッコいいので3Dにしてます。

ss_34
↑3Dマップに表示させたキャラクター達。戦が始まる……!

ゲームの流れとしては、敵も同じように群体を作って戦う、実際の合戦さながらの戦略ゲームとなる予定です。
ただ、肝心の敵AIはまだまだ制作途中なので、詳しいお話は次回の記事に回させてください。

ss_27
↑白熱の戦闘シーン。手に汗を握る。

さらにさらに、ゲームの制作スピードを上げるためにマップエディタを自作しました。
タイルベースのゲーム制作者は誰もが通る道ですね。
ss_30
↑マップエディタの動作の様子。マップはjson形式です。

こんな感じでゆったりとゲームを作っています。工大祭とかmakeに出せたらいいですね。
今後の実装予定としては以下のものを考えています。
  • ミニマップ機能
  • 敵AI(ファジィ制御,蟻コロニー最適化,遺伝的アルゴリズム)
  • 鉄砲隊,盾隊,砲兵隊,槍隊などのキャラクター実装
  • ゲームUIの調整
今回のゲームは一年がかりで作っていてなかなかの大作になりそうですね。
この調子で大学院での研究テーマも決めたいですね。
ギャラリー
  • 自作キーボードを作ろうver1.0
  • 自作キーボードを作ろうver1.0
  • 自作キーボードを作ろうver1.0
  • 自作キーボードを作ろうver1.0
  • 第14回ROBO-ONE Light 結果報告
  • ロボット技術研究会紹介
  • ロボット技術研究会紹介
  • rogy2016冬合宿 in 戸狩
  • rogyサバゲ:†革命†をもっと
記事検索
最新コメント