GameMaker 日本語掲示板

【解決】「Add Existing」でroomをインポートする時の問題

2 コメント
views
16 フォロー

roomを「Add Existing」でインポートした時に、roomに配置されているobjectなども一緒にインポートされていろいろ重複してしまう問題の解決法を探しています。

■状況
プロジェクトA: アセットにo_treeがある。
プロジェクトB: アセットにo_treeとroom1があり、room1にはo_treeが配置されている。

■手順
1.「Add Existing」でプロジェクトBのroom1を、プロジェクトAにインポートする
2.プロジェクトAのアセットにroom1とo_treeがインポートされる
3.o_treeや関連するspriteなどがインポートされた結果、いろいろ重複してしまう(名前がだぶるものは改名される)

同名objectがある場合はインポートしないようにする方法は無いでしょうか?
1つ2つなら手動でなんとかするんですが、たくさんあり関連するobjectやspriteなども全てインポートされるので重複を解決するのにいつも手間がかかります。

もしスマートな方法があれば教えて下さい。

asa
作成: 2022/06/07 (火) 16:45:03
最終更新: 2022/06/09 (木) 09:59:12
通報 ...
1

単純にルームだけをコピーしたいということでしたら、

ツールメニュー>ローカルパッケージを作成、プロジェクトの中からほかのプロジェクトに移動したいアセットを選択。
今回の場合、移動したいルームを、右側のリソースリストから選択し追加ボタンをクリック。
左側の表示名とパッケージIDを適当に決めてから、右下のOKをクリック。
ファイルの保存先を決めるダイアログが出るので好きな場所の保存する。
拡張子yympsのファイルが出来上がる。

次に、インポートしたいプロジェクトを開き、ツールメニュー>ローカルパッケージをインポートで、先ほど作ったファイルを選択して開く。

これで、ルームの情報だけインポートすることができました。

私は、自分がテストしているプロジェクトを2つフォルダごとコピーして、1つをコピー先、もう一つはルームをコピーして別名のルームにして、上記のローカルパッケージをルームだけ入れたもので作成しました。
コピー先となるプロジェクトを開きローカルパッケージをインポートしてみて、実際には同じルームをコピーしたものなので、オブジェクト等は同じものが配置されていますが、asaさんのやり方のように、同じオブジェクトやスプライトが追加(コピー)されてしまう状態にはなりませんでした。

上記の方法を実験してみてください。

IDEバージョン:2022.5.0.8

2

おおおお!
教えていただいた方法でやってみたら、うまくいったみたいです!
「ローカルパッケージ」というものの存在を全く知りませんでした!
これからは作業が楽になりそうです。
ありがとうございました!