buttonのPrefabを表示するのに苦労した話




こんな感じでSTARTボタンを押したらゲームがスタートするようにしたかったんです。そのボタンをPrefabで作ろうとしたらいろいろエラーが出て苦しみました・・・

まずボタンが表示されませんでした。

なんでかというとボタンとかテキストはCanvasの子オブジェクトにしてやらないと表示されないようです。ボタンのPrefabのBTstartはCanvasの外にできちゃってます。これはアカン。

いろいろ調べてCanvasの子オブジェクトとしてPrefabを作る方法を発見。

これでいけるはずなんですが・・・

こんなエラーを吐かれてしまう。

UnassignedReferenceException: The variable canvas of MainJ has not been assigned.
You probably need to assign the canvas variable of the MainJ script in the inspector.

はぁ~ん? 何を言っとるのかわからんのう~

Canvasが見つからないのかと思ってFindで見つけようとか訳のわからんことをしてみる。

すると今度はこんなエラーを吐きだしたのでった。

Setting the parent of a transform which resides in a prefab is disabled to prevent data corruption.

どうもこれはPrefab自身を親オブジェクトに設定しようとすると出るエラーらしい。

なんかよくわからんけど私のPrefabの作り方がおかしかったぽい。

このように書くと

ちゃんとCanvas内にクローンが作れて

やっとボタンを表示することができました^0^

すごい基本的なことなのかな~?

やっぱ独学はアカンね・・・^^;

↓こういうところで本格的に勉強したいですな!




Collider Materialのbouncinessをスクリプトから変更する




こういったスロープ状のオブジェクトの上にボールを転がす時

Bouncinessを0.9くらいに設定しているとスロープ内で反射しまくります。

スロープの上にいるときはBouncinessを0にして反射させずにスルスルとボールを転がしたいのですよ。

反射させないオブジェクト用にNotReflecというタグを新しく作ります。

スロープオブジェクトのPlane.002にNotReflecタグを設定。

スクリプトの衝突判定処理内に上記を追加。

実行してみるとスロープの壁に反射せずにスルスルとボールが上がっていきます。やった^^

注意点としてはこの方法では反射させない障害物にぶつかっても
最初の1回は反映されずに反射してしまうようです。
2回目の衝突からは反映されて反射しなくなるみたい。

それと一度bouncinessを0にするとその後もずっと0のままなのでスロープを抜けるとまた0.9にしたい。

最初の行で0.9fに設定しておいてNotReflecタグの時だけ0にするようにしました。

するとスロープを抜けたら壁に反射するようになりました!

最短4週間!オリジナルのゲームアプリを開発しよう!




unityでオブジェクトが壁をすり抜けてしまう問題について





ブレンダーでこういうスロープ状のデッキを作って

その上にボールを転がそうとしたら

左のカーブ部分で

壁をすり抜けしまう問題発生 ^^;

ボールオブジェクトのRigidbody のCollision Detectionを

DiscreteからContinuous

に変更すると

すり抜けなくなりました! やった ^0^




Shader for this material does not support skybox renderingのエラーが出た

こういう画像をゲームの背景に使おうとしたらエラーが出ました。

あ、この写真はエスカヒル鳴門っていうきれいな場所です。^^

新しくマテリアルを作ってShaderに

Legacy Shader→Diffuse を選択。

Window  Rendering  Lighting Settings で

Shader for this material does not support skybox renderingのエラー。

マテリアルのShader → SkyBox → Panoramic

を選択すると解決しました。^-^

パノラマですね~ ^0^

////////////////////////////////////////
ー広告ー



Blenderで液体を表現する

—————————————————————–
最短4週間!オリジナルのゲームアプリを開発しよう!
—————————————————————–

Blenderで液体を表現したいと思います。

やりたいこととしては

好きなタイミングで水を出して好きなタイミングで止める。

水を何か障害物にぶつける。

このふたつをやりたいと思います。

まず水が出る噴出口を作ります。

追加→メッシュ→円 で円の平面を作ります。

赤丸の物理演算のタブをクリック。

流体をクリック。

タイプを流入口にします。水が出るのに流入って変な感じですがこれなんです。

それと黄色丸の有効のチェックを外しておきます。

シーンの最初から水を出す時はチェック入れておきますが今回は好きなタイミングでキーフレームを入れて水を出したり止めたりしたいのでここではチェックを外します。

