【Unity】Linecastを使って床や壁を判断する

横スクロールアクションを作ってみると言う事で AnimationのBone&IKを勉強しました。 モーションも作れるようになってきたので、 いよいよ実際のアクションを作っていこうと思います。 アクションとしては、走る・ジャンプ・スライディング・登るを想定していて、 状況に合わせて、Animationを切り替えていければと考えています。 さて、アクションを切り替えるには?って事なんですが… 当然、床の上なら走るモーションです。 壁が来たら登るモーションに切り替えたいのですが、 どうすればいいかとなります。 ColliderのisTriggerで接触判定を出せば、壁と判断はできそうですが… そうなんです、isTriggerを設定するとオブジェクトをすり抜けて行くんですよね。 (~ヘ~;)ウーン なので、isTriggerを設定しなくても壁を認識させる必要があります。 そこで便利な物が用意されています。 レイキャスターです。 Rayとは、日本語なら光線の意味になるんですが、 Unityでは、見えない線と考えてもらうと分かりやすいかと思います。 このRayは、センサーの役割をします。 種類もいろいろあるのですが、 ・Raycast 指定座標から指定方向へ一直線の線を飛ばします。 ・Linecast 指定座標から指定座標まで線を張ります。 ・Boxcast 箱型のRayを指定座標・指定方向・指定距離にセットします。 ・Sp…

続きを読む

【Unity】アニメーションのお勉強(IK編)

前記事でBoneについてまとめましたが、 骨格を設定すれば、スプライトを動かせる事が分かりました。 一つのスプライトからモーションが作れるので、 便利なんですが、更にIKなるものが存在すると言う事で、 試してみたいと思います。 まずIKについてですが、インバースキネマティクスの略なんだそうです。 連続した骨格の先端から動かす事で親になる骨を連動させる方法なんだとか。 簡単に言うと、物を掴む動作を設定したい場合、 肩・肘・手と骨格を動かす事になるのですが、 角度を調整するのが結構難しかったりします。 IKを入れる事で、手を掴みたい物に寄せると 肩や肘がコンピューターの計算で自動的に連動する仕組みとなります。 子骨から親骨を連動させる仕組みと言った方が分かり易いでしょうか。 反対にFK(フォワードキネマティクス)ってのがあるそうですが、 UnityではIKが使えるので、早速勉強してみたいと思います。 IKを使うにあたって、骨格が無いと扱えないので、 前記事のアンドロイドを使っていきます。 骨格の設定については、前記事を参照下さい。 今回は、IKを使って走るモーションを作成してみます。 まず、アンドロイドにIKを導入する為、準備をします。 ヒエラルキーの一番下に空のオブジェクトを作成して、IKとリネームしておきます。 このIKオブジェクトにIKManager2Dコンポーネントをアタッチします。 コンポーネントの一…

続きを読む

【Unity】アニメーションのお勉強(Bone編)

長らく体重管理アプリに取り掛かっていて、 本題のゲーム作成の勉強が進まなかった、今日この頃なんですが… 体重管理アプリも一応?完成と言う事で、 本題のゲーム作りの勉強を再開して行こうと思います。 今、作ってみたいゲームがあって、 アクション系の横スクロールゲームを作りたいなと思っています。 有名どころなんかだとマリオでしょうか。 マリオみたいなものは、作れる気はしないのですが、 とりあえず動き物を作ってみたいなと思っています。 最近のアクション系は、モーション付きのキャラが普通になっていて、 昔のようにドット絵のキャラが動くだけとは違います。 そこで、キャラのモーションを付ける勉強をしてみようと思います。 以前、アニメーションを勉強した時は、 モーション毎のスプライトをパラパラ漫画のように 差し替える事で動きを付けていましたが、 モーションのスプライトが大量に必要になります。 絵が描けないケロには、無理な話なので諦めていたのですが、 Boneを設定すると動かす事ができるって事を知りまして、 勉強してみる事にしました。 まず、Boneとはなんぞや?って事なんですが、 単純に❞骨❞でっす。 スプライトに骨格を設定する事で動きを自由に付けられる との事なんですが、 早速、導入して試して行こうと思います。 まずスプライトをインポートするのですが アンドロイドのpngを使おうと思います。 ただ、一枚絵…

続きを読む

【Unity】フリックカレンダーの修正と改良

