ぱふの自由帳

週2更新目指す技術ブログ。メインはUnity。最近、Railsかじり始めましたー!良ければフォローお願いします(`・ω・´)

【Unity】Animationから関数を呼び出す方法

はじめに

Animationの中で変数は変更出来るケド...関数って呼び出せるの?

という方のために、関数を呼び出す方法についてですー。

環境

  • Unity2018.1.0f2

やり方

下画像はAnimationウィンドウのスクショです。
赤枠をクリックか黄色枠で右クリックすることで関数を呼び出すAnimation Eventを追加することが出来ます。
f:id:PafuOfDuck:20180512042319p:plain

追加すると以下の画像のような印がつきます。
f:id:PafuOfDuck:20180512042639p:plain

印部分をクリックするとInspectorが以下のように表示されるので、実行したい関数を選択しましょう。
f:id:PafuOfDuck:20180512042809p:plain

すると、Animationの実行時に関数が実行されるはずです。

注意

  • Animationを行っているオブジェクトにアタッチされているスクリプトの関数を選択可能です。子オブジェクトにアタッチしているスクリプト内の関数を呼び出すことは出来ません。

  • privateでもpublicでも関係なく呼び出せます。

さいごに

Animationで子の値を弄れるんだから、子オブジェクトの関数も呼び出せるようにして欲しかったり...(。´・ω・`)

Twitterのフォロー歓迎です...(`・ω・´) ぜひ!

【Unity】ProBuilderに入門した! #03 家を建築 ~屋根作り~

はじめに

前回の記事では部屋と廊下を作成しましたー。
今回は屋根づくりをやって見たいと思います〜。

環境

シリーズ通して変化しませんが、一応書いておきます。

  • Unity2018.1.0f2
  • ProBuilder 3.0.6

早速、家づくり

屋根のモトを追加

これは前回の復習ですね。
屋根となる部品をShiftを押しながら追加しましょう。

f:id:PafuOfDuck:20180505175150g:plain

屋根作り(基本)

ここから少し複雑です。
まず、屋根に不要な上面を削除します。
上面を選択して、Delete Facesをクリックすると削除できます。

f:id:PafuOfDuck:20180505175258g:plain

次に、削除した面の頂点を全て選択します。
一つずつ選択していく方法とSelect Holesを使って一気に選択する方法があります。GIFアニメは後者を使用しています。

f:id:PafuOfDuck:20180505175305g:plain

最後に、Collapse Verticesで選択した頂点を合わせます。(キュッと結びつけるようなイメージ)

f:id:PafuOfDuck:20180505175405g:plain

はい。屋根っぽくなりましたね。

屋根作り(応用?)

時間がある方はこちらをどうぞー。
尖った屋根を一般的(?)な形に直していきたいと思います。

まず、屋根の面を2つほど削除したいのですが、頂点を共有しているので上手く削除できません。なので、Split Verticesで頂点の共有を削除しましょう。
共有を削除したのちに、2つの面を削除しましょう。

f:id:PafuOfDuck:20180505190310g:plain

次に、残った2面を良い感じに変形します。
そして、空いている箇所をFill Holeという機能を使って埋めます。

f:id:PafuOfDuck:20180505193722g:plain

最後に、追加した面が砂時計のような6角形になっているので、Connect Verticesを利用して分割しておくと良いようです。(6角形は色々と不便らしいです)

f:id:PafuOfDuck:20180505193730g:plain

もう一つの部屋にも適当な屋根を作る

お好きなように作ってください。作らなくても良いです。笑 GIFアニメのような適当さでも問題ありません。

f:id:PafuOfDuck:20180505194229g:plain

部屋が完成!

記事としては長いですが、慣れれば5分程度の作業量だと思います!

今のところ、家の中を見ることは出来ません(下のスクショ参照)が次回は内側から見られるように設定していく予定です〜。

次記事はコチラ

工事中

前記事はコチラ

pafu-of-duck.hatenablog.com

Twitterのフォロー歓迎です...(`・ω・´) ぜひ!

