投稿記事

技術の記事 (3)

みえりんそふと 2022/10/19 19:36

【技術】RPG Developer BakinでVRoidモデルを動かす

ここではVRoidモデルをBakinに持ち込む手法について紹介します。
プリレンダリングしたものを使う手法についてはこちらから→ 【技術】BoneToPixでVRoidStudioモデルをドット絵化する

1. VRM形式モデルをエクスポートする

VRoid StudioからVRM形式モデルをエクスポートします。
※ここではマテリアル数を2まで削減していますが、必須ではないです。

2. VRM形式モデルをblenderに読み込み

3DCGは難しくない!? 「Blender」で3Dモデリング初めの一歩
こちらの記事を参考にVRM形式モデルをblenderにインポートします。
blenderのインストールからわかりやすく書いていただいているので割愛します。

3. Bakin向けにfbx形式モデルをエクスポートする

二通りの方法があります。①の方が簡単です。

方法① bakin側でテクスチャを張り直す方法

fbxファイルのエクスポート

ファイル → エクスポート → fbx

テクスチャの出力

① blenderのプロジェクトファイルを保存します。
ファイル → 保存 または Ctrl + S
※これをしないと③でエラーになります
② ファイル → 外部データ → リソースをパック解除


③ 「現在のディレクトリへ(既存ファイルに上書きして)保存します」を選択

④ blenderのプロジェクトファイルと同じ場所に、texturesというディレクトリができます

方法② fbxに埋め込む方法

blenderの仕様により、プリンシブルBSDFノードに直接紐づくテクスチャでなければfbxに埋め込むことができないので、シェーダーを修正します。
手動で修正する場合はblenderの「Shading」を選択して、不要なノードを削除、プリンシブルBSDFノードを作成して繋ぎなおします。以降の手順は①と同様です。

自動で修正する場合は私が制作した以下のアドオンが役に立つと思います。導入に多少の知識が要りますが、ワンクリックでモブキャラモデルを生産できます。
Blend2BakinFbx.py
※このコードは本来なら公式wikiの3D キャラクター にあるように、設定ファイルに基づいてマテリアルのセットアップをしてくれるはずなのですが、なぜか上手くいかず、ただテクスチャを埋め込むだけのアドオンになっています。

3. fbxエクスポート

fbxモデルをエクスポートする際、テクスチャが外れてしまうので、テクスチャは別で出力します。
すでにVRoidモデルをインポート済みという前提で話を勧めます。

4. mixamoからモーションを取り込む

Mixamoの使い方/大量の3DCGアニメーション素材をDL
ただダウンロードするだけでよいです。こちらの解説記事が参考になるかと思います。
歩行モーションをダウンロードする際などに、In Placeというチェック欄が表示されたときはそれを選択してください。
デフォルトのモーション素材でもよい? と思いましたが今試したところ動かなかったです。リグの設定の違い?
* Bakinで使うのはジャンプ「アップ」モーションなので、モーション名規則にあるように、溜めや着地の動きを含まない、飛び上がる部分だけが含まれるモーションを使うのがよいです。

5. bakin手順

RPG Developer Bakin Wikiを見ながら進めていきます。

リソース管理

素材の取り込み

  • モデルから追加ボタン、またはD&DでVRMから変換したfbxモデルをインポートします。
  • テクスチャから先ほど出力したテクスチャファイルをインポートします。ここではImage_0とImage_6の二つを取り込みます。
    • 手順3で方法②を選んだ場合は不要です
    • 眉と目のハイライトが消えます。気になる場合は描き足しましょう。
  • モーションからmixamoでダウンロードしたモーションファイルをインポートします。

    モーションセットの設定

    現状では1つのモーションを持つモーションセットが複数ある状態になっているはずです。「モーションの追加」からどれか一つのモーションセットに残りのモーションを追加して一つにまとめます。
    モーション名は以下に設定してください。
    モーション名規則

    マテリアルの作成

    マテリアルを追加します。
    先ほど追加したテクスチャを割り当てます。
    カリング:服の裏側が透ける場合はDoubleSided
    シェーダー:VRoidモデルは多くの場合服ポリゴンの一部を透明にするので、discardという単語を含むシェーダーを選ぶのがよいです。

  • 光や影の影響を受けないnolitシェーダーはぱっと見綺麗に見えますが、真夜中でも色合いが一切変化しないので、使いたい理由がなければあまりおすすめしません。
  • a_n_rm_discardを選んで、テクスチャの目の部分を赤く塗りつぶしたマスクマップを追加し、エミッションを0.1にしてわずかに発光させると綺麗になります。

    モデルにマテリアルを設定する

    モデル
    に戻りマテリアルを設定します。VRoidでインポートした際マテリアルを二つに削減していた場合、グレーのマテリアルが二つ設定されている状態になっているはずなので、これを追加したマテリアルに置き換えます。
    ※手順3で方法②を選んだ場合は不要です

    3Dスタンプからモーションを追加する

    3Dスタンプ
    ここまでの作業を行えば、モデルやモーションに追加したものと同じものが3Dスタンプにも追加されているはずです。キャラモデルを選択して、モーションセットを割り当てます。

    データベース

    キャストから、主人公キャストに先ほどのキャラモデルのリソースを設定します。

    ゲーム管理

    スタート設定の主人公に、データベースで設定したキャストを割り当てます。
    ※初期設定ですでに割り当て済なので、後から変更したい場合のみ。

    マップ設定

    初期設定だと肌が青白くなるのでそのままだと少し使いづらいです。
    これはカメラ設定からポストエフェクトを弄ってもあまり意味はなく、マップ設定→アンビエント→色から赤みのある色を選ぶと改善するようです。



    (変更前)

    (変更後)

