Windowsゲーム制作ツール「3D Gamestudio」at GAMEDEV
Windowsゲーム制作ツール「3D Gamestudio」 - 暇つぶし2ch219:名前は開発中のものです。
20/02/27 21:55:03 YjP0eTYG.net
>>214
レスありがとうございます。
いろいろ試してみます!

220:名前は開発中のものです。
20/05/01 16:07:01 Dy/gbdNP.net
現在、他のツール(Maya)で作成したモデルをMEDにインポートしているのですが、
もしかして、FBX形式ではマテリアルは読み込まれないのでしょうか?
アニメーションやテクスチャーは読めるのですが、マテリアルだけが無視されてしまいます・・・。

221:名前は開発中のものです。
20/05/01 21:03:09 Qpg83TDE.net
分からないなー。
モデルデータのエンジンへのI/O難しさと日本語の問題であまり使わなくなったので。
autodesk製品なら他のツールより互換性は高いでしょうが、何分3DGSがすごく古い設計なので。

MATERIALグループのような形で持ち込むのは無理だったと思う。
DiffuseやAmbientといった基本的なパラメーターは持ち込めるけど、
数値の扱いが異なるらしく意図したような調整にならない。
これらは基本的に0でインポートしてた。
色はそもそも扱いが違ってて、コード上でEntityのメンバー変数を使用する。

で基本的にはMATERAL構造体がA8には用意されているのでそれに定義して、
Entityのメンバー変数materialに代入する形で使うのがセオリーのようです。
いくつかの基本的なMATERIALが用意されているのでそれを使って書き換えるか、
もっと高度なら自分でMATERIAL構造体を定義してそれをEntityにアタッチする感じです。

基本的に3DGSはDirectX9のラッパーみたいなものなので、このライブラリに詳しければ
他の方法もあるかもしれないのですが、このライブラリに不案内で私はあまり詳しくありません。

222:名前は開発中のものです。
20/05/01 23:06:14 Dy/gbdNP.net
>>217
レスありがとうございます。
なるほど、コード上で設定もできるのですね。今は、読み込み後、MED上でマテリアル追加してました。
とりあえず、全部テクスチャーを張れば、なんとか・・・汗
あと、御存じなら教えて欲しいのですが、例えばモデルのテクスチャーをスクリプト上で変更できるコマンドって
ありますか?
ようは、表情別のテクスチャーを用意して、アクションごとに切り替えて使えないかなと思いまして・・・
MEDのアニメーションではポーズしか設定できませんよね?

223:名前は開発中のものです。
20/05/02 11:34:29.17 oxhCJyx+.net
>あと、御存じなら教えて欲しいのですが、例えばモデルのテクスチャーをスクリプト上で変更できるコマンドって
ありますか?
ent_setskin()
ですかねえ。
ただ使い所の説明が難しいんですよ。
サンプルデータを上げておきます。
パスは3dgsです。
URLリンク(whitecats.dip.jp)

224:名前は開発中のものです。
20/05/02 14:29:06 gZGaXLho.net
simulationライブラリで純粋な関数式プログラミングをする
URLリンク(x0000.net)

