Unityでioゲームのようなオンラインゲームを作ってみたい
1日1outputをやらなくなってから数ヶ月が経ちます。
就活生となり、心が荒みながらも毎日頑張っています。
私は今、Unityを使ったオンラインゲームを作ろうと考えています。
イメージとしては、agar.io、diep.ioのようなioゲームを作りたいと思っています。
ネットワーク設定はPUN(Photon Unity Networking)を使います。
今まで、バイトでしかUnityのゲーム開発経験がなかったことや、
初めてPUNを使ったオンラインゲームを作ったこともなかったこともあり、
苦労はしていますが、少しずつ形を作っていこうと思います。
一日一技術Output (3)
今日も忘れないうちに一技術を書いておきます。
今日もUnityの話。
uGUIで使用するCanvas。
画像だったり、ボタンやテキストを貼り付ける透明な台座のようなものだと認識しています。
CanvasにはRender Modeというものが三つあります。
・Screen Space - Overlay
おそらく、最初に作成されたCanvasはこれになっていると思います。
このモードの時、実際にオブジェクトが存在している場所とは別のところにCanvasは作成されています。
実際に、カメラでCanvasを映しているわけではなく、メインカメラで映されている画面の上にこのCanvasを表示しているようです。
・Screen Space - Camera
このモードの時、CanvasはRender Cameraとして登録したカメラの前に設置されます。
なので、もし、そのカメラとCanvasの間をオブジェクトが通り過ぎた場合には、そのオブジェクトの方が前面に表示されます。
・World Space
このモードのCanvasは、もはや薄っぺらいオブジェクトとして存在しています。
なので、カメラが動いても何か動作をスクリプトで書いていない場合は、追いかけてくることはありません。
また、カメラが動かないようなゲームでは、Scene上で後ろのオブジェクトとCanvasの位置を見ながら位置調整をすることができるので楽です。
それぞれのモードで向き不向きなゲームがあると思うので、ゲームにあったモードを使用しよう。
おわり
一日一技術Output (2)
二日目からすっかりこのことを忘れていました...
まぁ、大学の課題とテスト勉強がシャレにならないレベルなんですよ。
いまも、提出期限が残り2時間を切った課題を消化中です。
とりあえず、今日も一技術。
Unityの話なんですが、Inspector画面上でメンバ変数をいじりたいときに使うSerializefield,
下記のように「TooltipAttribute」を付け加えて書くことで、
Inspector上で変数名の上にマウスポインタを持って行くと、コメントが観れるようにできる!
[Serializefield, TooltipAttribute("コメント〜")] // これで「コメント〜」と表示される
private int HP = 10;
変数名だけだとわかりづらいようなものにつけると効果大。
あと、その値の単位(kg, 毎秒, 等)を書いておくのもいいかもしれない。
終わり
一日一技術Output (1)
約4ヶ月ぶりのブログ更新です。
この4ヶ月はかなり濃いものだった。
9月...某ゲーム会社にアルバイトとして入社。
10月...夏休みが終わり、おそらく大学生活で一番忙しい学期に突入。
11月...群馬の伊香保温泉に一泊。とてもいいホテルに泊まって大満足。
12月...アルバイトと自動車教習とテスト勉強を同時にこなす(今ここ)
濃い。
今後は、小さなことでもブログを書いていきたいものだ。
そこで、今日から(テスト準備期間真っ只中だが)
「一日一技術Input, Output」
なるものをやっていこうと思う。
これは、一日一つ自分の得た知識を、このブログに自分の言葉で書いていくというもの。
書くものは、大学の授業で学んだことや、アルバイトをして得た技術を中心にしていこうかと思う。
あまりにも書くことがなかったら、適当に○iitaで拾ってこよう。
今日の技術はUnityから。
プレイヤーオブジェクトをカメラで追従し、プレイヤーが方向転換した場合に、カメラの向きも変えて、常にプレイヤーが見ている方向を映し続けたい時がある(FPSとかね)。
これは実は一瞬でできる。
1. 映すのに使用したいカメラをプレイヤーの子要素にする。
2. 終わり
たったこれだけである。
わざわざ、プレイヤーの位置をUpdateの中で確認して、プレイヤーが動いたり回転したらカメラも動かす〜なんてことは必要ない。
あとは必要に応じてカメラの位置や向きを調節すると、プレイヤーの後ろや前を映すようにしたり、プレイヤーの目の位置に置いてFPS風にしたりすることができる。
今日はこれで終わり。テスト勉強がんばりまーす。
青春18きっぷで関東・東北4泊5日の旅をしてきました(1)
大学生のうちの時間があるうちに長期間の旅行に行きたいと思い、青春18きっぷで旅行に行ってきました。
1日目
朝6時に起きて、土浦を出発地点として、旅がスタートしました。
乗り継ぎの途中で郡山にて1時間の待ち時間ができたので、少しだけ駅周りを見てみることになったのですが、想像以上に駅構内だけでなく駅前広場も大きく驚きました。
倒木の影響で、80分の遅延が出て不安になりましたが、なんとか宿のある水沢まで到着しました。着いた時点で19時であり、移動に一日を使ってしまいました。座ってただけとはいえ、クタクタです。
2日目
水沢と前沢を観光してきました。
水沢には高野長英記念館なるものがありました。ここで、やっと高野長英の顔と名前が一致しました。それだけ。
昼ごはんにて、夢にまでみた前沢牛をすき焼きでいただきました(スマホで写真を撮っていなかったので残念ですが載せられません汗)。とろける美味しさでした...
前沢では、牛の博物館に行ってきました。
牛の歴史だけでなく、牛の部位ごとの美味しい食べ方など展示されており、見てるだけでお腹がすいてきます。
行きは徒歩で向かったのですが、手前にある坂がかなり急でヘトヘトになりました。帰りはタクシーで楽々。
晩御飯は1日目と同じ宿でいただきました。唐揚げがとても美味しかった(これもまた写真なし!)。
今回はここで、書き終わろうと思います。
帰省して落ち着いてきた頃に、3日目以降のことも書いていこうと思います。
ではでは。
おまけ
動物ごとでいうと、豚肉=牛肉=羊肉>鶏肉です。ジンギスカン美味しいよ。
部位でいうと、豚バラを使った豚の角煮が大好物です。毎日食べたい。
大学3年次の夏休みにやりたいこと
約1ヶ月ぶりのブログ更新となります。
とりあえず、今のところ決まっている8, 9月の予定としては、
8月中頃 青春18きっぷを使っての彼女と5日間旅
8月後半 ゲーム会社のインターン
9月前半 実家に帰省
があります。
これとは別に、自動車の免許も取るので、ちょいちょい自動車学校に行こうと思います。
これらを踏まえて、
- インターンまでにUnityの勉強
- ひとり旅
- バイト
これらをやりたいなーと思う。というか2以外はやる。絶対やる。
1. インターンまでにUnityの勉強
8月後半に、とあるゲーム会社の5daysインターンに参加することになったんだけど、事前課題として、「Unityのマニュアルをよんでくること」「ネットに上がってるチュートリアルみたいなものをやってみること」が渡された。
今回のインターンは私の人生初めてのチーム開発を行うらしく、すっごい緊張してる。私は「メンバーの足を引っ張るのが嫌だ」というより「メンバーにできないやつだと思われたくない」という気持ちが強いので(同じか??)、Unityの勉強は頑張っていこうと思う。
でも、インターンとはべつにゲーム開発もしてみたかったので、これを機にUnityを使ったゲーム開発もやってみようかなって思う。
2. ひとり旅
正直、やらなくてもいいかなって思いはあるけど、あまりに自分に行動力ないとも感じてるので、簡単にぶらぶら〜っと安い学生旅をやってみようかな。やるとしたら、帰省から戻ってきてすぐ。
3. バイト
さすがに金がない。今までは、ごまかしごまかしで過ごしてきたけど、やっぱりお金があったほうがやりたいことができる気がする。今の俺は時間があまりすぎてる。そのせいか、時間の使い方が、悠長というか下手くそ。
もちろん、バ畜になるつもりはないので、ある程度お小遣いを稼ぐ程度にバイトしたいと思う。できるなら、技術職がいいなぁ。転がってないかなぁ。拾いに行くかなぁ。
今年の夏休みは圧倒的成長したい。正直、休みは1週間に2日もあればいいや。
【おまけ】
お題スロット回して、一発目に出たものを簡単に書いてみるよ
お題:初めて買ったCD
多分、ニコニコ動画で歌い手をしてる赤飯さんのthe GOLDってアルバムです。
懐かしいなぁ。
もう一個お題行ってみよう
お題:最近見た映画
ワイルドスピードの新作。見終わった後、ずっと興奮してた。洋画をそこまで見ないから、新しい世界に踏み込めた感じがした。
終わり
ベンチャー企業での初1dayインターンを通して
こんにちは。
テスト期間に入り、日頃の勉強不足を恨む毎日です。
さて、つい先日、とあるIT系ベンチャー企業での1dayインターンに参加して来ました。
実は、このインターンが私の人生初インターンであり、緊張と不安で大変なことになってました。(しかも、向かう途中で山手線が止まる事件。泣きそうになった。)
それでも、「逃げない、やめない、諦めない」を人生の目標とするつもりなので、なんとかインターン先のビルにたどり着くことができました。
インターンが行われるフロアにつくと、同じインターン生が3人いて、全員が自称アプリ開発初心者ということもあって、リラックスできました。
間も無く開始したインターンでは、簡単な会社説明と自己紹介を済まして、すぐにメインイベントである、自作アプリの社員さんによるコードレビュー会が始まりました。
アドバイスとして、
- メソッド・変数名を見ただけでは、意味が伝わってこないものがあるので、もう少し名前を考えたほうが良い
- ライブラリを入れる際に、GitHubからダウンロードして〜フォルダをプロジェクトまで持って行って〜、っていうのはめんどくさいから、CocoaPodsを使おう
- データ保存はUserDefaultではなく、コアデータを使おう。UserDefaultは設定値などを保存する程度にする。履歴保存には向いていない。
という、ありがたいお言葉をいただきましたm(_ _)m
この中でも、一番最初の言葉はぐさっと刺さりました。
プログラミング初心者は、誰でもやってしまう事だと思います。
let a = 10
aってなんだよ!?!?
なんだろうね。
個人で開発しているうちは、困るのは自分だけだし、なんとなくわかる。
でも、チーム開発となるとこうはいかないと思う。
めちゃくちゃ長い名前がついたとしても、意味がわかるんだったらaよりはマシ。
読みやすいコードに関する本があったはずだから、それを読んでみようと思います。
そして、コードレビュー終了後に懇親会がありました。
いろんなエンジニアさんや、インターンに参加した学生さんたちと会話してるうちに、思った事。
私はどんなアプリが作りたいんだろう。。。
結構、悩んでます。今も。
ずっと前からアプリは開発したいと思ってた。
でも、なんのアプリかまでは考えてなかった。。。
とりあえず、たくさんのアプリに触って、「こんな機能があったら」だけでも見つけたいなと思います。
ゲームアプリ開発は楽しそう。
アイデアください。
では、テスト頑張ります。