みえりんそふと 2022/10/19 04:21

【技術】RPG Developer Bakin触ってみた

ついにRPG Developer Bakinがリリースされました。ということで、とりあえずVRoidモデルを読み込んで動かしてみます。

https://youtu.be/v2W9KbsYSaw

とりあえず一日触って概要だけまとめました。

●キャラを動かす
①「リソース」のモデル、モーション、マテリアルに各種アセットを配置
②「リソース」の3Dスタンプでキャラクターモデルをセットアップする
※各種モーションの割り当ては名前に紐づく。waitとかwalkとかjumpupとか
③「データベース」の「キャスト」(ゲーム内に登場するキャラクター)にリソースを割り当てる
④「ゲーム定義」の「スタート設定メニュー」から、主人公に先ほどのキャストを割り当てる

さらにまとめると
主人公:操作するキャスト
キャスト:味方や敵やNPCなどのキャラクター
リソース:キャラクターのグラフィック素材など
という感じですね

(※すみません、色々端折ってるので暇なときに追記or新記事書きます)
・blenderでvrmをインポート&fbxエクスポート、テクスチャ書き出し
・マテリアル設定(カリング:服の裏側が透ける場合はdouble sided, シェーダー:アルファ抜きできるものを選ぶ、map_discardなど、↑で書き出したテクスチャを指定(VRoidから出力する際にマテリアルを減らしておくと楽です)
・モーションの設定方法(blender側では特にやることなく、mixamoから持ってきたものをbakinにモーションデータとして取り込める)
https://ci-en.dlsite.com/creator/12127/article/725362

●立ち絵表示
もしかしたら他にいい方法があるかもしれませんが、コモンイベント⇒共通イベント⇒イベント追加で、「イメージを表示」イベントで立ち絵を表示できます。イベントの開始条件は「並列で繰り返し実行」(unityで言えば、非同期処理を毎フレーム実行するようなもの?)を指定します。

そのままだと中心が絵のある方に寄りすぎるので、カメラ設定でオフセットをずらすといいと思います。

●アクションゲームは作れる?


スキルを発動する、剣撃を飛ばす、魔法の弾を飛ばす、など、とりあえず最低限のことはできます。これらの攻撃エフェクトはキャストとして扱われる? ようで、イベントの設定もできます。

味方側はHPを増やしたり減らしたりもできそうですね。フィールド上で毒の沼に入ったらHPが減るみたいなのは定番ですし、それと同じような扱いでたぶんできます。

ただし敵側は微妙なところです。本来のHPとは別にローカル変数で別にHPを持っておくしかないかも? 間違ってたらすみません。スクリプトリファレンスがまだないので何とも言えないですが、もしかしたらC#スクリプトで呼び出せるかもしれません。この辺は様子見ですね。

みえりんそふと 2022/09/19 01:49

【技術】BoneToPixでVRoidStudioモデルをドット絵化する

概要

HD-2D風のゲームが制作できるかもしれないゲーム制作ツール、RPG Developer Bakinのリリースに備えて、BoneToPixという有料アセットを用いて、3DCGキャラクターアニメーションからドット絵を生成してみます。

成果物


手順

前準備

unityプロジェクトの作成

Unityからunityをインストールしてビルトインでプロジェクトを作成します。

VRMモデルの用意

VRoid Studioを用いてキャラクターモデルを作成します。

UniVRMの導入

UniVRMからunitypackageをダウンロードします。UniVRMの導入後、VRMモデルをunityの画面にD&Dしてインポートします。

BoneToPixの導入

BoneToPixからアセットを購入し、unityプロジェクトにインポートします。

アニメーションの用意

ここではBoneToPixに含まれていたunityちゃん素材を利用しています。あるいは、Asset Storeでモーション素材を探したり、Very Animationを利用してモーションを作成するのもよいかもしれません。

BoneToPixの使い方

撮影対象となるVRMモデルの配置

  • Assets/WhiteLimboGames/BoneToPix/SourceFiles/Scenes/Converter.unityからコンバート用のシーンを開き、VRMモデルをMain Cameraに映るように配置します。
  • BoneToPix ConverterのConvertion TargetにVRMモデルを割り当てます。
  • 変換したいアニメーションを含むAnimatorControllerをVRMモデルのAnimatorに割り当てます。

    設定

  • Cell Width, Cell Heightで生成するドット絵のサイズ、Auto Pallete Color Countで色数を設定できます。ここではそれぞれ256, 256, 24に設定しています。また、Draw Outlineでアウトラインを描画するかどうかを設定できます。
  • Lighting TypeをGeneric Lightingに設定します。(※他の設定だとメッシュの裏面が映らなかったり、上手く透過できなかったりなどの問題が発生したためです)
  • Directional Lightをシーン上に配置します。ここではIntensityを0.7に設定しています。
  • Assets/WhiteLimboGames/BoneToPix/SourceFiles/AdvancedSettings/BoneToPixSettings.asset を設定することでより詳細な設定をすることができます。ここではOutline Colorを茶色に変更しています。

    変換の実施

    Begin Conversionボタンをクリックするとドット絵アニメーションが生成されます。
    出力結果はAssets/WhiteLimboGames/BoneToPix/OutputにAnimationとpng形式で保存されるようです。あるいは、2Dアニメーションを設定したオブジェクトがシーン上に生成されますので、これをunityのrecorderで撮影するなどして動画を作成することもできます。

記事のタグから探す

月別アーカイブ

限定特典から探す

記事を検索