X



Windowsゲーム制作ツール「3D Gamestudio」
0200名前は開発中のものです。2018/03/24(土) 10:30:21.71ID:ob0bSiXs
てす
0201名前は開発中のものです。2020/02/15(土) 22:27:29.57ID:umvW5CwU
誰かいますかー?

初歩的な疑問なんですが、lite-cのサンプルの最初で地球と地形読み込んで表示するのありますよね?
あれって、0キーを押すと矢印キーで移動できるようになりますが、そのコントロールはどこで設定しているんでしょうか?
0202名前は開発中のものです。2020/02/17(月) 19:52:44.40ID:mIZ4gMSu
// このゲームエンジンを動かすのに必須
#include <acknex.h>
// 最低限の機能をキーに割り当てた定義
#include <default.c>

ソースコードに何も書かれていないと、上記のヘッダーファイルとソースファイルを自動で読み込みます。
[0]キーを押すとカメラを移動させるdef_move()関数が呼ばれるのも default.cに書かれた内容どおりに機能しています。
([ESC]キーでアプリケーションを終了させることができるのも同様です)
マニュアルでは勝手に読み込むので、そっちで再定義よろって描いてあるけれど、
ウインドウサイズやカメラの定義を自分でやると default.c は勝手に読み込まれなくなります(多分)。

マニュアルの#include または default.c 辺りを参考にしてください。
0204名前は開発中のものです。2020/02/21(金) 21:34:56.05ID:QJcRJDH3
lite-cのサンプルを実行後、alt+enterでフルスクリーンにすると、
画面が縦長の4:3になってしまう(上が切れてる?)のですが、
もしかしてウルトラワイドモニターに対応していないのでしょうか?
解像度を3440*1440から1920*1080にしてみましたが、若干緩和された
ものの4:3の画面で縦長になってしまいます。
0205名前は開発中のものです。2020/02/22(土) 02:07:31.97ID:kRdJU4rU
ゲーム変数 video_aspect にアスペクト比を明示的に指定します。
video_aspect = 4 / 3.0;

このゲームエンジンは膨大なゲーム変数を持っていますので、
ユーザーが思い通りの設定で初期化を行いたい場合、
まずこれらの変数の把握が必要かと思います。
マニュアルだと Engine Variables 以下になります。
video_○○といういくつかの変数とコンビネーションで設定が必要なものもありますね。
0207名前は開発中のものです。2020/02/26(水) 11:00:25.59ID:hqjUSV4d
proエディションにてPublishを行いましたが、マニュアルでは、
Compile EXEがオンの場合にexeを生成するとありますが、
オフにしても同様にCDフォルダに生成されます。
そして2回目のPublishで上書きを行うと、今度はオフの場合にソースコードも
コピーされるようになりました。マニュアルではオンザフライでコンパイルされると
ありますが、2回目以降が、それに該当するのでしょうか?
また、ソースコードがある場所に同様のexeファイルが生成される理由もよくわかりません。
(実行しても、dllが同じ場所にないためエラーになりますし・・・)
Engineでのパス指定?も、exeファイルがないと指定できないですし・・・

おそらく、気にせずcdフォルダの内容を公開すればいいだけかと思いますが・・・。
0208名前は開発中のものです。2020/02/26(水) 18:07:23.39ID:u/JdMekX
まともなゲーム作れた試しがないのであまり実行ファル化は詳しくないんですが。
前提として、SEDのFileメニューのPublish Main Script を選択してそのままOKボタンを押すと、
CDディレクトリにスクリプトの実行ファイルが作成されます。
その他のリソースは含まれないので自分でコピーしてやる必要があります(マニュアルpublishにそう書いてある)。
自分が知っているのは、スクリプト以外のリソースをパッケージ化する方法で、これはResourceにチェックを入れるとwrsという拡張子の
単一のデータコンテナとなります。
配布する場合は
app.exe
app.wrs
acknex.dll
d3dx9_42.dll
の4つになるんじゃないかと。
また、でかい動画ファイルとかは除外したいならそういう方法もできそうなことがマニュアルの同じ箇所になんか書いてありますね。
ただ、公式フォーラムではたびたびpublishすると実行不可になるという現象が議論にはなっているようです。
0209名前は開発中のものです。2020/02/26(水) 18:12:08.78ID:u/JdMekX
>>ソースコードがある場所に同様のexeファイルが生成される理由もよくわかりません。
これは実行するのに必要だからじゃないでしょうか。
DLLの解決はエンジン側でやってるんだと思いますよ。
0210名前は開発中のものです。2020/02/26(水) 18:14:37.43ID:u/JdMekX
いえ、違いますね。
ごめんなさい、よく分かりません。
サイズと言い同じ実行ファイルみたいにはみえますね。
0211名前は開発中のものです。2020/02/26(水) 22:29:09.82ID:hqjUSV4d
ありがとうございます。
とりあえずは公開時はCDフォルダの内容でOKみたいです。

