おもちゃラボ

Unityで遊びを作ってます

【Pages】画像のアンカーを前ページの最終行に設定する

Pagesで新しいページの先頭に画像を挿入すると、挿入した図の下にアンカーポイントが設定されます。

この状態で、前ページに行を追加すると、↓のように挿入した画像がテキストと一緒に動かず、ページの先頭に残ってしまいます。バグか!?


文章の末尾にアンカーを設定する

これをふせぐためには、いったん前ページに改行を入れて、画像を挿入したい箇所を次ページに移動させます。

画像を挿入したい場所に画像をドラッグ&ドロップします。するとアンカーは直前の文章の末尾に設定されます。

この状態で、前ページに入れた改行を消すと、アンカーは正しく前ページの最終行に設定されます。

これで、前ページに行を追加しても、画像と文章が一緒に移動するようになります。めでたしめでたし。とはいえ、アンカーは手動で動かせるようにしてほしい(ぼそっ)

Blenderで作ったモデルにMixamoでリグを入れる

Blenderで作ったシンプルな人型モデルに、Mixamoでリグを入れる方法を紹介します。
Mixamoをつかうことで、手動でイチからリグを入れる手間を省いて、とても簡単にリギングができます。

Mixamoでリグを入れる流れは次のとおりです。

Mixamoとは

MixamoはAdobeが公開しているWebアプリケーションです。
Mixamoを使うことで、

  • 自分の作ったモデルにリグを入れる
  • リグとアニメーションの入ったサンプルモデルをダウンロード
  • 3Dアニメーションのライブラリから好きなアニメーションを取得

といったようなことが簡単に出来るようになります。


https://www.mixamo.com/

また、Mixamoはロイヤリティフリーで、キャラクターとアニメーションの両方を
個人、商用、非営利のプロジェクトに使用できます。
ふとっぱら!(Mixamo に関する FAQ

MixamoのBlender Addonをインストール

Blenderで作ったモデルに、Mixamoでリグを入れる場合、まずはBlenderにMixamoのAddonをインストールしておく必要があります。

次のページのGet the Add-onをクリックしてMixamoのアドオンをダウンロードしてください。
substance3d.adobe.com

次にBlenderを開いて、メニューバーから「編集」→「プリファレンス」を選択してください。プリファレンスのウインドウで画面左から「アドオン」を選択し、右上の「インストール」をクリックします。

先ほどダウンロードしたMixamoのアドオンを指定します。アドオンはzip形式になっていないと読み込めないので、Macで自動解凍されてしまった場合は、もう一度zipにしておいてください。

最後に検索欄で「mixamo」と検索して、インストールしたmixamoのアドオンを有効化しておいてください。


Blenderでモデルを作成

Blenderでリグを入れたい3Dモデルを作成します。Mixamoでリグを入れるので、Blenderでは素のモデルを作るだけでOKです。

今回は簡単に次のようなモデルを作成しました。

モデルが作成できたら、メニューバーから「ファイル」→「エクスポート」を選択して、fbx形式またはobj形式でエクスポートしてください。

Mixamoにモデルをアップロード

Mixamoのページに移動してログインします。Adobeのアカウントを持っている場合はLogin、持っていない場合はSign up for freeを選択します。

Mixamoのサイトにログインできたら、画面右の「UPLOAD CHARACTER」のボタンを選択して下さい。

UPLOAD A CHARACTERのウインドウが開くので、点線内にBlenderで作成したモデルをドラッグ&ドロップしてください。

次へをクリックすると、リグを入れる画面になります。左下の○をそれぞれ「顎」「手首」「ひじ」「膝」「股間」にドラッグ&ドロップしてください。

また、今回は単純なモデルを使っているので、Skelton LODは「No Fingers」を選択しています。全て設定できたら、画面右下の「NEXT」ボタンを押してください。

自動でリグを入れる作業が始まります。終了したら「NEXT」ボタンを押してください。リグが入った状態のモデルが表示されると思います。


Mixamoでアニメーションを選択

リグが入れられたら、次はアニメーションをつけてみます。
アニメーションはつけなくてもいいよ〜という人は次のステップへGO!

画面上の「Animation」タブを選択してください。
次に、検索欄でアニメーションを検索して選択します。

  • idle
  • walk
  • run
  • jump

など基本的なアニメーションはたくさん用意されています。気に入ったアニメーションを選択してください。選択したアニメーションが自分の作ったモデルに付きます。

この他にもMixamoには、サンプルのアニメーションがたくさん用意されているので、色々試してみてください!

リグを入れたモデルをダウンロード

最後に画面右側にある「DOWNLOAD」ボタンを押して、リグの入ったモデルをダウンロードします。

DOWNLOAD SETTINGはデフォルトのままで問題ありません。
Skinで「Without Skin」を選択すると、アニメーションのリグだけがダウンロードできます。設定できたら、右下の「DOWNLOAD」ボタンをクリックします。


Blenderで開く

ダウンロードしたモデルをBlenderで開きます。メニューバーから「ファイル」→「インポート」→「fbx」を選択して、ダウンロードしたモデルを選びます。

「Nキー」を押してプロパティを開き、Mixamoタブをクリックします。Mixamo Configのウインドウが開くので、Create Control Rigをクリックすると、コントローラが生成されます。

アニメーションを破棄してTポーズに戻したい場合は「Zero Out Rig」を選択してください。リグはそのままでアニメーションだけが破棄されます。

Mixamoのコントローラの方法や、リグのリターゲットの方法は、公式の動画を参考にしてみてください。

www.youtube.com

【Unity】OpenCVSharpがusingできない場合の対処法

MirrorやMLAgentsなど、OpenCV+Unity外のパッケージからOpenCV+Unityを参照する場合、C#スクリプトの先頭に

using OpenCvSharp;

と書くと

The type or namespace name OpenCvSharp could not be found
とか
型または名前空間の名前OpenCvSharpが見つかりませんでした

というエラーが出ることがあります。

エラーの原因

これはC#スクリプトを置いているパッケージにAssembly Definitionファイルがあり、ビルドの範囲がパッケージ内に限定されていることが原因です。

対応方法としては、Assembly Definitionファイルのビルド対象にOpenCV+UnityのAssembly Definitionを作成して追加します。


具体的な手順

まずはOpneCV+UnityパッケージのAssembly Definitionファイルを作成します。OpenCV+Unity/Assets/Scriptsフォルダを開き、プロジェクトウインドウで右クリックしてCreate→Assembly Definitionを選択してください。作成したAssembly Definitionの名前はcvAssemblyにしておきます(任意の名前でOK)

作成したCvAssemblyをクリックしてインスペクタから「Allow unsafe Code」にチェックを入れます。

次に、エラーが出るスクリプトを置いたフォルダ内にあるAssembly Definitionをクリックして、Assembly Definition Referencesの+ボタンをクリックして、先ほど作成したCvAssemblyを指定してください。

外部パッケージのAssembly DefinitionにOpenCV+UnityのAssembly Definitionを追加できました。これで外部パッケージからOpenCV+Unityが見えるようになるので、using OpenCvSharpを書いてもエラーが出なくなるはずです!