Unity備忘録35頁目「ScriptableObjectでデータ管理1」

江上宿六です。

 

今回はキャラの制御ではなくてデータ管理系をやります。 唐突です。

理由として唐突にそういった記事を目にして後々使えそうだと思ったからです。

自身の理解も追いついてないので適当な記事になるかもしれませんが。

 

さて、データ管理でScriptableObjectというのを使ってみる事にしたわけですけど

これがどういうものなのかというと、それについて書かれたものを色々読んだ結果

変動しない共有データをアセットとして生成して運用できるものという感じですか。

 

なんだか今一つ分かりにくい感じですが、例えばアイテムにアイテム名や攻撃力

説明文などがあるとして、そういったデータをオブジェクト毎に持たせていたら

ちょっとメモリ的に優しくないので、そういうのを解消できたりするようです。

 

正直言うとメモリについて考えた事は無いんですけども、そこを抜きにしても

データを管理するのに役立つと思ったので記しておこうと思ったのです。

続きを読む

リハビリだったり色々考えたり。

江上宿六です。

 

今までの備忘録でやってきた事を殆どなぞる感じでキャラを制御してみたり

こういうのが出来たら良いなあというのを考えながらちょっとだけやりました。

f:id:y6yegami:20190627183953g:plain

屋内に入ったら手前の壁を半透明にするやつです。 もう特許切れて数年かな。

ただ単にエリアにColliderというかTriggerを置いてやって状況に応じて消したり

しているだけですけども、動的にマテリアルをいじるというのも今まではあまり

やってこなかったので迷う場面がありました。

 

メッシュ側に不具合があったりしてそっちを手直ししたり色々ありました。

最初は壁を消す方向で考えていたんですけど、壁との距離感がわからなくなるため

半透明になるようにしました。 あと天井も同様にするように考えてたのですが

カメラが各種天井と干渉しなかったので必要がありませんでした。

続きを読む

再びUnityに集中したい。

江上宿六です。

 

最後にUnity備忘録を書いた日は大体半年前、色々と忘れていても仕方ないですね。

GameObject.Find()とかGetComponentとかが優先的に頭から抜けていくのが酷い。

という事でまた備忘録を読んだりして少し回復したのが現状です。

 

CharacterControllerを使ってみるみたいな事も言ったりしてましたけども

やっぱり最終的に使いにくそうという印象になったので今はやめておきます。

使ってみたかったAICharacterControlとかThirdPersonCharacterとかも

絡んできそうなのでそのうちなんとかいじれるようになりたいとは思いますけど。

f:id:y6yegami:20190619184629g:plain

割と使える背景が出来たのは良かった感。 gifの設定も忘れて重くなったけどね。

しかし半年で想定してたキャラとゼロから背景を作ったと考えるとそれはそれで

無駄な時間を過ごしたわけでもないなぁとは。 まぁ、これからまた頑張る。

いろいろとTriggerをいじってみた回。

江上宿六です。

 

最近新しいゲームを買って熱中していますが、それによって逆に作業効率が

上がったような気がしています。 遊びも作業もだらだらやるより時間配分とかを

考えながらやった方が良いという事でしょう。

 

さて今回もまたあちらの世界関連の事ばかりやっておりました。

f:id:y6yegami:20190614172205p:plain f:id:y6yegami:20190614172211p:plain

まずはドア関連です。 入り口の両開きドアは自動で開閉するようになりました。

原理は簡単で透明のColliderをisTriggerにしてOnEnterTriggerなどで判定しています。

Colliderはドアの前後に置いてあるので、出る時は反対側に開くようになってます。

この辺より各状態のアニメを作ったり設定した方が大変でしたね。

片開きのドアは使用すると開閉します。 普通にOnInteractで動作してます。

f:id:y6yegami:20190614173247p:plain

スツールにはスイッチを仕込んでみました。

f:id:y6yegami:20190614173442p:plainf:id:y6yegami:20190614173448p:plain

おわかりいただけただろうか。 うちの椅子は背が高い人だとフィットしなくて

微妙だったのでスイッチによってEnterPointの位置をずらす事により強引に解決です。

どのみちフィットしない身長の人も居るでしょうけどもね。 この子は160cm強。

f:id:y6yegami:20190614174515p:plain

ビールサーバーを使うとビールが生成されます、だがジョッキごとだ。

OnInteractでSpawnObjectを使い、Prefabを生成するような形になっています。

ちょっとパーティクル入れたので無駄に重そう。 あとサーバー2つも要らんな。

f:id:y6yegami:20190614175801p:plain f:id:y6yegami:20190614175806p:plain

あとはまぁ、小ネタで流し口に排水溝が無かった(!)ので適当にこしらえてみたり

寂しかった食器棚にちょっと食器を置いてあげたとかですね。 ホント小ネタ。

 

という感じです。 Triggerによって色んな判定や処理が行えるようですけども

面白い事をやろうするとなるとまた難しそうです。 自分は脳が枯れてますので。

 

あと店主子を動かそうとしてNavMeshAgentを仕込んでましたが、あちらの世界では

使用できないようで。 ThirdPersonCharacterやAICharacterControlとかを使えば

なんとかなるみたいな情報はあれど具体的な方法についてはなんとも。

今は放置して別のことをやった方が良いかもしれない。

 

まぁ、今後も適当に思いついた事をやる感じです。 というより本編の方を

なんとかしたいという気持ちが強くなってきたので、できればそういう方向で。

色々な試み。

江上宿六です。

 

ここ数日は心の栄養が蓄えられまして精神状態は良好です。

評価されるのは嬉しいものです、しかしそれ依存してしまってはいけないので

その辺の切り替えはちゃんと意識しておきます。 また落ち込まないように。

 

進捗という意味ではあれですけども、色々考えて色々やってみました。

殆どはあちらの世界向けの作業な気がする。

 

まずはライティング関係なんですけど、これは半分諦めました。

暗闇っぽいSkyboxにして室内をPointとかSpotとかで照らそうとか考えてましたが

どうにもライト同士が干渉し合って変な感じにチラついたり光らなくなったり

そういう問題が起きました。 

f:id:y6yegami:20190608170303p:plain

その影響を一番受けたのが右のランタンです。 真っ暗な屋上を軽く照らしたり

転がして遊んでいたらおかしな表示になったりしまして。 完全には諦めてませんが

当面は凍結です。 そのうちAreaとかReflectionProbeとかも試します。

 

その辺の見え方関係の流れで金属関係の描画をもう少しなんとかしたいと思って

出来たのが左のスツールの感じです。 シェーダーの値をいじっただけですけども

とても良い感じになった気がします。 流れでガラス系も表現力が上がりました。

f:id:y6yegami:20190608172334p:plain

店主が動くようになりました。 そりゃ置物ではないですから。

今はまだ適当にアニメーションをループさせてるだけなので挙動は変ですけど

まぁ、優先的になんとかしていきます。

 

あと地味に色んなギミックを作ったりもしましたね。 持ち運べる椅子を作ったり

屋上に上がるのを簡単にしたり、こういうのを考えたり作ったりするのは好きです。

この辺のあれで椅子に良い感じの調整をしてみようとか思っています。

 

あちらの世界じゃない部分では、なんとなくアニメーションを作り直してます。

まぁ、まったりのんびり進めていきます。