前回記事の続きとなります。 フリックでスクロールするカレンダーができたのですが、 タッチパネル上から指が離れるとドロップのメソッドが呼び出せない。 これは操作系としては欠点なんで、修正案を考えてみました。 あと、Drop時にタッチパネルを、強制的に指定座標まで移動させていますが、 瞬間移動するので、スクロールしているように見えません。 この辺りも改良する必要があるので、同時に考えてみたいと思います。 まず、おさらいなんですが… オブジェクトをドラッグする際、 必ず指やマウスがオブジェクト上にあると思います。 しかし、今回のドラッグは縦移動を制限しているので、 上下に指を動かすとオブジェクトから離れた状態になります。 EventtriggerのDropは、あくまで、 オブジェクト上の指が、Dropした時だけ呼び出されるようになっています。 オブジェクト上に指がない状態では、 Dropしても呼び出されない仕様なんですね~ (T-T) グスッ なので、タッチパネルから外れた所でDropすると カレンダーが変な位置で停止します。 と言う事で、 オブジェクト上に指がある事を認識させる必要があります。 まず、ドラッグの範囲を限定しようかと考えたのですが、 Androidの場合、画面サイズによってScreenWorldのポイントが変化します。 座標からドラッグできる範囲を指定するのは、 かなり面倒な計算が必要に…

続きを読む

【Unity】カレンダーのフリックScrollを考える

2021/02/26タイトル変更・一部修正 体重管理アプリが完成して、 嫁にアプリを使って貰っているのですが… 嫁:今時フリックでめくれないの? カレンダーの月切り替えがボタン仕様なので、 こんな会話になりました。 ありがたい嫁クレームと言う事で、 カレンダーのフリック切り替えを考えてみたいと思います。(T-T) グスッ ただ注意点として、 カレンダーが表示だけの仕様なので、 日付毎に入力ボタンなどを実装する場合には、 使えないって事をあらかじめお伝えしておきます。 まず、フリックでカレンダーを切り替えるにあたり 二つの事を考えました。 ・常時フリック入力を監視するのか? ・月表示だけを切り替えるのか? 常時フリック監視は、Update内で出来るのですが、 ボタンなどの操作を考えると、あまり宜しくない状態になるので、 カレンダー上をフリックした時だけ反応するようにしたい。 月の切り替えは、表示だけ変更するより、 横から前後の月がスクロールしてくる方が見た目が良い。 こんな感じで処理を考える事に… まず、フリック操作になるんですが、 カレンダーの枠ImageにEventtriggerを仕込んで、 タッチ操作に反応できるようにすればOKなんですが… 前後月も同時にスライドする必要があるので、 単純に表示月の枠を移動させるだけでは動かないなと… それに前後月も用意する必要があります。 …

続きを読む

【Unity】AddressableAssetSystemでCSVを読込む