次に障害物を設置します。追加→メッシュ→立方体で板状のオブジェクトを噴出孔の上に配置します。噴出口から出た水がこの板に当たって下に落ちるという寸法です。

物理演算のタブをクリックして流体をクリック。

タイプを障害物、ボリュームの初期化を外殻、スリップタイプを部分的なスリップにします。水に当たった時にどれくらい滑るかとか設定できるみたいです。

次に噴出口と障害物を覆うように立方体のオブジェクトを追加します。中が見えるようにマテリアルを透過にしています。この立方体は「液体の表現ができる領域」でドメインというそうです。王天君の空間宝貝・紅水陣のようなものです。

物理演算のタブをクリックして流体をクリック。タイプをドメインにします。解像度の数字ですがこれを高くすると処理に膨大な時間がかかって最悪フリーズしたりするので今回は低めに設定しました。

スクリーンレイアウトをアニメーションにします。

フレーム0の部分に水が出ていない状態のキーフレームを作ります。噴出口のオブジェクトを選択して赤い四角の部分で右クリック。

こんなのが出てくるのでキーフレームを挿入をクリック。

キーフレームが作成されました。

カーソルを15フレーム目に移動します。ここから水を出したいと思います。有効にチェックを入れてボリュームの初期化を両方に、流入速度はXをー3、Zを4にしました。

Zの数字を大きくすると高く水が上がるようです。XやYで水の噴出方向を設定できます。Xを3にしたら障害物の板の逆方向に水が飛んで行ったので板に当たるように調整しました。

設定できたら有効チェックボックスの上で右クリックしてまたこの画面を出してキーフレームを挿入します。

キーフレームが作成されました。

26フレーム目から水を止めます。

まず25フレームに移動します。

有効にチェックが付いた状態で右クリックからキーフレーム挿入。

26フレーム目に移動して

チェックを外して右クリック→キーフレーム挿入。

こんな感じになりました。15フレーム目から水を出して26フレームで水を止めます。

これで準備完了。ベイクをクリック。

水が板に当たって下に落ちていきますね。解像度を低くしているのでなんか水に見えませんけど^^;

いろいろ失敗して作り直したい時になんか前の水が残っててうまくいかないことがありました。保存フォルダにキャッシュが残っててこれを削除すると作り直すことが出来ました。

Ctrl +A で全選択 → Delete でOK

 

////////////////////////////////////////
ー広告ー



Blenderで作ったオブジェクトをUnityで動かす2

前回まででブレンダーで作ったキャラの左腕をあげることができました。

今回はボタンを押したら腕をあげるようにしたいと思います。

create → UI → Button

でボタンを2つ作成。名前をLeftButton、RightButtonにしました。LとRのボタンを上の図のように配置します。

Lボタンを押すと左腕をあげさせます。

今はシーンを再生すると自動的に左腕をあげるアクションをするようになっています。ボタンを押したときに動かすにはトリガーを設定すると良いそうです。

プロジェクトビューのアニメクリップをダブルクリックしてアニメータービューにしてParameters タブの+をクリック。Triggerを選択します。名前をLeftTriggerにしました。

StandからLeftUpを繋ぐ矢印を選択してインスペクターのHas Exit Timeのチェックを外します。Transition DurationとTransition Offsetの値を0にします。

Conditionsの+をクリックしてLeftTriggerを選択します。

トリガーを設定したので自動的に左腕をあげなくなりました。^-^

次にボタンを押したときにトリガーを引くようにスクリプトを書きます。Create→C#Script

create Empty で空のオブジェクトを作ってゲーム監督にします。名前をKantokuにしました。書けたスクリプトをこれにD&D。次にLeftButtonのOnClickの+押してobjectの欄にKantokuをD&D。関数の欄にさっき書いたスクリプトのPushLを選択します。

実行してみるとLボタンを押すとちゃんと左腕をあげました!やった^^v

ただこのままだとずっと左腕をあげたままになります。腕をあげたらまた元の直立Stand状態に戻したいと思います。

LeftUpのアクションを選択してMake Transitionで矢印をStandに接続。矢印を選択してHas Exit Timeにチェックを入れる。Exit Timeを0、Transition Durationを0.5、Transition Offsetを0に設定。