それと、今default.cや他のサンプルを見ているのですが、
ソースコードをincludeする際は、語尾に「startup」のついた関数が最初に呼ばれるという認識であってますでしょうか?
テストでサンプルコードを無理やり分割してみてもクラッシュしてしまうので、ここら辺の簡単なサンプルがあれば解析しやすいのですが・・・
0212名前は開発中のものです。2020/02/27(木) 00:48:45.66ID:E8Ak61CI
>ソースコードをincludeする際は、語尾に「startup」のついた関数が最初に呼ばれるという認識であってますでしょうか?
でしょうね。 default.c 内の def_startup() がエンジンによって実行されるみたいですね。
SEDのメニュー"Option->References" の Engine タブのCommand Line Options の diag にチェックを入れて、
メニュー"Debug->Debug Run"(または Ctrl + F5)させると、acklog.txt という起動時の初期化ログが取れるので、
例えば、Lite-C workshop の 例の地球が表示されるプログラムで実行してみると、
出力されたログに"def_startup started" の行がありますよ。
0214名前は開発中のものです。2020/05/01(金) 16:07:01.38ID:Dy/gbdNP
現在、他のツール(Maya)で作成したモデルをMEDにインポートしているのですが、
もしかして、FBX形式ではマテリアルは読み込まれないのでしょうか?
アニメーションやテクスチャーは読めるのですが、マテリアルだけが無視されてしまいます・・・。
0215名前は開発中のものです。2020/05/01(金) 21:03:09.71ID:Qpg83TDE
分からないなー。
モデルデータのエンジンへのI/O難しさと日本語の問題であまり使わなくなったので。
autodesk製品なら他のツールより互換性は高いでしょうが、何分3DGSがすごく古い設計なので。

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

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

基本的に3DGSはDirectX9のラッパーみたいなものなので、このライブラリに詳しければ
他の方法もあるかもしれないのですが、このライブラリに不案内で私はあまり詳しくありません。
0216名前は開発中のものです。2020/05/01(金) 23:06:14.34ID:Dy/gbdNP
>>215
レスありがとうございます。
なるほど、コード上で設定もできるのですね。今は、読み込み後、MED上でマテリアル追加してました。
とりあえず、全部テクスチャーを張れば、なんとか・・・汗
あと、御存じなら教えて欲しいのですが、例えばモデルのテクスチャーをスクリプト上で変更できるコマンドって
ありますか?
ようは、表情別のテクスチャーを用意して、アクションごとに切り替えて使えないかなと思いまして・・・
MEDのアニメーションではポーズしか設定できませんよね?
0217名前は開発中のものです。2020/05/02(土) 11:34:29.17ID:oxhCJyx+
>あと、御存じなら教えて欲しいのですが、例えばモデルのテクスチャーをスクリプト上で変更できるコマンドって
ありますか?

ent_setskin()
ですかねえ。
ただ使い所の説明が難しいんですよ。
サンプルデータを上げておきます。
パスは3dgsです。
http://whitecats.dip.jp/up/download/1588386655/attach/1588386655.zip
0218名前は開発中のものです。2020/05/02(土) 14:29:06.38ID:gZGaXLho
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0

UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0

連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0

4Dエンジン
ttp://x0000.net/topic.aspx?id=3677-0

matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0

ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0

SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
0219名前は開発中のものです。2020/05/02(土) 19:34:58.89ID:KNZdWIXm
>>217
おおおお!
ありがとうございます!
サンプルだけでなく、貴重な情報も感謝です。
ダメ文字問題が、今後の課題になりそうです。

