ページ 11

LoadGraph関数などの引数がよく分かりません。

Posted: 2012年10月23日(火) 21:49
by HI魔人
LoadGraphやDrawGlaph関数のようにファイルの名前を引数として渡す関数がありますが、GameProgファイルに入っているものしか表示できないのでしょうか?それ以外でもできるのならどうやってやるのか教えてください。

Re: LoadGraph関数などの引数がよく分かりません。

Posted: 2012年10月23日(火) 21:58
by みけCAT
普通に開きたいファイルのファイル名を絶対パスもしくは相対パスで指定します。

Re: LoadGraph関数などの引数がよく分かりません。

Posted: 2012年10月23日(火) 21:59
by Dixq (管理人)
絶対パスを指定して、例えばこのように書けば
LoadGraph("C:\Users\Public\Pictures\Sample Pictures\チューリップ.jpg");
どこにあるファイルも使えますが、まず普通やってはいけない処理でしょう。

Re: LoadGraph関数などの引数がよく分かりません。

Posted: 2012年10月24日(水) 07:13
by HI魔人
MMDを使ったゲームを作りたいと思っていたもので、いちいち移動させるのは面倒だなということで質問させていただきました。
と、いうことは"GameProg/画像"の中に入れておかないと処理が重くなる、ということですかね?

Re: LoadGraph関数などの引数がよく分かりません。

Posted: 2012年10月24日(水) 10:37
by softya(ソフト屋)
何処においても構いませんがゲームとして配布するためには絶対パスで記述するとパソコンごとに違う可能性があるので配布に困ると言うことです。
なので、普通はゲームプログラムのある場所からの相対パスを使います。

Re: LoadGraph関数などの引数がよく分かりません。

Posted: 2012年10月24日(水) 21:51
by てんむすキツネ
処理速度は関係ないです。
パスは「特定のフォルダからの位置」です。

絶対パスは、ユーザーファイルからのパス
相対パスはそのファイルからのパス
です。

作っているものを公開しないのであれば
自由でも構いませんが
絶対パスは、どこのフォルダに置くかで
変更する必要がでてきます。
たとえば
ユーザーファイル内のpublicフォルダの中にサンプルプロジェクトがあり、
サンプルプロジェクの中の画像フォルダにはいっているチューリップを読み込むとします。
C:\Users\Public\project_Sample\画像\チューリップ.jpg"

その場合
ユーザー→public→project_Sample→画像→チューリップ.jpg
の順にフォルダを開いています。

しかし、project_Sampleの位置を変えたらどうなるでしょうか。
publicの中にdataというフォルダを作り
その中にproject_Sampleを入れたとします。

しかしパスがそのままだと
ユーザー→public→ 「project_Sample(*publicの中にはないから見つからない!*)」 →画像→チューリップ.jpg
publicの中自体にはproject_Sampleはありません。dataの中にあるからです。

つまり何が言いたいかというと
絶対パスだとプロジェクトの位置によって全パスを変更する必要があるわけです。

ダウンロードしたユーザーが必ず
特定の場所にダウンロードするとは限りません。
なので、画像のロードがうまくできないゲームになってしまいます。

相対パスは上の奴から
C:\Users\Public\project_Sample\
までのパスを入力しないでいいパスです。
つまりユーザーファイルでなく、プロジェクトファイルからフォルダを開いて行きます。
プロジェクトファイル内は、遊ぶ人はまずいじりませんよね?
つまり、パスが変更されることはないのです。

あえて長文で書きましたが逆にわかりにくいかなぁ・・・・

面倒くさいからMMDファイルの位置を変えたくないという意味でしょうか?
おそらく、絶対パスで処理をするほうが
面倒くさいと思います。

Re: LoadGraph関数などの引数がよく分かりません。

Posted: 2012年10月25日(木) 07:18
by HI魔人
いえいえ、とてもよく分かりました。
MMDのモーション全部作っちゃってからGameProgの中に入れときます。