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

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

Unity

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

カテゴリ一覧: loading

工大祭展示とUnityのナビゲーション機能について

皆さんこんにちは。HTGです。
今回は工大祭の展示物とそれに使ったUnityのある機能についてお話させていただきます。
今年も自作ゲームを展示していました。

20151026-01

タイトルは「GetCoin!」
名前の通りコインを集めることが目的で、人型にならなかった箱型のキャラクターを操作して攻撃能力を持てなかったうろついているだけの敵キャラ(カマキリ)を倒し、落としたコインを拾い集めていくゲームです。
20151026-02

僕の中では正直言って完成度低いです。本来やりたかったものからルール大幅変更してるし。
ぶっちゃけ何とかトゥーンを遊びすぎて作るのサボってました。みんなもほどほどにね!

さて、実際にプレイしないとわかってもらえないことですが、この敵キャラのカマキリ、段差あり高低差ありのステージを割とフリーダムに動き回ります。たまに渋滞とか壁に引っかかるとかするけど
この挙動を普通にプログラムで作ろうとすると非常に難しいので短時間で作るのは不可能です(個人の感想です)が、これを簡単な手順で可能にしてくれたのがUnityのとある機能です。
続きを読む

およそ5時間で作った小ネタ

 みなさんこんにちは。
前回の進捗の画像が女の子キャラなのに「ごつい」 と言われ、キャラモデルの作り直しを決意したHTGです。

 さて、今回は現在メインで製作中のものとは別に制作したちょっとした小ネタの紹介です。

 とりあえず起動してみましょう。

0418-1

 ……これだけでは何か分かりませんね。というわけでAddを押してみます。
 
0418-2

 ご覧のとおり、中央にサイコロが浮いている映像が現れました。
静止画では分かりませんが、このサイコロはその場で不規則に回転しています。

0418-3

 そしてStart!を押したらボタン長押し→離しでサイコロを投げます。そおい! 

0418-4

 地面で静止したサイコロにカメラが寄ると……2が出たみたいですね。

以上。

 はい、ただサイコロを振るだけのアプリケーションです。それだけです。

 サイコロを3Dモデルソフトでサクッと作り、Unityに元からあるデータで床と背景を用意し、サイコロの挙動の9割をUnityの物理エンジンに丸投げして、残りの1割の挙動とカメラ、ボタン等の処理を作れば完成です。
 HTG(中学からゲームプログラミングに触れ、大学1年後期頃からUnityを始めた情報工学科の学生)の場合、5時間でできました。


 ところで、なんで制作中のゲームを差し置いてこんなものを作ろうと思ったのかと言いますと、

 TRPG(テーブルトークRPGのこと、詳細は各自で検索してみてね)のルールブック買ったよ!
→そういえばTRPGをするにはサイコロ(と一緒に遊ぶ友人数名)が必須だったけど、そんなものないな
→ サイコロがないならプログラムして作ればいいじゃない!
→ でもただランダムに選んだ数字を返す装置はつまらない、もっとちゃんとサイコロを転がしてみたい!

 こんな感じのしょーもない理由です。
 ちなみに、私が購入したTRPGでは複数のサイコロを同時に投げる必要があったので、サイコロを複数個投げる機能も実装済みです。

0418-6

これが2個投げ。地面のせいで分かりにくいですが、中央で2分割されてます。

0418-5

そしてこれが4個投げ。4人対戦っぽく見えるかもしれませんが違います。 


 最後に新歓コンパの直後なので、ロ技研に興味のある新入生の皆さんに私から一言、

「作ってみたい」と思ったらとにかく作ってみよう!

あ、他に優先するべきことがあるならそっち優先したほうがいいと思います。

【AIの旅】追跡、群知能に挑戦した。

初めまして僕ロギーくんだロギ~


捨て置いて、こんばんは、アカテツ科です。 

めっちゃ突然ですが人工知能(AI)あるじゃないですか、最短経路を求めたりするアレです

HAL_9000とかSiriとかそういうのです

その内の一部として、LOS追跡やBoidsってのがあるんです 

オライリーの「ゲーム開発者のためのAI入門」なる本の序盤を読んでてよさ気だったのでUnityで シミュレーションすることに挑戦しました。以下がその道程です。



◆LOS追跡
LOS追跡とは、要するにただの追跡である。
まずそれっぽい物体を用意
この船的な物体にRigidbody2Dを付け、物理動作を実現。
船的な物体は、直進するための推進力と、曲がるための操舵力のみを持っている。(任意の方向に力をかけることが出来ない。)
boatc
この場合、追跡したい物体を向くように操舵力をかけ、距離に比例するような感じで直進すれば良いだけ。
以上、色々と調整したら、こうなった。

los
お~ちゃんと追いかけている。かわいい。






◆Boids(フロッキングアルゴリズム)
渡り鳥は集団で飛んでいる。そして集団で一斉に向きを変える。そんな集団の動きをシミュレーションするのがBoidsである。

3つの規則がある。

