読者です 読者をやめる 読者になる 読者になる

Unity5.5で2Dゲームを作って遊ぶ その2 操作スクリプト編

前回 

namekatei.hateblo.jp

前回はスプライトにRigitbodyやColiderを付けることでコードを書かなくても物理演算と接触判定が実装できることを知った。

今回はコードを書いて、それを反映する。 

 

 スクリプトの作成

Projectタブで右クリック→Create→C#Scriptを選択

フォルダはわかりやすいようにScriptsというフォルダを作った。

スクリプト名は操作可能という意味でOperatableにしたが英語的に正しいのかは知らない。

Unity Player Oparation

 

スクリプトは、最初に呼ばれる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ボタンが登録されている。

f:id:myon886:20170327142937p:plain

スクリプト反映

書いたコードをHierarchyタブのPlayerのところにドラッグアンドドロップするか、PlayerのインスペクターでAdd ComponentボタンからScriptを選択することでスクリプトコンポーネントをアタッチできる。

 

f:id:myon886:20170327143430p:plain

これでスクリプトを反映させれば操作が可能になったはずだ。

Inputに関してはまた別の機会に詳しく調べてまとめようと思う。

Unity5.5で2Dゲームを作って遊ぶ

久々にUnityいじってみました

環境

Unity5.5.0

Windows10

Visual Studio2015

つくりたいもの

横スクロールアクション

セットアップ

Visual Studio Tools for Unityをインストール。これでVSでUnityのスクリプトを編集できるようになります。

Unityを起動して New Projectで2Dを選択してプロジェクトを作成

 

素材

f:id:myon886:20170327131954p:plain

f:id:myon886:20170327131959p:plain

ニンジャスレイヤーとスリケン(手裏剣ではない)を描いてみた。

素材はなんでも良いです。

 

れっつら作成

Projectタブに先ほどの画像をアセットとしてロードする。

「Sprites」などそれっぽい名前のフォルダーを作り、画像をドラッグ・アンド・ドロップ。

f:id:myon886:20170327132338p:plain

 

AssetをHierarchyタブにドラッグアンドドロップすると、その画像のスプライトがハイエラルキーに追加される。

f:id:myon886:20170327133558p:plain

ところで勉強会などで「ハイエラルキー」と耳にするが、英語の発音はハイアラーキーらしいし、かと言ってヒエラルキーなのかといわれると、元のドイツ語はキーではなくヒエラルヒーと発音するらしいので結局日本語でなんと呼ぶのが正しいのかわからない。誰か教えて。

 

Hierarchyタブで先ほどのスプライトを選択すると、インスペクター(Inspector)タブに情報が表示される。

デフォルトだと名前が素材名そのままだが、インスペクターの一番上が名前なので適宜わかり易い名前にしよう。今回は「Player」にした。

ここまでをファイルメニューからSave Scenesでシーンとして保存しておこう。

さて、インスペクターに色々表示されていると思う。これらはコンポーネントといい、スプライトなどのゲームオブジェクトに色々なコンポーネントを組み合わせることで、極力コードを書くこと無くゲームらしい動作をさせることができる。

例えば

Transformコンポーネントはオブジェクトの位置、回転、拡大率を決められる。

Rigidbody / Rigidbody2Dコンポーネントは物理演算を付与できる。

○○Colider / ○○Colider2Dコンポーネントは物体の当たり判定を決めることができる。

オブジェクトの動作を記述するスクリプトコンポーネントである。

 

ここでPlayerのスプライトに、インスペクターのAdd ComponentからPhysics2D → Rigidbody2Dコンポーネントを追加し、Gravity Scaleを適当な値にする。(1など)

f:id:myon886:20170327134844p:plain

画面上部の再生ボタン(三角マーク)から実行すると、Gameタブでゲームが動作する。

すると重力に従ってプレイヤーが下へ落ちて行くはず。

このままだと画面外まで無限に落ちるので地面を作ろう。

ウィンドウ上部のGameObjectメニューからはゲームオブジェクトを作成できる。

2D Objectはスプライトしかないっぽいので、3DオブジェクトからCubeを持ってくる。

名前はGroundにした。

Sceneタブに黒っぽい四角形が表れるので選択する。すると四隅をドラッグで拡大できるようになるので、長い長方形に引き伸ばして画面の下の方へ配置する。

f:id:myon886:20170327135435p:plain

実行してみると、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向けソフトウェアです。

 

使い方

どんなソフトが出来たのか、使い方を画像を交えて紹介します。

 

まずは基本画面です。最初は「認証」ボタンからアカウントを認証します。

f:id:myon886:20160910183825p:plain

 

URLがウィンドウに表示されるので、クリックしてアクセスしてください。

f:id:myon886:20160910184318p:plain

Twitterの認証ページに飛ぶので、ユーザー名とパスワードを入力します。

すると数桁の数字が表示されるので、それを先ほどのウィンドウのテキストボックスに入力し、OKボタンを押します。

f:id:myon886:20160910183827p:plain

一度認証に成功すれば、次回以降は認証しなくても大丈夫です。

「次の20件を読み込む」ボタンを押すと、いいねを20件読み込みます。

後述する設定で、画像を含んだツイートのみ表示することも出来ます。

アイコンをクリックするとユーザープロフィールウィンドウを、

画像をクリックすると画像を表示します。

下の保存ボタンで、括弧の中にある名前のフォルダに画像を保存します。

フォルダ名とフォルダ数は後述の設定で変更できます。

f:id:myon886:20160910183830p:plain

一度保存したツイートは色がオレンジ色に、前回起動時に最後に読み込んだツイートは色が水色になります。

 