【Unity】ProBuilderに入門した! #02 家を建築 ~部屋と廊下作り~

はじめに

前回の記事では導入についての説明でしたー。
今回は「ProBuilderのこのボタンはこの機能で〜」のような説明回です!
...と言いたいところですが、紹介がめんど...とっても多機能なので、いきなり3Dモデルを作ります!

そして....
記事を書いている内に長くなる予感がしたので、家建築編は何回かに分けたいと思います〜。

環境

シリーズ通して変化しませんが、一応書いておきます。

  • Unity2018.1.0f2
  • ProBuilder 3.0.6

そうだ、家作ろう

早速、前記事の続きから作業を始めていきましょう!
今回の記事から家を作っていきますよ〜。

ProBuilder Windowの追加

Tools > ProBuilder > ProBuilder Windowを選択してProBuilder Windowを追加しましょう。このProBuilder Windowは頻繁に操作するそうなので、触りやすい所に配置するのが良いみたいです。

f:id:PafuOfDuck:20180505000138p:plain

追加すると、Scene画面にも変化が出ます。(赤枠)

f:id:PafuOfDuck:20180505000218p:plain

ProGridsの設定

この設定が何を意味するのか今の所不明ですが、オススメされたので従っておきましょう。以下のように設定して下さい。

f:id:PafuOfDuck:20180505001706p:plain

Cubeの追加

これは、いつも通り。お好きな方法でCubeを作成しましょう。
場所だけ(0,0,0)にしておきましょう。

f:id:PafuOfDuck:20180505001613p:plain

CubeをProBuilderで編集できるようにする

このCubeはフツーのCubeです。なので、ProBuilderで弄れるCubeに変身させましょう。
Cubeオブジェクトを選択して、ProBuilderizeボタンを押してください。

f:id:PafuOfDuck:20180505002554g:plain

ProBuilderizeボタンを押すことでProBuilderで編集可能になるようです。

Cubeをデカくする

ProBuilderのツールバーを面モードに変更します。

f:id:PafuOfDuck:20180505004829p:plain

すると、Scene上で面が選択できるようになり、面を色々弄れるようになります。
Wを押して操作モードを変更してCubeを大きくしましょう。

f:id:PafuOfDuck:20180505005434g:plain

CubeのとなりにCubeを作る

CubeのとなりにCubeを作るといっても、Cubeオブジェクトを追加するわけではありません。それでは何の意味もありません...笑

Shiftを押しながらサイズを大きくしてみましょう。切れ目(?)が入っていることから、Cubeが大きくなったのではなく、独立したCubeが作られたことが分かりますね。 (今後も説明のために”独立した”という表現を多用します。)

f:id:PafuOfDuck:20180505010113g:plain

このShiftを押しながらという行為はProBuilderでは、独立したモノを新たに追加するという意味合いを持つようです。(次のステップでも使用しますよ!)

出っ張りを作る

今度は拡大縮小の機能をShiftを押しながら使ってみましょう。(キーボードのRに割り当てられていると思います。)
すると、独立したサイズの違う面が生成されるはずです。次に、その面を一つ前のステップで行ったように伸ばしてあげましょう。

f:id:PafuOfDuck:20180505011609g:plain

はい。あっという間に出っ張りが出来ましたね。

出っ張りの隣にもう1つCubeを作ろう

今までの操作が理解出来ているか試すのにちょうど良いので、下のGIFアニメのような操作を行って下さい。(ヒント:Extrudeと表示されていないときにはShiftを押していません)

f:id:PafuOfDuck:20180505014402g:plain

最後の微調整は何をしていたかって?
では、次のステップにお進み下さい。

はい、出来た。

2つの部屋と渡り廊下が完成しましたねー。
最後のは渡り廊下っぽくするために部屋との高さを合わせたっぽいです。

一旦終了

