Unity5.5で2Dゲームを作って遊ぶ その2 操作スクリプト編
前回
前回はスプライトにRigitbodyやColiderを付けることでコードを書かなくても物理演算と接触判定が実装できることを知った。
今回はコードを書いて、それを反映する。
スクリプトの作成
Projectタブで右クリック→Create→C#Scriptを選択
フォルダはわかりやすいようにScriptsというフォルダを作った。
スクリプト名は操作可能という意味でOperatableにしたが英語的に正しいのかは知らない。
スクリプトは、最初に呼ばれるStartメソッドと、毎フレーム呼ばれるUpdateメソッドからなる。
GetComponent<コンポーネントの種類>()でコンポーネントを取得できる。
なのでStartメソッド内でRigidbody2DとTransformコンポーネントを取得しておいた。
入力
入力はInputクラスから取得できる。デフォルトでキーボード、マウス、ゲームパッドの入力がまとめて得られる。
どういうことかというと、GetAxisで上下左右キーの入力が受け取れるのだが、ゲームパッドで左にスティックを倒しても、キーボードの左キーを押してもGetAxis("Horizontal")は1を返す。(つまりゲームパッドでもキーボードでも遊べる)
ちなみにGetAxisはアナログ入力にも対応していて、ゲームパッドなどのスティックの倒し具合によって-1~1までのfloat値が返る。
コードではとりあえず0.5を超えたら入力したとみなして判定している。
ボタン入力
GetButtonDownで対応するキー・ボタンが押されたかどうか取得できる。
対応するボタンとその名前は、EditメニューのProject Settings→Inputから見ることができる。ボタンを追加したりもできる。
デフォルトだとFire1、2、3とJumpボタンが登録されている。
スクリプト反映
書いたコードをHierarchyタブのPlayerのところにドラッグアンドドロップするか、PlayerのインスペクターでAdd ComponentボタンからScriptを選択することでスクリプトコンポーネントをアタッチできる。
これでスクリプトを反映させれば操作が可能になったはずだ。
Inputに関してはまた別の機会に詳しく調べてまとめようと思う。
Unity5.5で2Dゲームを作って遊ぶ
久々にUnityいじってみました
環境
Unity5.5.0
Windows10
Visual Studio2015
つくりたいもの
横スクロールアクション
セットアップ
Visual Studio Tools for Unityをインストール。これでVSでUnityのスクリプトを編集できるようになります。
Unityを起動して New Projectで2Dを選択してプロジェクトを作成
素材
ニンジャスレイヤーとスリケン(手裏剣ではない)を描いてみた。
素材はなんでも良いです。
れっつら作成
Projectタブに先ほどの画像をアセットとしてロードする。
「Sprites」などそれっぽい名前のフォルダーを作り、画像をドラッグ・アンド・ドロップ。
AssetをHierarchyタブにドラッグアンドドロップすると、その画像のスプライトがハイエラルキーに追加される。
ところで勉強会などで「ハイエラルキー」と耳にするが、英語の発音はハイアラーキーらしいし、かと言ってヒエラルキーなのかといわれると、元のドイツ語はキーではなくヒエラルヒーと発音するらしいので結局日本語でなんと呼ぶのが正しいのかわからない。誰か教えて。
Hierarchyタブで先ほどのスプライトを選択すると、インスペクター(Inspector)タブに情報が表示される。
デフォルトだと名前が素材名そのままだが、インスペクターの一番上が名前なので適宜わかり易い名前にしよう。今回は「Player」にした。
ここまでをファイルメニューからSave Scenesでシーンとして保存しておこう。
さて、インスペクターに色々表示されていると思う。これらはコンポーネントといい、スプライトなどのゲームオブジェクトに色々なコンポーネントを組み合わせることで、極力コードを書くこと無くゲームらしい動作をさせることができる。
例えば
Transformコンポーネントはオブジェクトの位置、回転、拡大率を決められる。
Rigidbody / Rigidbody2Dコンポーネントは物理演算を付与できる。
○○Colider / ○○Colider2Dコンポーネントは物体の当たり判定を決めることができる。
オブジェクトの動作を記述するスクリプトもコンポーネントである。
ここでPlayerのスプライトに、インスペクターのAdd ComponentからPhysics2D → Rigidbody2Dコンポーネントを追加し、Gravity Scaleを適当な値にする。(1など)
画面上部の再生ボタン(三角マーク)から実行すると、Gameタブでゲームが動作する。
すると重力に従ってプレイヤーが下へ落ちて行くはず。
このままだと画面外まで無限に落ちるので地面を作ろう。
ウィンドウ上部のGameObjectメニューからはゲームオブジェクトを作成できる。
2D Objectはスプライトしかないっぽいので、3DオブジェクトからCubeを持ってくる。
名前はGroundにした。
Sceneタブに黒っぽい四角形が表れるので選択する。すると四隅をドラッグで拡大できるようになるので、長い長方形に引き伸ばして画面の下の方へ配置する。
実行してみると、Cubeをすり抜けてやはり奈落へ落ちて行ってしまう。
これはスプライトと地面に衝突判定(当たり判定)がない為だ。
PlayerのインスペクターからAdd Componentを押し、Physics2D→Box Colider 2Dを追加しよう。
おそらく自動で範囲が決められると思うが、変更したい際はインスペクターにEdit Coliderボタンがあるのでそれを押すと変更できる。
Groundの方のインスペクターでもコライダーを追加する。すでにBox Coliderがあるだろ!と思われるかもしれないが、このCubeは3D Objectから持ってきたのを思い出して欲しい。このコライダーは3D用なので、2Dのコライダーとは干渉しないのだ。(3D用のコライダーはBox Colider 3DではなくただのBox Coliderという名前なので注意)
Box Coliderを右クリックでRemove Componentし、新たにBox Colider 2Dを追加する。
これで実行してみると、ちゃんとプレイヤーが地面に立つはず。
すごい。物理演算と接触判定をコードを一切書かずにできた。Unityすごい。
次回は操作するためのスクリプトを書こう。
覚え書き
コライダーをBoxではなくcapsuleなどにしたとき、スプライトが回転してしまったりする。
そういう時はRigidbodyのConstraintsのFreeze RotationのZ軸にチェックを入れると、Z軸回転しなくなる。
これは3Dゲームなんかでも、Y軸回転はしたいけどX,Z軸回転はしてほしくない時等に使える。
アストルフォくんとキスする動画
pixivだと容量の都合で小さくなってしまうので
アストルフォくんキスカラー.gif - Google ドライブ
自分の画力ではここまでですが、アストルフォくんはほんとはもっとかわいいので皆さん描いてください(土下座
AssortFav ふぁぼ欄の画像を整理するソフト
ふぁぼ(いいね)を整理しよう!
みなさん、Twitterしていますか?
好きなイラストレーターのイラストや、可愛い猫の画像など、ついついたくさんいいねしてしまいますよね。
あるいはあとで見ようとしていいねしたものの、いいね欄をなんどもスクロールして探すのが大変、なんてことは無いでしょうか。
今回はいいね欄を整理し、画像を保存できるアプリケーションを作ったので紹介します。
AssortFav ふぁぼを整理するやつ
上記画像から販売ページヘ移動できます。
Windows向けソフトウェアです。
使い方
どんなソフトが出来たのか、使い方を画像を交えて紹介します。
まずは基本画面です。最初は「認証」ボタンからアカウントを認証します。
URLがウィンドウに表示されるので、クリックしてアクセスしてください。
Twitterの認証ページに飛ぶので、ユーザー名とパスワードを入力します。
すると数桁の数字が表示されるので、それを先ほどのウィンドウのテキストボックスに入力し、OKボタンを押します。
一度認証に成功すれば、次回以降は認証しなくても大丈夫です。
「次の20件を読み込む」ボタンを押すと、いいねを20件読み込みます。
後述する設定で、画像を含んだツイートのみ表示することも出来ます。
アイコンをクリックするとユーザープロフィールウィンドウを、
画像をクリックすると画像を表示します。
下の保存ボタンで、括弧の中にある名前のフォルダに画像を保存します。
フォルダ名とフォルダ数は後述の設定で変更できます。
一度保存したツイートは色がオレンジ色に、前回起動時に最後に読み込んだツイートは色が水色になります。
ユーザープロフィールウィンドウです。
ユーザーのツイートを読み込むことが出来ます。
設定
ダイアログ
- ツイートを読み込んだ時、そのうちの何件が画像ツイートかなどを表示するか決められます。
- 画像・メディアをダウンロードした時、結果のダイアログを表示するか決められます。
- タブ切り替え時に再読み込みした時、読込中のメッセージを出すか決められます。
ツイート
- ツイートにアイコンを表示するか変更できます。
- いいね欄に画像のないツイートを表示するか決められます。
- ツイートの最大表示件数を決められます。あまり大きな数字にすると、パソコンのスペックによってはフリーズすることがあります。
- URLを開くブラウザを変更できます。exeファイルかショートカットファイルを指定してください。
フォルダ
- 保存するフォルダを設定できます。
- 右上のテキストボックスにフォルダ名を入れて、「追加」ボタンを押すとフォルダを追加します。
- 設定はfolders.txtファイルを変更することでも出来ます。
- その際、フォルダ名の後ろにカンマで区切ってHTMLカラーを指定するとボタンの色を変更できます。(かわいい,#FFFFFF のように)
ファイル名
- 画像・メディアを保存する際のファイル名の命名規則を変更できます。
- ステータスIDはツイートごとに決められているIDです。
- ステータスIDを含むパターンを選択した場合は保存した際にツイートがオレンジ色になります。
購入はこちらから
Twitterのフォロワーのコミケのスペースを調べるソフト
Twitterでコミケに出る人はだいたい名前の後ろに@スペース名を入れることが多いので、それを全部取得してCSVを作るソフトを作りました。
前回の例大祭のスペースを調べるソフトを改良したものになります。
フォロー・フォロワー両方を取得するのでフォロー数多い人などはめっっっちゃ時間かかります。
別なアカウントに切り替えるとき・使用しなくなった時はtoken.txtを削除してください
スクリーンショット(出力したCSVをエクセルでフィルタしたもの)
ダウンロード:
証明書がないので起動しようとするとWindowsに止められますが、「詳細情報」をクリックして起動してください。
更新履歴
v1.0 とりあえず完成
v1.01 スペースの大文字小文字を区別するように(西4階対応)
フォロワーの差分をとったり凍結されてないか調べるソフト
最近Twitterで凍結される人が増えているので、フォロー/フォロワーの差分をとるソフトを作りました。
例によって広告が出ます
差分を取る過程で凍結されているかも調べます。
原理は単純にIDで検索して何かエラーが起きたら凍結の疑いありということにしています。
○使い方
1日目:認証メニューから認証してフォロー一覧/フォロワー一覧を保存ボタンを押してください。
2日目以降:フォロー一覧/フォロワー一覧を保存した後、フォロー差分/フォロワー差分ボタンを押すと、前回保存した時から減った/増えたユーザーをリスト化し、凍結されているかもチェックします。
ダウンロードは以下リンクより
○注意
証明書が無いので実行しようとするとWindowsに止められます。
その場合は「詳細情報」をクリックして「実行」を選択してください。
Windows10で大きいディスプレイを使用している人はプロパティの「高DPI設定では画面のスケーリングを無効にする」にチェックを入れてください。
更新履歴
v0.2 全体的に上手く行ってないバグを修正。やっと使い物になった