ユーザープロフィールウィンドウです。

ユーザーのツイートを読み込むことが出来ます。

f:id:myon886:20160910183832p:plain

 

設定

ダイアログ

f:id:myon886:20160910184924p:plain

  • ツイートを読み込んだ時、そのうちの何件が画像ツイートかなどを表示するか決められます。
  • 画像・メディアをダウンロードした時、結果のダイアログを表示するか決められます。
  • タブ切り替え時に再読み込みした時、読込中のメッセージを出すか決められます。

 

ツイート

f:id:myon886:20160910184930p:plain

  • ツイートにアイコンを表示するか変更できます。
  • いいね欄に画像のないツイートを表示するか決められます。
  • ツイートの最大表示件数を決められます。あまり大きな数字にすると、パソコンのスペックによってはフリーズすることがあります。
  • URLを開くブラウザを変更できます。exeファイルかショートカットファイルを指定してください。

 

フォルダ

f:id:myon886:20160910184934p:plain

  • 保存するフォルダを設定できます。
  • 右上のテキストボックスにフォルダ名を入れて、「追加」ボタンを押すとフォルダを追加します。
  • 設定はfolders.txtファイルを変更することでも出来ます。
  • その際、フォルダ名の後ろにカンマで区切ってHTMLカラーを指定するとボタンの色を変更できます。(かわいい,#FFFFFF のように)

 

ファイル名

f:id:myon886:20160910184936p:plain

  • 画像・メディアを保存する際のファイル名の命名規則を変更できます。
  • ステータスIDはツイートごとに決められているIDです。
  • ステータスIDを含むパターンを選択した場合は保存した際にツイートがオレンジ色になります。

 

 

購入はこちらから

 

 

Twitterのフォロワーのコミケのスペースを調べるソフト

Twitterコミケに出る人はだいたい名前の後ろに@スペース名を入れることが多いので、それを全部取得してCSVを作るソフトを作りました。
前回の例大祭のスペースを調べるソフトを改良したものになります。
フォロー・フォロワー両方を取得するのでフォロー数多い人などはめっっっちゃ時間かかります。
別なアカウントに切り替えるとき・使用しなくなった時はtoken.txtを削除してください

スクリーンショット(出力したCSVをエクセルでフィルタしたもの)
SS_datacsv - Excel_20160610213249_No00

ダウンロード:

ux.getuploader.com


同人誌、同人ゲーム、同人ソフトのダウンロードショップ - DLsite.com

証明書がないので起動しようとするとWindowsに止められますが、「詳細情報」をクリックして起動してください。
SS_Windows によって PC が保護されました_20160415174941_No00


 

 
更新履歴
v1.0 とりあえず完成
v1.01 スペースの大文字小文字を区別するように(西4階対応) 

フォロワーの差分をとったり凍結されてないか調べるソフト

最近Twitterで凍結される人が増えているので、フォロー/フォロワーの差分をとるソフトを作りました。
SS_差分取るマン_20160605002225_No00
例によって広告が出ます

差分を取る過程で凍結されているかも調べます。
原理は単純にIDで検索して何かエラーが起きたら凍結の疑いありということにしています。

○使い方

1日目:認証メニューから認証してフォロー一覧/フォロワー一覧を保存ボタンを押してください。
2日目以降:フォロー一覧/フォロワー一覧を保存した後、フォロー差分/フォロワー差分ボタンを押すと、前回保存した時から減った/増えたユーザーをリスト化し、凍結されているかもチェックします。

ダウンロードは以下リンクより

ux.getuploader.com

 

 

 

 

同人誌、同人ゲーム、同人ソフトのダウンロードショップ - DLsite.com


○注意
証明書が無いので実行しようとするとWindowsに止められます。
その場合は「詳細情報」をクリックして「実行」を選択してください。
SS_Windows によって PC が保護されました_20160415174941_No00

Windows10で大きいディスプレイを使用している人はプロパティの「高DPI設定では画面のスケーリングを無効にする」にチェックを入れてください。
SS_FollowerListexeのプロパティ_20160605002127_No00

更新履歴
v0.2 全体的に上手く行ってないバグを修正。やっと使い物になった
 

Twitterのフォロワーの例大祭スペースをまとめるソフト

Twitter例大祭に出る人はだいたい名前の後ろに@スペース名を入れることが多いので、それを全部取得してCSVを作るソフトを作りました。
基本的な機能しかないのとデバッグもほとんどしてないのでどのくらい使えるかは微妙です。
フォロー・フォロワー両方を取得するのでフォロー数多い人などはめっっっちゃ時間かかります。
別なアカウントに切り替えるとき・使用しなくなった時はtoken.txtを削除してください

ダウンロード(新しい方)
同人誌、同人ゲーム、同人ソフトのダウンロードショップ - DLsite.com
ダウンロード(古いバージョン)

証明書がないので起動しようとするとWindowsに止められますが、「詳細情報」をクリックして起動してください。

 スクリーンショット(出力したCSVをエクセルでフィルタしたもの)
SS_datacsv - Excel_20160425055348_No00
 
更新履歴
v0.1 とりあえず完成
v0.2 設定で1桁にも対応できるようにした
v0.3 読み込みを非同期で実行できるように
v0.4 プログレスバーが消えないバグの修正
   タイトル行の追加
   TwitterホームのURLと、プロフィールに載っているURLの追加
v0.5 全角英数字に対応
v0.6 数字とa,bの間にハイフンがある人にも対応
v0.7 ─(罫線)に対応……罫線とかやめてよぉ!