長いと(読者さんも私も)ダレちゃうので、一旦休憩です!

次回は屋根作るっぽいので頑張るぞー。

次記事はコチラ

工事中

前記事はコチラ

pafu-of-duck.hatenablog.com

Twitterのフォロー歓迎です...(`・ω・´) ヨロシク!

【Unity】ProBuilerに入門した! #01 導入編

はじめに

「unityroomとのコラボイベントもあるし、ProBuilder使うかー!」と思い立ったので、数回に分けて【ProBuilderの導入〜モデリングの作成】を記事にしていきたいと思いますー。

なお、基本的にはチュートリアル(Unite Tokyo 2018 Training Day)に沿って学習するので、そっちを見たほうが早かったりするかもです...(`・ω・´)

ProBuilderとは?

Unity2018から無料で使えるようになった3Dモデリングツール。
どうやら便利らしい。

環境

  • Unity2018.1.0f2
  • ProBuilder 3.0.6

いざ、導入

どうやらProBuilderの他に2つほどAssetを追加すると良いらしいです。
(必須ではなさそう?)

この2つはAssetStoreから各自インストールお願いします。
(AssetStoreが分からない人はググってね! )

ProBuilderの導入

  1. Unity2018以前のバージョンの方はこちらからアップデートをしてください。 ※ アップデートすると古いプロジェクトがうまく立ち上がらなくなる可能性もあるので、自己責任でお願いしますー。

  2. Unity2018が用意できたら3Dのプロジェクトを作成してください。

  3. UnityにProbBuilderをインストールします。
    Window > Package Manager を開き、Allの方からProBuilderをインストールしてください。(未インストールの場合、赤枠の箇所にinstallボタンがあるはずです)
    f:id:PafuOfDuck:20180504181818p:plain f:id:PafuOfDuck:20180504182943p:plain

導入完了?

動画曰く、全ての導入が終わるとScene画面が以下のようになるらしいです。

f:id:PafuOfDuck:20180504232138p:plain

「あれ?ツールバーみたいなの出てないんだけど...」という私のような方も慌てないでください。Tools > ProGrids > ProGrids Windowを選択すると表示されるようになります!

導入完了!

ProGridsやPolybrushの用途もまだ不明ですが、以上で導入は完了です!
次回はProBuilderを実際に使ってみた記事になるはず...?

次記事はコチラ

pafu-of-duck.hatenablog.com