UIライブラリ (C#, 2D) を作ったよ
URLリンク(x0000.net)

連続と離散を統一した!
URLリンク(x0000.net)

4Dエンジン
URLリンク(x0000.net)

matrixのライブラリ
URLリンク(x0000.net)

ある強力なFor関数
URLリンク(x0000.net)

SQLライブラリ
URLリンク(x0000.net)

225:名前は開発中のものです。
20/05/02 19:34:58.89 KNZdWIXm.net
>>219
おおおお!
ありがとうございます!
サンプルだけでなく、貴重な情報も感謝です。
ダメ文字問題が、今後の課題になりそうです。
でも韓国版は正式対応してるのに、ダメ文字問題発生してないのかな・・・?

226:名前は開発中のものです。
20/05/02 20:21:48 oxhCJyx+.net
だめ文字はどうにもならないと思います。
Lite-Cは標準Cコンパイラと違って、charに文字列を食わせる時に
エスケープシーケンスをバイナリレベルで解決してしまいます。
メモリデータそのものに日本語の文字コードの欠損が生じてしまいます。
ほかのCコンパイラでもライブラリなどで同様の問題は起きますが、これは
バイナリは欠損起こしてないので文字コードの数値を調べて英数字でない
と分かるものには\文字(0x5C)を追加することで回避可能です。
Lite-Cではこれができない。
文字化けする箇所には自分で文字\を追加するしか有りません。
随分と思い切ったと言うか、後先考えない実装をしてくれたもんです・・・。

227:名前は開発中のものです。
20/05/02 20:45:08.72 KNZdWIXm.net
>>222
試しにstring関数を使ってダメ文字を10個くらい表示させてみました。
実行前にエディタの機能で、\を\\に一括変換でうまくいくみたいです。
コード上で\を使うのはディレクトリ設定ぐらいと思うので、これでなんとか
ゲーム内の表示対応しようかと思います。

228:名前は開発中のものです。
20/05/05 14:29:43 5Bzi5FN0.net
simulationライブラリで純粋な関数式プログラミングをする
URLリンク(x0000.net)

UIライブラリ (C#, 2D) を作ったよ
URLリンク(x0000.net)

連続と離散を統一した!
URLリンク(x0000.net)

4Dエンジン
URLリンク(x0000.net)

matrixのライブラリ
URLリンク(x0000.net)

ある強力なFor関数
URLリンク(x0000.net)

SQLライブラリ
URLリンク(x0000.net)

229:名前は開発中のものです。
20/05/21 22:21:33 qFsXVeHc.net
またしても詰まってしまいました。
MEDのマテリアル設定でポリゴンの裏側を表示させるオプションとかはないのでしょうか?(unityでのtwosideとか)
それともスクリプト上で設定できるのでしょうか?マニュアルを探しましたがそれらしきものが見つかりませんでした・・・

230:名前は開発中のものです。
20/05/22 14:32:14.54 9RrhreTt.net
両面ポリゴン使った方が無難だと思うけど、
MEDにはそんなオプションはたぶんないかな。
片面ポリゴンを両面表示化させたいなら、シェーダー使わないと無理じゃないかな。
ただし、シェーダーはモデル単位で適用されるのでモデルを分割させないといけませんね。
そうすると複数のモデルをパーツごとに読み込んでそのモデル同士の親子付けとか必要になってくると思います。
自分的にはわりと未知の領域です。
#include <acknex.h>
#include <default.c>
#include <mtlFX.c>
ENTITY* a_mdl;
action a_mdl_prop();
.
function main()
{
a_mdl = ent_create("a.mdl", vector(0, 0, 0), a_mdl_prop);
}
action a_mdl_prop()
{
me.material = twosided; // これが両面表示させるシェーダーの名前
}

231:名前は開発中のものです。
20/05/22 14:53:27.71 9RrhreTt.net
まあ、フィギュアなんかはそもそも裏側が透明だと違和感あるので
ごっそりまるまる両面表示化シェーダーを適用させてもあまり問題起こらない気がするけど。
カメラに映ってない箇所はシェーダーで処理しないんだし。

232:名前は開発中のものです。
20/05/22 15:09:16.34 DhcBaLXv.net
ありがとうございます!
シェーダーと両面ポリゴン、いろいろ試してみます。

233:名前は開発中のものです。
20/05/25 20:47:36 Ai9kIzm7.net
ようやくアニメーションまで漕ぎつけました。

通常は、a_mdl_anime()を別途作成し、
function main()
{
a_mdl = ent_create("a.mdl", vector(0, 0, 0), a_mdl_anime);
}

でアニメ設定できて、表示もOKだったのですが、前述のシェーダーを同時に適用する場合、
どのような方法がありますでしょうか?

クリエイト時にできないかと、
function main()
{
a_mdl = ent_create("a.mdl", vector(0, 0, 0), (a_mdl_prop && a_mdl_anime));
}
これではエラーとなりますし、

エンティティのイベントにわたせるかと、
function main()
{
a_mdl = ent_create("a.mdl", vector(0, 0, 0), a_mdl_prop);
a_mdl.event = a_mdl_anime;
}

と、しましたら、エラーにはなりませんが、シェーダーの適用のみでアニメの適用はされず・・・

234:名前は開発中のものです。
20/05/25 23:20:08.79 iF6OjKsN.net
a_mdl_prop() と a_mdl_anime()の一つにしちゃえばいいのではないでしょうか。
a_mdl_anime()が何かは分かりませんがおそらくこれまでの話の流れ的にどっちもmaterial構造体への
アクセスでしょうから
action xxxxx()
{
my.material = twosided;
my.material.ambient_blue = 255;
以下略
my.skin = 1;
以下略
}

235:名前は開発中のものです。
20/05/25 23:31:56.42 iF6OjKsN.net
my.material = twosided; ではなく my.material = mtl_twosided; でした。

236:名前は開発中のものです。
20/05/25 23:34:54 iF6OjKsN.net
自分でmaterialを定義して名前をつけてアタッチすることもできるし、
action関数内で直接Entityのmaterialを弄ってもよいわけです。
ambientやskinといったメンバー変数はごく基本的なものですから、
モデル自身で持ってます。
直接代入して書き換えるか、materialという型で変数を作って
名前を使って書き換えるかの違いがあるだけです。

237:名前は開発中のものです。
20/05/25 23:46:10 iF6OjKsN.net
>>229
のコードを改造するとしたら

#include <mtlFX.c> // mtl_twodied 用のインクルードファイル

.
a_mdl = ent_create("a.mdl", vector(0, 0, 0), (a_mdl_anime));


action a_mdl_amime()
{
my,material = mtl_twosided; // tow_sided機能を適用
}

を追加するだけで良いかもしれません。
materialの定義は関係のないメンバー変数を上書きはしなかったと思います。
2重定義しても差し支えないでしょう。

238:名前は開発中のものです。
20/05/26 19:43:28 OB4YT/vT.net
おおお!
なぜか、処理を分けようと思い込んでいました。
1つにして問題なくいけました!
とりあえず、mdlファイルへのコンバートは制限はあるものの、
アニメ付きで表示できるまでになったので、ゲーム制作の入り口にはたどり着けたようです^^

239:名前は開発中のものです。
23/07/26 23:14:35.57 ZKA5BEk09
つい先曰もフクシマ沖の魚から1万8О〇〇ベクレルものセシウ厶か゛検出されて,これを根拠に香港やハ゛カチョンは、海に汚染水を流すことに
猛反対しているわけだか゛.羽田に成田にとクソ航空機ハ゛ンバン飛ばしまくって地球破壞しておいて寝言は寝て言えって話た゛よな、ます゛は曰本
とのクソ航空便全廃して.てめえらの地球破壞テ□行為を中止するのが先た゛ろ,しかも力ンコ─だのとセシウ厶ま


240:みれと主張する日本の寿司ノコノコ食いに来るダブスタかましながら吐くセリフじゃ到底ないわな、フクシマ沖をセシウムまみれにすることは,カによる-方的な現状変更によって都心まで数珠つなぎで鉄道の3○倍以上もの莫大な温室効果ガスまき散らす大量破壞兵器であるクソ航空機飛は゛して,気侯変動させて、海水温上昇させてかつてない量の水蒸気を曰本列島に供給させて洪水に土砂崩れに暴風にと住民の生命と財産を強奪することで私腹を肥やす斉藤鉄夫ら世界最悪の殺人テ口組織公明党に乗っ取られた世界最悪の地球破壞強盜殺人腐敗テ口國家日本の決定事項なんた゛からとっとと日本との國交を断絶してクソ航空機を日本の空に飛ばす行為を永久に中止しろやと被災者らはこのダフ゛スタ政府に言ってやろう!創価学会員は、何百万人も殺傷して損害を与えて私腹を肥やし続けて逮捕者まて゛出てる世界最惡の殺人腐敗組織公明党を池田センセ-か゛囗をきけて容認するとか本気て゛思ってるとしたら侮辱にもほどか゛あるぞ!htтΡs://i,imgur.сοm/hnli1ga.jpeg



241:名前は開発中のものです。
23/07/31 05:37:50.18 PF/zeelH.net
物理的に無理

242:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch