スポンサーサイト

    上記の広告は1ヶ月以上更新のないブログに表示されています。
    新しい記事を書く事で広告が消せます。

    2D画像をアニメーションしたくて、Blenderに辿り着いた

    Live2Dを使えば解決しそうな気もする?が
    作るゲームの内容的に使用規約(公序良俗)から外れるので使えない
    (ていうか、作るゲームが内輪向けだから、堂々と外に使用報告出来ん・・・)
    Spriter等のアニメーションでは画像の細かな伸縮ができない
    PlaneRunnerなら可能だが、動的制御には適さない気がする
    そこで見つけたのが 
    Unity Sprites And Bones - 2D skeleton animation
    チュートリアル動画4では1枚の画像を動かしている。これがしたかったんだ!
    (結構すごそうなのに話題に上がっていないのがあやしいが・・・)
    で、チュートリアルには「このメッシュのジョイントなんかはBlenderで設定したよ」とあった
    Blenderって3Dモデルを作るソフトじゃなかったっけ??と思ってググる

    Blender と Unity で 2D ゲームをつくる | MU4MA6
    2D静止画ボーンアニメテスト

    あっ、これだ

    スポンサーサイト

    [Unity]キー入力待ちをしたい

    RPG的なゲームを作ろうとしたときに必要となったのが
    会話・イベントシーン・コマンドバトルの様な逐次的に処理されるイベントだった

    これを実装しようとして初っ端につまづいたのが「キー入力待ち」
    ツクールとかだとInput.GetButton()みたいな関数に
    Input.GetButton('x',wait)
    とすると、キー入力待ちをしてくれるが、Unityにはない

    これはC#の機能を用いることとなる、それがコルーチンだ
    コルーチンについては、これらのサイトが参考になる

    処理の分割(コルーチン)
    Unity3D:はじめてのコルーチン
    Unity3D で FlappyBird っぽいゲームを作成してみる その3

    特に3つ目のサイトは、ゲームを1つ作っているので他にも参考になる場所が多い

    さて、結論から描くと
    While(!Input.anyKeyDown){ yield return 0; } //キー入力待ち
    これだけで良い

    ただし、これは返り値をIEnumeratorに持つ関数内でしか行えないが
    その辺りの詳しい説明は、先に挙げたサイトで理解できるだろう

    なお、こう記述すると4.0f秒待機になる
    yield return new WaitForSeconds(4.0f);

    [Unity]Scriptに重力をかけたときの挙動が不自然になった、その対処

    Animator付きのScriptに重力をかけたときの挙動が不自然になって、半日悩んだので対処法をメモ

    どういう動きかというと
    左右の移動は問題ないが、ジャンプすると一瞬で最高高度?に達し
    その後、また一瞬で落下するか極端に遅く落下する
    しかも、ジャンプの高度にばらつきが発生している
    なんじゃこりゃ

    原因は、Animator Component の Apply Root Motion にチェックが入っていた事
    まあ、説明はよく読もうね、という話でした
    この参考先のサイトにもちゃんと説明されていた…orz

    Rigidbody2DのLinearDragを弄っている最中に気付いたので
    え、まさかこれ重力とも関係あるの…?とか思ったがそんなはずもなく
    ひたすら Rigidbody2D の問題だと思い込んでいたので大分時間がかかってしまった…
    プロフィール

    秋歩

    Author:秋歩
    飽きやすくて色々手を出す残念素人です

    アクセスカウンター
    最新記事
    最新コメント
    最新トラックバック
    月別アーカイブ
    カテゴリ
    検索フォーム
    RSSリンクの表示
    リンク
    ブロとも申請フォーム

    この人とブロともになる

    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。