12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- /**
- * Copyright(c) Live2D Inc. All rights reserved.
- *
- * Use of this source code is governed by the Live2D Open Software license
- * that can be found at https://www.live2d.com/eula/live2d-open-software-license-agreement_en.html.
- */
- using Live2D.Cubism.Core;
- using Live2D.Cubism.Rendering;
- using UnityEngine;
- namespace Live2D.Cubism.Framework.Json
- {
- /// <summary>
- /// Default pickers.
- /// </summary>
- public static class CubismBuiltinPickers
- {
- /// <summary>
- /// Builtin <see cref="Material"/> picker.
- /// </summary>
- /// <param name="sender">Event source.</param>
- /// <param name="drawable">Drawable to map to.</param>
- /// <returns>Mapped texture.</returns>
- public static Material MaterialPicker(CubismModel3Json sender, CubismDrawable drawable)
- {
- if (drawable.IsDoubleSided)
- {
- if (drawable.BlendAdditive)
- {
- return (drawable.IsMasked)
- ? (drawable.IsInverted) ? CubismBuiltinMaterials.UnlitAdditiveMaskedInverted :
- CubismBuiltinMaterials.UnlitAdditiveMasked
- : CubismBuiltinMaterials.UnlitAdditive;
- }
- if (drawable.MultiplyBlend)
- {
- return (drawable.IsMasked)
- ? (drawable.IsInverted) ? CubismBuiltinMaterials.UnlitMultiplyMaskedInverted :
- CubismBuiltinMaterials.UnlitMultiplyMasked
- : CubismBuiltinMaterials.UnlitMultiply;
- }
- return (drawable.IsMasked)
- ? (drawable.IsInverted) ? CubismBuiltinMaterials.UnlitMaskedInverted :
- CubismBuiltinMaterials.UnlitMasked
- : CubismBuiltinMaterials.Unlit;
- }
- if (drawable.BlendAdditive)
- {
- return (drawable.IsMasked)
- ? (drawable.IsInverted) ? CubismBuiltinMaterials.UnlitAdditiveMaskedInvertedCulling :
- CubismBuiltinMaterials.UnlitAdditiveMaskedCulling
- : CubismBuiltinMaterials.UnlitAdditiveCulling;
- }
- if (drawable.MultiplyBlend)
- {
- return (drawable.IsMasked)
- ? (drawable.IsInverted) ? CubismBuiltinMaterials.UnlitMultiplyMaskedInvertedCulling :
- CubismBuiltinMaterials.UnlitMultiplyMaskedCulling
- : CubismBuiltinMaterials.UnlitMultiplyCulling;
- }
- return (drawable.IsMasked)
- ? (drawable.IsInverted) ? CubismBuiltinMaterials.UnlitMaskedInvertedCulling :
- CubismBuiltinMaterials.UnlitMaskedCulling
- : CubismBuiltinMaterials.UnlitCulling;
- }
- /// <summary>
- /// Builtin <see cref="Texture2D"/> picker.
- /// </summary>
- /// <param name="sender">Event source.</param>
- /// <param name="drawable">Drawable to map to.</param>
- /// <returns>Mapped texture.</returns>
- public static Texture2D TexturePicker(CubismModel3Json sender, CubismDrawable drawable)
- {
- return sender.Textures[drawable.TextureIndex];
- }
- }
- }
|