1・結合: 各ユニットを隣接ユニットの平均位置に向かって誘導する。
2・整列: 各ユニットの向きが隣接ユニットの平均的な向きになるように誘導する。
3・分離: 各ユニットが隣接ユニットのと衝突しないように誘導する。 

先ずそれっぽい物体を用意
この船的な物体にRigidbody2Dを付け、物理動作を実現。
この船的な物体は、直進するための推進力と、曲がるための操舵力のみを持っている。(任意の方向に力をかけることが出来ない。)
hune
船には視界がある。(図の赤斜線の部分) 

この範囲内に入った物体の位置と速度を調べて平均値を出した後視界内物体の数で割って平均の位置と向き情報を入手する。その向きと位置に行くように推進力と操舵力をかければ結合と整列ができているはず。
分離、これは船的な物体に近付き過ぎたら遠ざかるような操舵力をかけることで可能らしい。
以上、色々と調整したらこうなった。
無題
お~集団行動してる。かわいい。


 プレイヤーが赤い物体を動かしている。他の全ての物体は赤いのを先頭とした集団についていっている形となる。結合と整列はできていると思われる。しかし、

ray2
 
この密集率!「分離」が上手く行ってない! AIの難しさを感じさせられた。





でも眺めていると、スイミー的な何かを感じますね。かわいいと思います。 

BoidsはUnityGameUploaderにアップしたので実際にやってみて楽しんでください。
http://unitygameuploader.jpn.org/game/4383.html 

新歓展示でも展示します。新歓展示は4月8日と4月10日S516にて! じゃんけんに勝ち続けるゲームもよろしくお願いします。



( ͡° ͜ʖ ͡°)AIを感じていただければ

( ͡° ͜ʖ ͡°)幸いです。 




ご清聴ありがとうございました。 



次回は何スターのアルゴリズムなんだ、、、、

Unityにおける天地創造のおはなし




はじめましてアカテツ科(赤鉄科、学名:Sapotaceae)です。稚拙ながらブログを書きます。
CG^2とCG^3の統合後の研究室名は"RogyGames"となったそうですよ。最高のゲームをつくろう。

私は4月よりロ技研に入り、プログラミングとそれによるゲーム作りの勉強をしています。使っているのはUnityです。何故かというと楽だからです。勉強している言語はC++です。UnityではC#とJavascriptとBooしか使えないのですが、なんかかっこいいので取り敢えずC++の勉強を続けます。技術的な事はC++で学ぶことになりそうです。C++では今のところこんなものしか作っていません


先月(10月上旬)に開催されていた工大祭においては、ソルダー棒()、太陽系シミュレーターSpace Journeyというゲームを展示していました。 ゲーム名から飛べるので遊んでみてください。




Unityの導入っぽい記事が見当たらなかったので宣伝兼ねて紹介します。 Unityではドラッグアンドドロップでいともたやすくモーツァルトを表示することができます。すごい。

mozart


UnityにはRigidbodyという物が存在します。これをモーツァルトにつけることによって、モーツァルトが物理的な力の影響をうけるようになります。ここでは2Dゲームを作る設定にしているので、Rigidbody2Dを付けてみます。質量を1に、重力加速度を1に設定してみます。

mozart

そうすると、画像のようにモーツァルトが元の位置(上)から落ち始めます(下)。重力のせいです。これまでの操作はマウスだけで行うことが出来ます。Unityすごい。

Unityには他にも多数のゲーム作りに必要な機能があり、それらを無料で使うことができます。Asset Storeなる所謂素材を外部から手に入れられる所もあります。私は使ったことがありません。mozart
↑Spring Joint 2Dで無残にも振り回されるモーツァルト
 

モーツァルトをボタンによって自分で操作したい場合、スクリプトを書きます。工大祭まで私はJavascriptを使って書いていたのですが、これからはC#で書くことに決めました。見た感じあまり変わらないので多分大丈夫だと思います。
例えば
transform.Rotate(/*Vector3.eulerAngles*/);
という文字列を書き込むと、モーツァルトが回り始めます
詳しいことは日本語字幕付きのスクリプト講座が公式であるのでそこで学ぶことができます。


マルチプラットフォームもUnityの強みでしょう。Unityで作ったゲームはWindows、MacOSX、Linux、コンソールゲーム機、iOS、Android等用に簡単にビルドすることが可能です。 

ゲーム作りに興味がある けど何をすればいいのか分からないという皆さん、Unityを始めてみてはいかがでしょうか。おすすめです。




今度の冬コミでRogyGamesが出展します。多分私も出します。私は円が存在理由を求め旅に出るゲームを 作っています。以上です。
ギャラリー
  • ABUロボコン結果報告
  • スマホから部屋の電気をつけてみた
  • MakerFaireTokyo2017に出展します
  • MakerFaireTokyo2017に出展します
  • MakerFaireTokyo2017に出展します
  • MakerFaireTokyo2017に出展します
  • MakerFaireTokyo2017に出展します
  • MakerFaireTokyo2017に出展します
  • たのしいロボット帝国 製作物紹介
記事検索
最新コメント