Twitterのフォロー歓迎です...(`・ω・´) ヨロシク!

【Unity】UniQuはじめました。(2018/4/30最終更新)

目次

はじめに

Unityの質問用コミュニティUniQuをSlackで作成しましたー!

この記事はそんなUniQuについてまとめております〜。
参加者は一度目を通してくださいね!

UniQuってどういう意味?

UniQu = Unity + Questionです。

...ネーミングセンスは気にするな!

UniQuへの参加方法は?

私(@PafuOfDuck)にTwitterでDMを送ればOKです!
この記事へのコメントでも大丈夫かも...?

「I'mガチ初心者!OK?」「Slack?美味しいの?」という方もご相談ください〜。

参加後に行うことは?(読んでね!!)

  • randomで挨拶
  • 全てのルームにデフォルトで参加するので、興味のない部屋は適当に扱う

で大丈夫です!slackへの絵文字の追加もご自由にどうぞ!

各チャンネルの使い方

チャンネル名 目的
chatting 《ゲームの仲間を誘ってもOK》なんでもありのしゃべり場としてどうぞ!
demand コミュニティへの要望を書き込んじゃいましょ!
general 「コミュにチャンネル追加しました!」のような全体連絡に使用します。 基本的に使用はしないでください。
promotion 「作品を見てくれ!」「評価してくれ!」用のチャンネル。宣伝はココのみでお願いします。
question_box 質問用です。気軽に聞いてみましょう!(質問のルールは必ず読んでください!)
random 「初めましてー!」「いらっしゃーい」のような場所に使っていきましょう
share 「良いこと知った!or 良い記事見つけた!教えてやんよ!」は是非こちらに!
shout 「hooo~!!!実装できたZEEE~!!」のように自分の感情を出したくなったらここにどうぞ!笑
tweet Rigidbody上手く動かないなぁ...(チラチラ)」のように、『質問までは行かないけど、アドバイスが欲しい時』にお使いください。

質問のルール(必読!!!)

ルールといっても簡単です!

  1. 質問をする方は最後に(未解決)をつけてください。
    f:id:PafuOfDuck:20180430085318p:plain

  2. 質問に答える方はスレッドを開始して返信をお願いします。
    f:id:PafuOfDuck:20180430085321p:plain

  3. スレッド内で会話する際は画像の赤枠のチェックボックスにチェックをつけないでください。
    f:id:PafuOfDuck:20180430085314p:plain

  4. 質問が解決したら、質問者の方は最後の(未解決)(解決済み)に変更してください。 f:id:PafuOfDuck:20180430085324p:plain

以下は間違えやすいので注意です!!

  • 質問した内容は削除せずに残しておいてください(後々誰かの役に立ったり、同じ質問に再度回答する手間を軽減出来そうだからです)

  • 途中で自己解決した場合は返信がついていなければ削除を、返信がある場合は「自己解決しましたのように」一言&(解決済み)に変更して消さないでください

チャンネルへの参加方法

好きなチャンネルを選んで参加可能です。
チャンネルへの参加方法はこちらの記事を参考にしてください。

よく分からない場合は個別に質問を貰えれば対応します。

会話のルール

現在、確立しているルールを掲載しておきます。

  • スレッドに返信する場合は下の画像のようにチェックを付けずに投稿してください。(付けると会話画面が見づらくなってしまうためです)
    f:id:PafuOfDuck:20180430222528p:plain

さいごにお願い

善意で成り立つコミュニティなので、分かる質問があればアドバイスをお願いします!もちろん、自分の時間を無理やり削ったりしなくて大丈夫です(`・ω・´)!

また、分からない質問であっても「こうしたらいけるかも?」「力になれません!」のような交流があると活気ある良いコミュになりそうなので、ご協力をお願いします...!

【Unity】'Random' is an ambiguous reference between 'System.Random' and 'UnityEngine.Random' というエラーを解決する

はじめに

タイトルでも書いていますが、'Random' is an ambiguous reference between 'System.Random' and 'UnityEngine.Random'というエラーが出た時の対処法をメモしておきます。

原因

コード内にRandom使ってるけど、System.RandomUnityEngine.Randomのどっちを使うつもりなの?ということがエラーの原因です。

ちなみにですが、このエラーはusing System;を追加した時に現れるはずです。

解決方法

どっちのRandomを使用するかを明示的に示してあげれば大丈夫です。
例えば、Random.Range(...)というコード部分でエラーが出ていれば、UnityEngine.Random.Range(...)と書き換えてください。

追記(2018/4/22)

フォロワーさんからusing Random = UnityEngine.Randomという方法を教えていただきましたー!
コード内で何度も同じことを書かずに済むので、こちらが良いですね!

おわり

SystemUnityEngineのどちらを使っても同じ動きをするとは限らないので、気になる方は双方のリファレンスをチェックしてから使用してくださいね!(`・ω・´)

【RuboCop-Linter】align the elements of a hash literal if they span more than one line.という警告に対処する

はじめに

タイトルにも書いたとおり、 align the elements of a hash literal if they span more than one line.という警告文に対処する方法です。

対処法

これは、2行以上であれば要素を揃えなさいという警告です。半角スペース1つでもズレていれば怒られます!
(上は半角スペース1つ分足りずに警告が出ています)

f:id:PafuOfDuck:20180409193309p:plain

f:id:PafuOfDuck:20180409193355p:plain

おわり

記事の内容ペラッペラですが、メモを残すことは大事というわけで...(`・ω・´)