体重管理アプリの修正でフラフラになっているケロです。 Androidにビルドすると、いろいろと問題点が出てきます。 ・機種によって画面サイズが変わる ・InputFieldの入力設定で思った入力ができない ・もっと便利に扱えるといい 画面サイズは、永遠の課題なんですが、 まさか、InputFieldがおかしな事になるとは予想外でした。 嫁に使ってもらってカレンダーがスワイプで切り替えれない… こんな意見がでて、修正案を考えている毎日でっす。(;^_^A アセアセ さて、前置きはこれくらいにして… 体重管理アプリをAndroidにテストビルドした時の事なんですが、 CSVファイルが読み込まれない現象が起きました。 システム上の問題点 ・ファイル名取得の為、フォルダ内を検索して有無を判断する ・apkに圧縮するとResourcesのパスが変わる テストビルドの時は、Resourcesを使っていました。 正規として使う場合は、Application.persistentDataPathを使って、 パッケージにファイルを保管するので問題はないのですが… apkにするとResourcesも圧縮される為、 パスが変わるので、Unity上で受け付けていたパスが通らなくなり、 検索の際にファイルが見つからないと判断されて読込みが行われなかった訳です。 読込みだけなら、Resources.Loadでアクセスできるので、 問題ないので…

続きを読む

【Unity】月別のデータを反映する

ようやく体重管理アプリが完成しました。 時間掛かり過ぎなんですが… (;´・ω・) 月別のデータ反映で悩み… グラフ化の際、歯抜けのデータ処理で悩み… あれもこれも追加… 最後はバグ発生… ようやくって感じでっす(ノ_<。)うっうっうっ 運用開始4日目ですが、今の所問題もなく動いております。 入力10日目と30日目に処理を挟んでいるので、 そこでバグが出ない事を祈っているのですがどうなるでしょう(;^_^A この話はこれくらいで、 体重管理アプリを作っている時に調べた事や作った物を 少しの間、記事にしていこうと思います。 まず、月別のデータを読み込んで表示させる所をまとめてみます。 今回、データはCSV形式で保存・読込みを行いました。 以前にも記事にしたので、 またかと言われそうですが… そんな声は無視するとして (;^o^) \(ToT )あんたほんとにそれでいいの まず、以前のデータの扱いは表示月のみって事でした。 CSVファイルを一つに絞れたので、簡単だったのですが… 今回は、カレンダーの月が変えられるので、 月別に表示する必要があります。 なので、全データを読み込んで、月別に分類しておく必要があります。 この分類方法なんですが、 ・一つのCSVファイルに月毎のデータを行単位で分類する ・月毎のファイルを作成して別々に分類する 二つの方法を思いつきました。 しかし、どちらも行で…

続きを読む

【Unity】GetComponentを多用してました(お詫び)

2021/2/19タイトル修正・Transformについて追加 2021年初投稿となります。 年末は体重管理アプリ作成が思うように進展しなくて、 ブログをお休みしていました… とは言っても、まだ完成してはいないのですが… (;^o^) \(ToT )あんたほんとにそれでいいの 話は変わるのですが、 少し前にコメントを頂いて、プログレスバーのタイマー記事を修正しました。 過去記事を見ているとスクリプトに無駄が多くて恥ずかしくなるのですが、 間違ってる所が多々あったのでお詫び致します。 それは、GetComponentの使い方です _(._.)_ ユルシテ 無駄なGetComponentを組んでいるので、 間違いの部分をピックアップしていきたいと思います。 FindとTransformについても記事にしておきたい事があるので、 併せて、まとめてみたいと思います。 Unityのバージョンは、2020.2.3f1になります。 まずは、Findからまとめます。 Findって、ついつい使いがちにならないでしょうか? 例えば、メインキャラクターを取得して何かをさせたい場合、 using System.Collections; using System.Collections.Generic; using UnityEngine; public class MainCharacter : MonoBehav…

続きを読む

【Unity】JsonUtilityを勉強してみた

いつものサボり癖… ではないですよ~ 体重管理アプリを作っていて泥沼にハマっています。 データ管理を月別に保存や表示させるのに どうやったらいいか悩んでおります。 今までは、コードがなんとなく思い浮かんだのですが、 今回は頭がまったく働いてくれません。 (ノ_<。)うっうっうっ 思考停止で進んでないので、記事も書けなかった次第です。 (´~`;)才能ないな~ そんな状況なんですが、少し調べた事があったので、 記事にしてみたいと思います。 大量のテキストデータを保存するには、 CSV形式かJson形式を利用する事になるのですが、 以前、CSVを記事にしたので、 今回は、Json形式を記事にしたいと思います。 ジェイソンと言えば、13日の金曜日! (;^o^) \(ToT )昭和か! JSONとはJavaScript Object Notationの略で、 JavaScriptのオブジェクトの書き方を元にしたデータ定義方法なんだそうです。 UnityでJsonを使うには、いくつかの方法があるみたいですが、 JsonUtilityが機能としてあるので勉強してみます。 侍ブログさん 【Unity入門】5分で簡単解決!JSON形式のデータを扱う方法 メモの穴さん UnityでJSONファイルを読み込むメモ 有益な情報ありがとうございます。<(_ _)> ブログを参考にJ…

続きを読む

【Unity】カレンダーを作り直してみた

体重管理アプリを作っていて、 データの保存や表示の処理を悩んでいるケロです。(?+_+) 以前のアプリをブラッシュアップしようと思ったのですが、 作ったファイルが見当たらないので、一から作り直しております。 そんな事はさておき、 体重管理アプリと言う事でカレンダーが必要になるので、 昔の記事を読み返してみて、愕然としております(-_-;) 無駄が多い… 自分で見ても分かりにくい… 読んでくれた方には申し訳にない内容になっていました。 これに関しては今も変わらないような… (°0°)\(--; オイオイ それに開いた日付の月しか表示できないので、 使い勝手が悪いってのもあって、一から作ってみる事にしました。 はたして、あの頃より上達したのか その辺も見てもらうと面白いかもしれません。 早速、Unityの設定をします。 プラットフォームはandroidです。 まず、Canvasを設置するのですが、 今回は、画面比率を18:9縦で設定して、Canvasサイズを横720×縦1440にします。 UI用のCanvasを追加してレイヤーを1に設定します。 このCanvasにImageを追加してFrameにリネームします。 このフレームは、カレンダーの枠になります。 以前は、カレンダーの枠をスプライトで取り込んでいましたが、 わざわざ用意しなくてもフレームもどきが作れるので紹介します。 フレームのサイズは、横716×…

続きを読む