🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Blender

Blenderとは、オープンソースの3DCGソフトウェアです。フリーでありながら、3Dモデル作成、レンダリング、アニメーション、コンポジットなどのハイエンドに匹敵する高い機能を持ち、さらにゲームエンジンも搭載しています。

Q&A

解決済

1回答

2825閲覧

ゲームキャラクターの見た目を、アイテム毎に切り替える方法について悩んでいます。

tride

総合スコア68

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Blender

Blenderとは、オープンソースの3DCGソフトウェアです。フリーでありながら、3Dモデル作成、レンダリング、アニメーション、コンポジットなどのハイエンドに匹敵する高い機能を持ち、さらにゲームエンジンも搭載しています。

0グッド

2クリップ

投稿2021/01/04 18:08

編集2021/01/07 15:13

以下サイトを参考に、アクションゲームのキャラクターの装備品(衣装)の切り替えについて調べているのですが、どういった方法が以下目的に合っているかが分からずに悩んでいます。
実現方法、アドバイス、参考サイト、アセット、サンプルなどがあれば教えていただきたいです。

<用途>
・アクションゲームのキャラクターの衣装を切り替えたい。
・アイテムインベントリから選択したアイテムを装備させたとき、キャラクターの装備(衣装)が切り替わる
[画面参考イメージ]
※以下15秒辺り
https://www.youtube.com/watch?v=C-o1hHDNH2U

<目的>
A.シャツ、ジャケット、コート(または肌着、ドレスなど)をそれぞれ重ね着させる前提で切り替えたい。
B.コートやスカートなど服の裾は揺らすつもり(Magica Clothなど)
C.顔、頭髪、胴体、手、脚(腰か太ももの付け根辺りから足首まで)、足先(靴)で分割する(以下1を想定する場合)
D.モデルは人型モデルのみを想定
E.モデルは自作のオリジナルモデル(Blenderで作成)

<参考にしたサイト>
1.https://qiita.com/kaiware007/items/4c7a4b9862fae84d4023
分離された手/足/胴体/顔/頭を、プログラム上で結合して表示する

2.https://gametukurikata.com/program/changeofclothes
モデルの子要素として、モデル外側からかぶせて見た目を切り替える

<悩んでいる事>
a.1の場合
・それぞれシャツ10種、ジャケット10種、コート10種があった場合、胴体だけでも1000種(10^3)ものモデルが必要になるが、果たしてこれが正しいやり方なのか。
(実際の開発現場でもそうしている?)

b.2の場合
・下着やシャツなど比較的肌に密着した服には向いていない?
(鎧や兜など、モデル表面から少し離せる装備向き?)
・腕の振りや胸揺れなど、動きがそれなりにあると貫通しやすい?

c.ベストではなくとも、他にベターなやり方はないのか。

<その他>
・所持している中で関係しそうなアセット
Ultimate Inventory System
https://www.youtube.com/watch?v=C-o1hHDNH2U

<環境>
・Unity
・Blender 2.79~
・Visual Studio 2019

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

一般的なアプローチは分かりかねますが、一番カジュアルかつシンプルなのは各部位ごとに作ってUnity側で表示の制御でしょうか。
正直、どこまで細かくやるかによってアプローチ方法も変わってくるのでなんとも言えないところです。(服着せかえるだけなら全裸モデルと服メッシュを作れば終わりですが、MMORPG級の細かなキャラクリを目指すならもっとパーツを細分化して作り分け無いといけません)

この動画で解説されているのがイメージに近いのかなと思います。(ガンビスンとキュイラスで重ね着もしてますね)

How to Equip Clothing and Weapons in Unity 3D #1: Attaching Items to the Rig
https://www.youtube.com/watch?v=hcJ5luBs_jw
↑の#2動画で動作サンプルシーン
https://youtu.be/bhNiMWaCGn4?t=857

また、今回は関係ないかもしれませんが処理負荷や突き抜け対策として服で見えない部分はそもそも削っちゃってるパターンもあります。体の上に服 ではなく 体と服がセットになってるようなイメージ
参考→ https://amaotolog.com/vr/28#7

#その他参考
3D Character Customization in Unity
https://medium.com/@larissaredeker/3d-character-customization-fd95a1d57ae

3D Character Customization in Unity - Showcase of Tutorial found in Description
https://www.youtube.com/watch?v=Ch1aJljEYp4

Unity Character Customization (1/3): Introduction
https://www.youtube.com/watch?v=q3oVAXhvQl0&ab_channel=MixPixVisuals

投稿2021/01/05 08:55

hogefugapiyo

総合スコア3302

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tride

2021/01/05 15:59 編集

回答ありがとうございます。 参考サイト一通り見させていただきました。 なるほど。ペアレントによる親子関係とウェイトをもったモデルを、Unity側で読み込んでそれぞれ表示/非表示の切り替え制御で見た目を変えているんですね。 確かにこのやり方であれば、重ね着であってもモデルがパターンの数だけ乗数的に増えていくこともなければ、貫通もunity側で「見えない位置は非表示」という処理ができればある程度は回避できそうですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問