質問編集履歴

1

ソースコードを追加しました。

2016/05/11 11:30

投稿

okutann0529
okutann0529

スコア10

test CHANGED
File without changes
test CHANGED
@@ -83,3 +83,157 @@
83
83
  コードは一部本来のものとは異なっております。
84
84
 
85
85
  非常に困っておりまして、ご回答いただけるとありがたいです。
86
+
87
+
88
+
89
+ ###追記
90
+
91
+ three.jsを用いてjson形式で書きだしたデータをファイル名で読み出して、
92
+
93
+ 取得データからメッシュを返すクラスを作りました。
94
+
95
+
96
+
97
+ C_Model = function() {
98
+
99
+ //ジオメトリを保持
100
+
101
+ this.Geometory = null;
102
+
103
+ //マテリアルを保持
104
+
105
+ this.Material = null;
106
+
107
+ //パーツ読み込み完了フラグ
108
+
109
+ this.LoadFlag = false;
110
+
111
+ //パーツファイル名
112
+
113
+ this.JSONfilename = false;
114
+
115
+
116
+
117
+ };
118
+
119
+
120
+
121
+ //保持しているジオメトリとマテリアルでメッシュを作って返す。
122
+
123
+ C_Model.prototype.Get_Model = function () {
124
+
125
+ var tmp = new THREE.Mesh(this.Geometory, this.Material);
126
+
127
+ return tmp;
128
+
129
+ };
130
+
131
+
132
+
133
+ //指定されたファイル名に基づいて、ジオメトリとマテリアルを取得
134
+
135
+ C_Model.prototype.Load_Model = function (JSONfilename) {
136
+
137
+ this.JSONfilename = JSONfilename;
138
+
139
+ var loader = new THREE.JSONLoader();
140
+
141
+ var obj = this;
142
+
143
+ var func = function (Geometory, Material) {
144
+
145
+ obj.Collback(Geometory, Material);
146
+
147
+ }
148
+
149
+
150
+
151
+ loader.load(JSONfilename, func);
152
+
153
+ };
154
+
155
+
156
+
157
+ C_Model.prototype.Collback = function(Geometory, Material) {
158
+
159
+ //console.log(Geometory);
160
+
161
+ //console.log(Material);
162
+
163
+ this.Geometory = Geometory;
164
+
165
+
166
+
167
+ this.Material = new THREE.MeshFaceMaterial(Material);
168
+
169
+
170
+
171
+ this.LoadFlag = true;
172
+
173
+ console.log("LOAD-"+this.JSONfilename+"-FINISH");
174
+
175
+
176
+
177
+ };
178
+
179
+
180
+
181
+ C_Model.prototype.Get_LoadState= function(){
182
+
183
+ return this.LoadFlag;
184
+
185
+ };
186
+
187
+
188
+
189
+ このクラスを用いて複数データのメッシュデータを得て、
190
+
191
+ それを配列要素に一つづつ読み込もうとしています。
192
+
193
+
194
+
195
+ こちらのクラスを使用して単一のモデルを読むだけであれば、
196
+
197
+
198
+
199
+ var model_data = new C_Model();
200
+
201
+
202
+
203
+ var Model = null;
204
+
205
+
206
+
207
+ model_data.Load_Model("model.json");
208
+
209
+
210
+
211
+ function waitforload() {
212
+
213
+ if (model_data.Get_LoadState() == false) {
214
+
215
+ setTimeout(waitforload, 10);
216
+
217
+ return;
218
+
219
+ }
220
+
221
+ Model = model_data.Get_Model();
222
+
223
+
224
+
225
+ scene.add(Model);
226
+
227
+ }
228
+
229
+
230
+
231
+ waitforload();
232
+
233
+
234
+
235
+ とすることでModelにデータを読み込めています。
236
+
237
+
238
+
239
+ modelを配列化してそれぞれにデータの取り込みをしたいと考えています。