でも韓国版は正式対応してるのに、ダメ文字問題発生してないのかな・・・?
0220名前は開発中のものです。2020/05/02(土) 20:21:48.91ID:oxhCJyx+
だめ文字はどうにもならないと思います。
Lite-Cは標準Cコンパイラと違って、charに文字列を食わせる時に
エスケープシーケンスをバイナリレベルで解決してしまいます。
メモリデータそのものに日本語の文字コードの欠損が生じてしまいます。
ほかのCコンパイラでもライブラリなどで同様の問題は起きますが、これは
バイナリは欠損起こしてないので文字コードの数値を調べて英数字でない
と分かるものには\文字(0x5C)を追加することで回避可能です。
Lite-Cではこれができない。
文字化けする箇所には自分で文字\を追加するしか有りません。
随分と思い切ったと言うか、後先考えない実装をしてくれたもんです・・・。
0221名前は開発中のものです。2020/05/02(土) 20:45:08.72ID:KNZdWIXm
>>220
試しにstring関数を使ってダメ文字を10個くらい表示させてみました。
実行前にエディタの機能で、\を\\に一括変換でうまくいくみたいです。
コード上で\を使うのはディレクトリ設定ぐらいと思うので、これでなんとか
ゲーム内の表示対応しようかと思います。
0222名前は開発中のものです。2020/05/05(火) 14:29:43.47ID:5Bzi5FN0
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0

UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0

連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0

4Dエンジン
ttp://x0000.net/topic.aspx?id=3677-0

matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0

ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0

SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
0223名前は開発中のものです。2020/05/21(木) 22:21:33.64ID:qFsXVeHc
またしても詰まってしまいました。
MEDのマテリアル設定でポリゴンの裏側を表示させるオプションとかはないのでしょうか?(unityでのtwosideとか)
それともスクリプト上で設定できるのでしょうか?マニュアルを探しましたがそれらしきものが見つかりませんでした・・・
0224名前は開発中のものです。2020/05/22(金) 14:32:14.54ID:9RrhreTt
両面ポリゴン使った方が無難だと思うけど、
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; // これが両面表示させるシェーダーの名前
}
0225名前は開発中のものです。2020/05/22(金) 14:53:27.71ID:9RrhreTt
まあ、フィギュアなんかはそもそも裏側が透明だと違和感あるので
ごっそりまるまる両面表示化シェーダーを適用させてもあまり問題起こらない気がするけど。
カメラに映ってない箇所はシェーダーで処理しないんだし。
0226名前は開発中のものです。2020/05/22(金) 15:09:16.34ID:DhcBaLXv
ありがとうございます!
シェーダーと両面ポリゴン、いろいろ試してみます。
0227名前は開発中のものです。2020/05/25(月) 20:47:36.78ID:Ai9kIzm7
ようやくアニメーションまで漕ぎつけました。

通常は、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;
}

と、しましたら、エラーにはなりませんが、シェーダーの適用のみでアニメの適用はされず・・・
0228名前は開発中のものです。2020/05/25(月) 23:20:08.79ID:iF6OjKsN
a_mdl_prop() と a_mdl_anime()の一つにしちゃえばいいのではないでしょうか。
a_mdl_anime()が何かは分かりませんがおそらくこれまでの話の流れ的にどっちもmaterial構造体への
アクセスでしょうから

action xxxxx()
{
my.material = twosided;
my.material.ambient_blue = 255;
以下略
my.skin = 1;
以下略
}
0230名前は開発中のものです。2020/05/25(月) 23:34:54.32ID:iF6OjKsN
自分でmaterialを定義して名前をつけてアタッチすることもできるし、
action関数内で直接Entityのmaterialを弄ってもよいわけです。
ambientやskinといったメンバー変数はごく基本的なものですから、
モデル自身で持ってます。
直接代入して書き換えるか、materialという型で変数を作って
名前を使って書き換えるかの違いがあるだけです。
0231名前は開発中のものです。2020/05/25(月) 23:46:10.27ID:iF6OjKsN
>>227
のコードを改造するとしたら

#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重定義しても差し支えないでしょう。
0232名前は開発中のものです。2020/05/26(火) 19:43:28.80ID:OB4YT/vT
おおお!
なぜか、処理を分けようと思い込んでいました。
1つにして問題なくいけました!
とりあえず、mdlファイルへのコンバートは制限はあるものの、
アニメ付きで表示できるまでになったので、ゲーム制作の入り口にはたどり着けたようです^^
レスを投稿する


ニューススポーツなんでも実況