Unityとか備忘録サークル獏の佐藤敏がUnityとかで知ったTipsを書いておく備忘録です。2019-12-29PhotoShopで作業中に連番を付けてセーブするスクリプトそのまんま、「PhotoShopで作業中に連番を付けてセーブするJavaScriptのコード」です。ファイル名に制限があったりpsd・jpg・pngしか対応していなかったり拡張子で中身判定する大雑把な奴だったりしますが、とりあえず置いておきます。バグもあるかもしれません。Windowsでしか動作確認していません。save.jsとか適当な名前で保存してPhotoShopのスクリプトフォルダに放り込んでください。2020\Presets\Scriptsとかですかね)導入方法自体は色々なところで解説されているのでそちらに譲ります。自分はF11キーを押すとこのスクリプトが起動するようにしています。Proを買うハメになったのは私です。Pro購入、すべてインポート。Editor」からPoseEditorとClipEditorを表示させましょう。Editorは画面右、ClipEditorは画面下のほうがおすすめだとか。Animationが併存しているんで、画面には両方映っていたりします。Proでは別個に編集するためのファイルができるわけですね。今回はsit_03というanimをいじるので、sit_03.assetという名前にしてみました。(animが入っているフォルダとは別のほうがいいと思います。Editorのここにドラッグ・アンド・ドロップします。configuration」を押しましょう。Shapeについて聞かれるほうはお好みで。Clips」そしてインポートしたいanimをドラッグ・アンド・ドロップ。このスクショは合成ですんで、importを押します。無事インポートされました。Key」を「Generate」にします。Editing」を「On」に。左右対称でないモーションのときは「Off」ですね。Editor」の「Pivot」は回転に関する設定。「Local」にするか「Global」にするかは状況次第です。真横に回転したい、正面に回転したい......といったときはGlobal。関節の流れにそって回転したい......といったときはLocalですね。今回はGlobalから始めてみます。表示があまりにデカくてキャラがどうなっているか見づらいケースがあります。Style」を「Stick」に。状況によっては「Solid」のままのほうが操作しやすいでしょう。ここは編集中にうまいこと切り替えを。Proのキモ、レイヤーを作ります。Editorの右下に何かが重なったようなボタンがあるので押すとレイヤーの設定が登場。その左上にあるボタンを押してレイヤーを追加します。名前とかはそのままでいいでしょう。Layer」と違い、何もなくてスッキリしていますね。1に、修正を加えていきます。編集開始こちらsit_03という名前のanim。とあるアセットに入っていたのですが、このキャラに当てると足とかがおかしいです。多様なキャラに対応するモーションのHumanoidでは避けて通れないことですが......なので修正を加えていきます。足の上部のボーンをクリックして選択。普通にUnityでオブジェクトを回転させているときと同じように、この丸いツールをグリグリして回転させていきます。EditingがONになっているので、右足をいじるだけで左足も動きます。ボーンの表示設定を変更するとこんな感じ。結果が見やすいのはStickですね。同様に、足首がヘンだったのを修正しました。確認してみるここで動きを確認してみます。Editorの右下の再生ボタンを押すと、キャラが動きます。第一フレームの足の回転を修正しただけなのに、すべてのフレームで足の回転が修正されています。これがレイヤー機能の強みですね。1の第一フレームに、ボーンの回転をズラすポーズ」がある。第一フレームだけしかないモーションは、すべてのフレームにおいて同じポーズになる。合成結果は「すべてのフレームで修正されたモーション」になる。Editor」「Display」の「Bones」が「Off」のほうが見やすいかもしれませんね。エクスポートでは、修正したanimを書き出してみましょう。Clip」を押すと......出力先のフォルダが指定されてないゾ、と怒られます。出てきたSetting画面から出力先フォルダを指定してあげましょう。モトのanimフォルダと同じにすると上書きされてしまうので、「やっぱりモトのが良かった」とか「もう一度モトのから作り直したい」とかいうときに困ります。別のフォルダにしたほうが賢いでしょうね。出力されるとこんなメッセージが出ました。Proの制御下からキャラを解放します。Controllerを持ったキャラを選択、Animationタブから「sit_03」を選択して再生ボタンを押せば確認ができますね。おかしなとこが直っているようです。その後IKを使った編集はどうだとか第1フレームとそれ以外で修正量を変えたい場合は、とか......発展的内容もありますが、ひとまずはこうしてボーンの回転を微妙に修正できるだけで「買ったのに死にモーション」だったものが有益なモーションになります。それだけでも効果は大きいのではないかと。参考にさせて頂いたサイトうちよりこちらを見たほうがわかりやすいかもしれません。ProでさっくりとHumanoidの既存アニメ修正Tweet広告を非表示にするもっと読むコメントを書く2019-12-03Unity(のHumanoid)でクソみたいなAnimationControllerをできるだけ使わずにやるUnityで3DキャラをアニメさせるとなるとまずはAnimationControllerのノードをいじってヒーコラってことになるんでしょうが、端的に言ってクソです。UIデザイナーさんがUIをアニメーションさせるくらいならいいとして、3Dアニメーションでノードの線をアレコレ伸ばしてまともに使う気になれません。APIを使っていきましょう。ぜんぶ自力でもいけるんでしょうけど、今や便利なライブラリがあるのでそれを使わせていただきます。Pack君に登場してもらいます。キャラとしてもデキが良くてHumanoid形式のanimもたくさん入っているいいアセットです。アセットストアからダウンロードしてインポート。(VRoidとかを使うとしても基本は変わりません。Playerをダウンロードします。Zip」でzipをダウンロード。github.com解凍して、Unityのプロジェクトフォルダに放り込みましょう。MotionPlayerについては別のフォルダを作ったほうが良かったかもしれないですな。Mecanim」フォルダからとりあえず「m01_jersey_00_l」を選び、Scene画面にドラッグ&ドロップして、ひとまずPositionとかは全部0にします。View」についてはこんな数字にしましょうか。View」は結構キャラの印象が変わるので注意しましょう。キャラがでかすぎる・小さすぎるというときも、カメラ自体を動かすか、FoVを変えるかでだいぶ見た目は変わります。Contollerはイヤですが、多分これを設定しないと色々不便です。形式だけ、設定しましょう。「MyAssets」→「controller」というフォルダを作りました。Controller」を選びましょう。「taichi_controller」という名前にしました。Controllerを設定してあげます。「Animator」タブを選んで、Taichiくんのアセットから「m01@back_20」の左の矢印をクリック、出てきた「back_20」を......Animatorタブにドラッグ&ドロップするとこうなりますんで、Unityのプレイボタンを押すと無限にバックするTaichi君が誕生。Controllerを色々細かくいじっていくのが普通???のやり方ですね。準備は続く......先ほどと同じように、今度は「m01@idle_00」の左の矢印をクリック、「idle_00」をクリックして......Ctrlキーを押しながらDキーを押します。「複製」という意味です。するとanimファイルだけ抜き出せます。同じことを繰り返して、他に「idle_20」「jump_10」「kick_20」というanimファイルを抜き出しました。「Resources」「anim」という名前のフォルダを作って、4つのanimファイルを移動させます。ここで「Resources」はスペルミスすると動かないので慎重に。Playerをつけてあげます。Player」が出てくるはず。Playerを入れるどっかでミスっていると思います......こんな感じになったかと思います。mymaskなど適当な名前をつけて保存。この「mymask」をプロジェクトからクリックして「Humanoid」を開くと最初は全部が緑になっていますが、腕・手先だけ緑で残し、他はクリックして赤にしてしまいましょう。Mask」にさっき作ったmymaskを指定しておきましょう。mymaskが設定できました。Empty」でカラのオブジェクトを作り、名前を「GameObject」から「GameManager」に。Add」を押すと、ビミョーにタイムラグがあって、こんな風にGameManagerコンポーネントが付けられます。Scriptで中身を書いてあげましょう。}}こんな感じでいいと思います。実行してみると?Taichi君が1秒ごとに4つのモーションをランダムに動かします。Controllerに手動で登録することはしていません。形式的に登録した「back_20」を削除してもちゃんと動きます(実行直後だけおかしくなりますが)。書き換えれば1秒ごとではなくスペースキーを押すたびにモーションが切り替わります。