ボタンを押すと1回左腕をあげてその後はゆっくりと元のStand状態になりました! ^0^

なんかどれもすんなり成功してびっくり。

やる前にいろいろ読んでたらなんか難しそうだなーって思いましたが実際やってみると意外と簡単に動かせました!(^∇^)

 

////////////////////////////////////////
ー広告ー



Blenderで作ったオブジェクトをUnityで動かす1

Blenderで作ったオブジェクトをUnityで動かそうと思います。

やりたいこととしてはAというボタンを押せば左腕を上にあげるアクションをさせる。Bというボタンを押せば右腕を上にあげるアクションをさせる。というようなことをやりたいのです。

そのためにまず

ただ立っているだけのアクション1

左腕を上にあげるアクション2

右腕を上にあげるアクション3

の3つのアクションをブレンダーでまず作ります。

上のDefaultって所をAnimationに切り替える。

ドープシートをアクションに切り替えてアニメーション終了時間を20にする。

ただ立っているだけのアニメーションを作ります。

腕を下げて全部のボーンを選択した状態で iキーでメニューを出して 位置/回転を選択。

キーフレームが作成されました。

Fボタンを押すと横に2って数字が出るのでそれを押すとArmatureAction.001とかいうのが出来るのでそれをStandという名前にリネーム。

次に左腕を上げるアクションを作ります。

F ArmatureActionを選択して数字の2を押すとまたArmatureAction.001とかいうのが出来るのでそれをLeftUpという名前にリネーム。

グラフエリアで10フレーム目にカーソルを移動して左腕を上げている状態で iキー → 位置/回転 でキーフレーム作成。左腕を上げるアクションができました。

同じように右腕を上げるアクションをRightUpという名前で作りました。

これでStand、LeftUp、RightUpの3つのアクションができました。

FBX形式でエクスポートします。

今度はUnityでこれを読み込んで動かしたいと思います。

fbxファイルをプロジェクトビューにD&D。

インスペクターのRigでHumanoidを選択してApplyをクリック。

読み込んだキャラをシーンビューにD&D。

無事読み込めて一安心。^-^

おいおい

ハゲとるやないけww あっはっは (^▽^)

まあハゲはあとで修正すればよろし。

ヒエラルキーでオブジェクトを選択してからWindow → Animationをクリック。

こんな画面が出てくるのでCreateで適当な名前のアニメーションクリップを作成保存。

さっき作ったクリップをダブルクリックするとこんなアニメーション同士の繋がりを設定できる画面が出てきました。

プロジェクトビューからStandのアクションをD&Dします。

最初からあるNewStateとかいうのは右クリックでDelete。

すると自動的に矢印がStandアクションに繋がりました。

シーン再生してみるとちゃんとただ立っているだけのアクションをしているな。ヨシヨシ^-^

今度はLeftUpのアクションをD&D。

Standを右クリックしてMake Transitionを選択すると矢印が出てくるのでLeftUpアクションと連結させる。

おおー 左腕を上げた!思い通りに動くとうれしいぜ!(・∀・)

次回はボタンを押すと腕が動くようにしたい!

 

////////////////////////////////////////
ー広告ー



ノンフィクションG撃退漫画6

前回のつづき。

前回の話はこちら。

注)この漫画ではGはリアルに描写いたしません。

以下、G対策のまとめ

 

 

詳しくは第三話参照。

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

ブラックキャップ(12コ入)【ブラックキャップ】
価格:538円(税込、送料別) (2018/6/13時点)

 

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

ゴキジェットプロ 450ml【stamp_cp】【stamp_005】
価格:817円(税込、送料別) (2018/6/13時点)

 

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

AP 伸縮式ハエたたき【アストロプロダクツ】
価格:421円(税込、送料別) (2018/6/13時点)

 

 

最後まで読んでいただきありがとうございました! ^-^

////////////////////////////////////////
ー広告ー



ノンフィクションG撃退漫画5

前回のつづき。

前回の話はこちら。

注)この漫画ではGはリアルに描写いたしません。

 

 

////////////////////////////////////////
ー広告ー



ノンフィクションG撃退漫画4

前回のつづき。

前回の話はこちら。

注)この漫画ではGはリアルに描写いたしません。

諸事情  → 第三話参照

 

 

////////////////////////////////////////
ー広告ー