Skip to content

Commit

Permalink
made it available for obj file
Browse files Browse the repository at this point in the history
  • Loading branch information
Taku3939 committed Nov 5, 2021
1 parent 56d5315 commit 451772f
Show file tree
Hide file tree
Showing 7 changed files with 44 additions and 178 deletions.
8 changes: 0 additions & 8 deletions Assets/Model.meta

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
namespace SPModelImporter.Editor
{
[Serializable]
public class SPTempData
public class SPData
{
public string SourcePath;
public string BaseColorPrefix;
Expand All @@ -12,7 +12,7 @@ public class SPTempData
public string HeightPrefix;
public string AoPrefix;

public SPTempData(string sourcePath,
public SPData(string sourcePath,
string baseColorPrefix,
string metallicPrefix,
string normalPrefix,
Expand Down
27 changes: 15 additions & 12 deletions Assets/SPModelImporter/Editor/SPModelImportWindow.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System.IO;
using SPModelImporter.Editor;
using UnityEditor;
using UnityEngine;

Expand All @@ -9,39 +10,41 @@ public class SPModelImportWindow : EditorWindow
[MenuItem("SPModelImporter/Import Model")]
public static void OpenFile()
{
SPModelSetting Setting = SPModelSetting.GetOrCreate();
SPModelSetting setting = SPModelSetting.GetOrCreate();
// モデルファイルのパス
var sourceFile = EditorUtility.OpenFilePanel("Select Model file", "", "fbx");
var sourceFile = EditorUtility.OpenFilePanel("Select Model file", "", "fbx,obj");
var sourceDir = Path.GetDirectoryName(sourceFile);
var saveDir = $"{Application.dataPath}{Setting.saveDir.Replace("Assets", "")}/{Path.GetFileNameWithoutExtension(sourceFile)}";
var saveFile = $"{Application.dataPath}{Setting.saveDir.Replace("Assets", "")}/{Path.GetFileNameWithoutExtension(sourceFile)}/{Path.GetFileName(sourceFile)}";
var saveDir =
$"{Application.dataPath}{setting.saveDir.Replace("Assets", "")}/{Path.GetFileNameWithoutExtension(sourceFile)}";
var saveFile =
$"{Application.dataPath}{setting.saveDir.Replace("Assets", "")}/{Path.GetFileNameWithoutExtension(sourceFile)}/{Path.GetFileName(sourceFile)}";
var jsonPath = @$"{saveDir}/autogenerate.json";
// モデル名のディレクトリの作成
if (!Directory.Exists(saveDir)) Directory.CreateDirectory(saveDir);


// Jsonデータの作成
var json = JsonUtility.ToJson(
new SPTempData(
new SPData(
sourceDir,
Setting.baseColorPrefix,
Setting.metallicPrefix,
Setting.normalPrefix,
Setting.heightPrefix,
Setting.aoPrefix));
setting.baseColorPrefix,
setting.metallicPrefix,
setting.normalPrefix,
setting.heightPrefix,
setting.aoPrefix));

// モデルのファイルをコピーしてくる
if (File.Exists(saveFile))
{
if (UnityEditor.EditorUtility.DisplayDialog("Warning", "オーバーライドしますがよろしいですか?", "ok", "cancel"))
{
File.Delete(saveFile);
File.Delete(saveFile + ".meta");

}
else
return;
}

File.WriteAllText(jsonPath, json);
File.Copy(sourceFile, saveFile);

Expand Down
48 changes: 24 additions & 24 deletions Assets/SPModelImporter/Editor/SPModelImporter.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.IO;
using SPModelImporter.Editor;
using UnityEditor;
using UnityEngine;

Expand All @@ -10,21 +11,22 @@ public class SPModelImporter : AssetPostprocessor
{
private static readonly List<string> ProcessedList = new List<string>();


/// <summary>
/// アセットを読み込んだ時に発火する
/// </summary>
/// <param name="importedAssets"></param>
/// <param name="deletedAssets"></param>
/// <param name="movedAssets"></param>
/// <param name="movedFromAssetPaths"></param>
private static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets,
private static void OnPostprocessAllAssets(
string[] importedAssets,
string[] deletedAssets,
string[] movedAssets,
string[] movedFromAssetPaths)
{
foreach (var path in importedAssets)
{
if (path.EndsWith(".fbx"))
if (path.EndsWith(".fbx") || path.EndsWith(".obj"))
{
if (ProcessedList.Contains(path))
{
Expand All @@ -45,7 +47,7 @@ private static void OnPostprocessAllAssets(string[] importedAssets, string[] del
}

string json = File.ReadAllText(jsonPath);
var temp = JsonUtility.FromJson<SPTempData>(json);
var temp = JsonUtility.FromJson<SPData>(json);

if (string.IsNullOrEmpty(json))
{
Expand All @@ -56,7 +58,7 @@ private static void OnPostprocessAllAssets(string[] importedAssets, string[] del
// jsonの削除
if (File.Exists(jsonPath)) File.Delete(jsonPath);
if (File.Exists(jsonPath + ".meta")) File.Delete(jsonPath + ".meta");

// フォルダ
var setting = SPModelSetting.GetOrCreate();
var sourceTexDir = @$"{temp.SourcePath}\{setting.textureFolderName}";
Expand Down Expand Up @@ -96,29 +98,24 @@ static void CreateMaterialAndSetTextures(
string distTexDir,
string distMatDir,
string modelName,
SPTempData spTemp,
SPData substance,
string matName)
{
#if UNITY_RP_URP
Material material = new Material(Shader.Find("Universal Render Pipeline/Lit")) { name = matName };
var sourceBaseMap = ConvertPrefix(@$"{sourceTexDir}\{spTemp.BaseColorPrefix}", modelName, matName);
var sourceHeightMap = ConvertPrefix(@$"{sourceTexDir}\{spTemp.MetallicPrefix}", modelName, matName);
var sourceMetallicMap = ConvertPrefix(@$"{sourceTexDir}\{spTemp.MetallicPrefix}", modelName, matName);
var sourceNormalMap = ConvertPrefix(@$"{sourceTexDir}\{spTemp.NormalPrefix}", modelName, matName);
var sourceRoughnessMap = ConvertPrefix(@$"{sourceTexDir}\{spTemp.HeightPrefix}", modelName, matName);
var sourceAoMap = ConvertPrefix(@$"{sourceTexDir}\{spTemp.AoPrefix}", modelName, matName);


// マテリアルごとにフォルダを作成
if (!Directory.Exists(@$"{distTexDir}\{matName}"))
Directory.CreateDirectory(@$"{distTexDir}\{matName}");

var distBaseMap = ConvertPrefix(@$"{distTexDir}\{matName}\{spTemp.BaseColorPrefix}", modelName, matName);
var distHeightMap = ConvertPrefix(@$"{distTexDir}\{matName}\{spTemp.MetallicPrefix}", modelName, matName);
var distMetallicMap = ConvertPrefix(@$"{distTexDir}\{matName}\{spTemp.MetallicPrefix}", modelName, matName);
var distNormalMap = ConvertPrefix(@$"{distTexDir}\{matName}\{spTemp.NormalPrefix}", modelName, matName);
var distRoughnessMap = ConvertPrefix(@$"{distTexDir}\{matName}\{spTemp.HeightPrefix}", modelName, matName);
var distAoMap = ConvertPrefix(@$"{distTexDir}\{matName}\{spTemp.AoPrefix}", modelName, matName);
var sourceBaseMap = ConvertPrefix(@$"{sourceTexDir}\{substance.BaseColorPrefix}", modelName, matName);
var sourceHeightMap = ConvertPrefix(@$"{sourceTexDir}\{substance.MetallicPrefix}", modelName, matName);
var sourceMetallicMap = ConvertPrefix(@$"{sourceTexDir}\{substance.MetallicPrefix}", modelName, matName);
var sourceNormalMap = ConvertPrefix(@$"{sourceTexDir}\{substance.NormalPrefix}", modelName, matName);
var sourceRoughnessMap = ConvertPrefix(@$"{sourceTexDir}\{substance.HeightPrefix}", modelName, matName);
var sourceAoMap = ConvertPrefix(@$"{sourceTexDir}\{substance.AoPrefix}", modelName, matName);

var distBaseMap = ConvertPrefix(@$"{distTexDir}\{matName}\{substance.BaseColorPrefix}", modelName, matName);
var distHeightMap = ConvertPrefix(@$"{distTexDir}\{matName}\{substance.MetallicPrefix}", modelName, matName);
var distMetallicMap = ConvertPrefix(@$"{distTexDir}\{matName}\{substance.MetallicPrefix}", modelName, matName);
var distNormalMap = ConvertPrefix(@$"{distTexDir}\{matName}\{substance.NormalPrefix}", modelName, matName);
var distRoughnessMap = ConvertPrefix(@$"{distTexDir}\{matName}\{substance.HeightPrefix}", modelName, matName);
var distAoMap = ConvertPrefix(@$"{distTexDir}\{matName}\{substance.AoPrefix}", modelName, matName);
List<Tuple<string, string, int>> maps = new List<Tuple<string, string, int>>();
maps.Add(new Tuple<string, string, int>(sourceBaseMap, distBaseMap, ShaderProperty.BaseMap));
maps.Add(new Tuple<string, string, int>(sourceHeightMap, distHeightMap, ShaderProperty.HeightMap));
Expand All @@ -127,6 +124,9 @@ static void CreateMaterialAndSetTextures(
maps.Add(new Tuple<string, string, int>(sourceRoughnessMap, distRoughnessMap, ShaderProperty.RoughnesMap));
maps.Add(new Tuple<string, string, int>(sourceAoMap, distAoMap, ShaderProperty.AOMap));

// マテリアルがあった場合ぞれぞれフォルダを作成
if (maps.Count > 0 && !Directory.Exists(@$"{distTexDir}\{matName}"))
Directory.CreateDirectory(@$"{distTexDir}\{matName}");

foreach (var map in maps)
{
Expand Down
4 changes: 2 additions & 2 deletions Assets/SPModelImporter/Editor/ShaderProperty.cs
Original file line number Diff line number Diff line change
Expand Up @@ -74,10 +74,10 @@ public static class ShaderProperty
#else
StandardHeightMap;
#endif
# if UNITY_RP_URP
# if UNITY_RP_URP
public static int AOMap => URPAOMap;
// StandardAOMap;
#endif
#endif
public static int EmissionMap =>
# if UNITY_RP_URP
URPEmissionMap;
Expand Down
131 changes: 1 addition & 130 deletions Assets/Scenes/SPModelImporter.unity
Original file line number Diff line number Diff line change
Expand Up @@ -132,28 +132,13 @@ GameObject:
serializedVersion: 6
m_Component:
- component: {fileID: 595217743}
- component: {fileID: 595217742}
m_Layer: 0
m_Name: GameObject
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &595217742
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 595217741}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7bb68acb5c0ae9f42bb97072d7cc048d, type: 3}
m_Name:
m_EditorClassIdentifier:
_material: {fileID: 2100000, guid: 2089870f240956b4d82601df57d812de, type: 2}
_texture2D: {fileID: 2800000, guid: 866e57e3d33cc1d429805a382c0bad46, type: 3}
--- !u!4 &595217743
Transform:
m_ObjectHideFlags: 0
Expand All @@ -168,63 +153,6 @@ Transform:
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &912823224
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: -8679921383154817045, guid: a818015dbd309474c9522a2884814950, type: 3}
propertyPath: m_RootOrder
value: 1
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a818015dbd309474c9522a2884814950, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a818015dbd309474c9522a2884814950, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a818015dbd309474c9522a2884814950, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a818015dbd309474c9522a2884814950, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a818015dbd309474c9522a2884814950, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a818015dbd309474c9522a2884814950, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a818015dbd309474c9522a2884814950, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a818015dbd309474c9522a2884814950, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a818015dbd309474c9522a2884814950, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a818015dbd309474c9522a2884814950, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 919132149155446097, guid: a818015dbd309474c9522a2884814950, type: 3}
propertyPath: m_Name
value: untitled1
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: a818015dbd309474c9522a2884814950, type: 3}
--- !u!1 &2011858850
GameObject:
m_ObjectHideFlags: 0
Expand Down Expand Up @@ -318,62 +246,5 @@ Transform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 2
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &2132967998
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: -8679921383154817045, guid: a818015dbd309474c9522a2884814950, type: 3}
propertyPath: m_RootOrder
value: 3
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a818015dbd309474c9522a2884814950, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a818015dbd309474c9522a2884814950, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a818015dbd309474c9522a2884814950, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a818015dbd309474c9522a2884814950, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a818015dbd309474c9522a2884814950, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a818015dbd309474c9522a2884814950, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a818015dbd309474c9522a2884814950, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a818015dbd309474c9522a2884814950, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a818015dbd309474c9522a2884814950, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a818015dbd309474c9522a2884814950, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 919132149155446097, guid: a818015dbd309474c9522a2884814950, type: 3}
propertyPath: m_Name
value: untitled1 (1)
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: a818015dbd309474c9522a2884814950, type: 3}

0 comments on commit 451772f

Please sign in to comment.