Bir JSON dosyası ile 3D ortama animasyonlar, etkileşimler ve diğer birçok özelleştirme nasıl eklenir.

·

·

3D etkileşimi etkinleştirmek veya kameralarda, ışıklandırmada ve daha fazlasında ayarlamalar yapabilmek için, klar.land’in yönetici menüsündeki sahnede JSON metin alanı aracılığıyla bireysel ayar seçenekleri yapılmalıdır. Bunun nasıl çalıştığını burada ayrıntılı olarak açıklıyoruz.

JSON metin alanı (öneri: notepad++ gibi bir kod/metin düzenleyicide JSON oluşturun ve buraya yapıştırın)

Bir glb dosyası yüklendikten sonra “Generate defaultjson” düğmesine basılarak minimal bir JSON kodu oluşturulabilir (glb dosyası “Defaultcam” adında en az bir kamera içermelidir).

Minimal JSON kodu şuna benzer (bir aşama zaten bununla çalışır). Bu kod aşağıdaki belgeler kullanılarak istenildiği gibi genişletilebilir.

{
 "Stage3dData" :[
{
 "threedfile" : "Dateiname.glb",
 "outlinelevel" : 0,
 "lightsetup": 0,
 "spritescale": 1,
 "defaultqualitylevel": 0,
 "scenetype": "_3d"
}
]
}

(!) önemli not: aşağıdaki JSON kod parçacıklarında, bazı durumlarda parantezler eksik olabilir veya parametreler yalnızca [number] gibi genel biçimde belirtilmiştir. Bu nedenle, kodun yalnızca aşamaların çalışan JSON’larından kopyalanması veya uyarlanması önerilir.

Veri gereksinimi

Stage3dData belirtilmelidir:

Yapı:

"Stage3dData" :[
    {
   "threedfile" : "szenenname.glb",
    "outlinelevel" : [number],
  "perspectives":[
          {
              "name":"Standard Kamera",
              "camera":"Defaultcam"
          }
],
    "lightsetup": [number],
    "spritescale": [number],
    "defaultqualitylevel": [number],
    "scenetype": [string]
    },
 ],
"AOMaps" : [
    {
    "mesh":"Meshname",
    "aomap":"Texturname.jpg"
    }
],

Açıklama:

“threedfile” : “szenenname.glb” Sahnenin dosya adı (şu anda sadece glb’ler desteklenmektedir)

“outlinelevel” : Sahne yüklenirken nesnelerin anahatlarını (tıklanabilir nesneleri vurgulamak için mavi çerçeve) zaten alması gerekiyorsa 0, nesnelerin anahatlarını yalnızca düğmeye tıkladıktan sonra alması gerekiyorsa 1.

“perspektifler” : isteğe bağlı, menüde görünecek kameraların listesi

“lightsetup” : 0 sadece HDR kullanır, 1 HDR + Point + Arealight kullanır (şu anda uygulanmamıştır)

“spritescale” : 1 düğme dokularının ölçeklendirilmesi,

“defaultqualitylevel” : 0 = renderpass + outlinepass + fxaapass (performans + görünüm uzlaşması), 1 = ssaapass + outlinepass (daha iyi kenar yumuşatma, daha kötü performans)

“scenetype” : “3d” veya “360

"useCases" :[
    
            {
        "name":"Usecasename",
        "group":"Usecasegroup",
        "animationlayer": [number],
        "state":[number],
            "trigger_objects":["triggerobject"],
            "cam":
            {
                "name": "camname",
                "position": [0, 0, 0],
                "rotation":[0, 0, 0],
                "lookatTarget": "lookatobject"
            },
            "animations":
            [
                {
                    "name":"Objektname Anim01",
                    "tc":0,
                    "loop":"true"
                },
                {
                    "name":"Objektname Anim02",
                    "tc":0 
                }
            ]
    },

“camname” cam ile bitmelidir

“lookatTarget” : “lookatobject” (belirtilmezse tıklanan nesne lookattarget olarak kullanılır)

“name” : “[Objektname Anim01]” (JSON’da olduğu gibi glb’de de animasyon nesnesi ile başlamalı, ardından bir boşluk ve ardından benzersiz animasyon adı gelmelidir) // örneğin ‘flap_up_armature open’, animasyon adında bir boşluk yazılım nedeniyle mümkün değilse (örneğin 3dsMax ile), bir % karakteri de kullanılabilir.

“tc” :[number] (saniye cinsinden zaman kodu, animasyon belirtilen süreden sonra oynatılır, yani sadece başlangıçta bir gecikmedir – animasyon tamamen oynatılır)

“loop” : true (belirtilmişse ve true ise, animasyon bir döngü olarak oynatılır, yani kendini tekrar eder)

“autoplay” : true – bir animasyonun başlangıçtan itibaren otomatik olarak oynatılması isteniyorsa

Animasyon katmanlarının/durumlarının açıklanması

Animasyon katmanları öncelikle nesneleri vurgulamak ve hangi nesnelere tıklandığında hangi nesnelerin vurgulanacağını ve seçilebileceğini atamak için kullanılır.

State, bir nesnenin birkaç durumu olduğunda ve duruma bağlı olarak farklı bir animasyon oynatılması gerektiğinde kullanılır.

z. B.:

Animasyon katmanı 0: Herhangi bir vurgu almaz ve düğmeler için kullanılır, yani kamera etkileşim olmadan bir yere atladığında.

Animasyon katmanı 1: Grubun animasyon katmanı 0 nesnesine (düğme) tıklanır tıklanmaz vurgulanır.

Animasyon katmanı 2: Grubun animasyon katmanı 0’ın nesnesine tıklanır tıklanmaz gösterilir.

Örnek:

Animasyon katmanı 0: çekmece 3’e atla

Animasyon katmanı 1: çekmece 3’ü açın

Animasyon katmanı 2: Tıklanan bıçağın animasyonunu oynatın, çekmecede ne var.

Durum 0/1 şu anda animasyon geçişi için kullanılmaktadır:

Evet:

Nesne varsayılan olarak 0 durumunda, tıklanırsa 1 durumunda bir animasyonu olup olmadığı kontrol edilir. Bu durumda animasyon oynatılır ve nesne 1. durumdadır.

Şimdi tekrar tıklanırsa, durum 1 animasyonu oynatılır ve nesne durum 0’a geri döndürülür.

Örnek:

Durum 0: Tahıl dolabının kapağı açılır

Durum 1: Tahıl dolabının kapağı kapanıyor (düzenlenmiş)

0 ve 1’den daha fazla durum ve bunların sorgulanması şu anda planlanmaktadır / devam etmektedir.

Daha fazla bilgi için:

Animasyon dizisi, bir animasyon dizisine animasyon olarak eklenebilir. Bu animasyon dizisi daha sonra döngüye alınabilir.

Arka plan rengi

Arka plan rengini ayarlama:

{
  "Stage3dData": [
    {
	"backgroundColor": "rgb(81, 87, 99)",
	.....

Arka plan rengi rgb’ye ek olarak aşağıdaki şekilde de belirtilebilir:
“rgb(255, 0, 0)”
“rgb(100%, 0%, 0%)”
X11 renk adı – 140 renk adının tümü desteklenir.
‘skyblue’
//HSL dizesi
“hsl(0, 100%, 50%)”

Hdr ortam ışığı

İsteğe bağlı.

Belirtilmezse, varsayılan stüdyo hdr’si kullanılır: /files/stages/hdr/studio_01.hdr.

“hdr” –“name” altında, bu aşama için Hdr dosyasının dosya adını belirleme seçeneğiniz vardır. Bu, sunucuda “/files/stages/hdr” altında bulunmalıdır. Dosyayı klar.land hesap yöneticinize gönderin, orada sizin için kullanılabilir hale getirecektir.

Şu anda aşağıdaki standart HDRI’ları sunuyoruz:

  • adams_place_brigde_1k.hdr
  • autoshop_01_1k.hdr
  • comfy_cafe_1k.hdr
  • gradient_01.hdr
  • hotel_room_1k.hdr
  • shanghai_bund_1k.hdr
  • skylit_garage_1k.hdr
  • studio_01.hdr
  • studio_01_heller.hdr
  • studio_small_06_1k.hdr
  • studio_small_08_1k.hdr
  • venice_sunset_1k.hdr
  • beyaz.hdr

“yoğunluk” : ışığınyoğunluğu– birkaç kez test edilmesi gerekebilir.

Örnek – JSON:

"Stage3dData" :[
    {
      "threedfile" : "muellmaschiene.glb",
      "outlinelevel" : 0,
      "lightsetup": 0,
       "hdr":{
          "name":"venice_sunset_1k.hdr",
         		 "intensity": 3
      },
      "spritescale": 1,
      "defaultqualitylevel": 0,
      "scenetype": "3d",

Nesne tıklamasıyla HTML belgelerini çağırma

Bu, bir kullanım senaryosu içindeki belgeler alanında oluşturulabilir:

Örnek – JSON:

 {
      "cam": {
        "name": "rauchmelder01cam",
        "position": [
          0,
          0,
          0
        ],
        "rotation": [
          0,
          0,
          0
        ],
        "lookattarget": "rauchmelder01"
      },
      "name": "rm",
      "group": "rm",
      "state": 0,
      "documents": [
        {
          "name": "rauchmelder.html",
          "type": "html",
          "uuid": "d90701d8-0769-4ba6-b23e-327ca0637df1",
          "playonclick": true
        }
      ],
      "animationlayer": 0,
      "trigger_objects": [
        "rauchmeldergruppe01"
      ]
    },

Nesne tıklamasıyla bir köprüyü çağırma

Bu amaçla, bir kullanım durumunda

“gotourl” : “URL” girilmelidir

(şu anda yeni sekmede açılıyor)

Örnek – Kullanım durumu:

  {
	"name":"zb out",
        "group":"zb",
        "animationlayer": 0,
        "state":0,
        "gotourl":"https://www.klar.land",
	"trigger_objects":["zbgroup"],
	"cam":
	{
        "name": "zbcam",
	"position": [0, 0, 0],
	"rotation":[0, 0, 0]
	},
        "animations":
            [
	        {
                    "name":"zbgroup%out",
                    "tc":0
		}
	]
    }

Malzeme – Animasyonlar

Temel olarak, herhangi bir useCase’de bir materialAnimations Array nesnesi oluşturabilirsiniz:

“materialAnimations“: [{}] Buna aşağıdaki parametreler girilebilir:

name: burada ismin benzersiz olması ve json’da ikinci kez görünmemesi dışında dikkate alınması gereken bir şey yoktur.

eylem: burada ne tür bir malzeme animasyonunun yürütüleceğini belirtmelisiniz.
Olası değerler şunlardır:

changeMaterialValue
addMaterialValueTween

changeTexturePositionValue
addTexturePositionValue

changeTextureRotationDegreeValue
addTextureRotationDegreeValue

stopMaterialAnimation

Açıklama olarak:

Ekleme ve değiştirme arasındaki fark, ekleme ile istenen değerlerin eski malzeme değerlerine eklenmesi, değiştirme ile mevcut olanların belirtilen değerlerle değiştirilmesidir.
Bu özellikle döngüler için geçerlidir.

Örneğin, bir doku x ekseninde sağa doğru hareket edecekse, changeTexturePositionValue kullanılabilir, örneğin 0’dan 2’ye. Daha sonra bunun bir döngü olarak yapılması gerektiği belirtilirse, doku x=0 konumundan x=2 konumuna hareket eder. Ancak, döngü ikinci kez çalıştırıldığında, doku artık hareket etmeyecektir çünkü x=2’ye taşınmıştır ancak zaten bu konumdadır.

Döngü çalışması başına değeri 1 artırmak istiyorsanız, uygun “ekle” eylemini kullanmalısınız. Bu, malzeme değerlerini ayarlamanın yanı sıra dokuları döndürmeyi veya taşımayı mümkün kılar. stopMaterialAnimation ile çalışan MaterialAnimations durdurulabilir. Bu, örneğin sonsuz bir döngüde olan ve durdurulması gereken animasyonlar için geçerlidir.

Döngü:

Bu isteğe bağlı bir parametredir.

Ayarlanmamışsa, materialAnimation bir kez yürütülür.
Bu parametre ayarlanmışsa ve 0 veya true değerine sahipse, sonsuza kadar döngüye alınır.
Buraya sayısal bir değer girilirse, animasyon değerde belirtilen sıklıkta döngüye girer.
loop = 12, malzeme animasyonunun tam olarak 12 kez tekrarlanmasına neden olur.

start_tc:
end_tc:

Burada animasyonun başlangıç ve bitiş zamanı saniye cinsinden tanımlanır (ondalık basamaklar mümkündür).
start_tc, UseCase yürütüldükten sonra malzeme animasyonunun ne zaman başlaması gerektiğini belirtir.

start_tc = 2 olduğunda animasyon 2 saniye gecikmeli başlar, start_tc = 0 olduğunda animasyon hemen başlar.
end_tc animasyonun ne zaman durması gerektiğini belirtir.

Her iki değerin kombinasyonu animasyonun ne kadar hızlı yürütülmesi gerektiğini belirler. start_tc ve end_tc birbirine ne kadar yakın olursa animasyon o kadar hızlı oynatılır.

materialName:Canlandırılacak malzemenin adı burada belirtilmelidir.

materialproperty:hangi malzeme özelliğinin/dokusunun etkileneceğini belirler.

olası malzemeÖzellikleri:

opaklık
emissiveIntensity
yayıcı
aoMapIntensity
bumpScale
renk
displacementScale
envMapIntensity
lightMapIntensity
metalness
pürüzlülük

olası dokular:

harita
alphaMap
emissiveMap
aoMap
bumpMap
envMap
yer değiştirmeHarita
lightMap
metalnessMap
normalMap

etkilenen değer:
Bu, yalnızca addTexturePositionValue veya changeTexturePositionValue eylemleri belirtilmişse belirtilmesi gereken isteğe bağlı bir parametredir.
Şu anda burada x veya y belirtilebilir.
Bir doku yatay olarak hareket edecekse x girilir, dikey olarak hareket edecekse y girilir.
örn: “etkilenendeğer”: “x”,

tweenValue
Seçilen özelliğin ayarlanması gereken sayısal değer.
Bir doku döndürme eylemi seçilirse, istenen döndürme derece cinsinden belirtilmelidir.
Örneğin, dokuyu bir kez 180 derece döndürün:
“tweenValue”: 180,

json Örnek:

{
  "useCases": [
    {
      "name": "Start Opacity Animation",
      "group": "Material",
      "state": 0,
      "animationlayer": 0,
      "trigger_objects": [
        "Cube0"
      ],
      "materialAnimations": [
        {
          "loop": true,
          "name": "changeOpacity",
          "action": "changeMaterialValue",
          "end_tc": 10,
          "start_tc": 0,
          "tweenValue": 0,
          "materialName": "Material0",
          "materialproperty": "opacity"
        }
      ]
    },
    {
      "name": "Start Diffuse Map Animation",
      "group": "Material",
      "state": 0,
      "animationlayer": 0,
      "trigger_objects": [
        "Cube1"
      ],
      "materialAnimations": [
        {
          "loop": 0,
          "name": "add diffuse pos",
          "action": "addTexturePositionValue",
          "end_tc": 2,
          "start_tc": 0,
          "tweenValue": 2,
          "materialName": "Material1",
          "affectedvalue": "x",
          "materialproperty": "map"
        }
      ]
    },
    {
      "name": "Start AlphaMap Animation",
      "group": "Material",
      "state": 0,
      "animationlayer": 0,
      "trigger_objects": [
        "Cube5"
      ],
      "materialAnimations": [
        {
          "name": "add diffuse pos",
          "action": "addTexturePositionValue",
          "end_tc": 8,
          "start_tc": 0,
          "tweenValue": 2,
          "materialName": "Material5",
          "affectedvalue": "x",
          "materialproperty": "map"
        }
      ]
    },
    {
      "name": "Start Diffuse Map Animation",
      "group": "Material",
      "state": 0,
      "animationlayer": 0,
      "trigger_objects": [
        "Cube2"
      ],
      "materialAnimations": [
        {
          "loop": 2,
          "name": "change diffuse pos",
          "action": "changeTexturePositionValue",
          "end_tc": 10,
          "start_tc": 0,
          "tweenValue": 2,
          "materialName": "Material2",
          "affectedvalue": "y",
          "materialproperty": "map"
        }
      ]
    },
    {
      "name": "Start Diffuse Map Rotation Animation",
      "group": "Material",
      "state": 0,
      "animationlayer": 0,
      "trigger_objects": [
        "Cube3"
      ],
      "materialAnimations": [
        {
          "loop": 1,
          "name": "add diffuse rotation",
          "action": "addTextureRotationDegreeValue",
          "end_tc": 10,
          "start_tc": 0,
          "tweenValue": 180,
          "materialName": "Material3",
          "materialproperty": "map"
        }
      ]
    },
    {
      "name": "trigger lod1 anim",
      "group": "Cube6",
      "state": 0,
      "animations": [
        {
          "tc": 0,
          "name": "Cube6_lod1 Action"
        }
      ],
      "animationlayer": 0,
      "trigger_objects": [
        "Cube6_lod1"
      ]
    },
    {
      "name": "Stop Opacity Animation",
      "group": "Material",
      "state": 0,
      "animationlayer": 0,
      "trigger_objects": [
        "Cube4"
      ],
      "materialAnimations": [
        {
          "name": "changeOpacity",
          "action": "stopMaterialAnimation",
          "start_tc": 0
        }
      ]
    }
  ],
  "Stage3dData": [
    {
      "controls": {
        "maxZoom": 100000,
        "minZoom": 1,
        "zoomMode": 1,
        "maxDistance": 100000,
        "minDistance": 1
      },
      "scenetype": "_3d",
      "lightsetup": 0,
      "threedfile": "cube6.glb",
      "loddistance": 5,
      "spritescale": 1,
      "outlinelevel": 0,
      "defaultqualitylevel": 0
    }
  ]
}

Medyayı çağırın (pdf’ler/videolar/…)

Bir düğmeye veya nesneye tıklanarak tetiklenen video

Bir nesneye veya düğmeye tıklandığında bir veya daha fazla belgeyi (video/mp4, pdf, jpg, png) almak mümkündür, bunlar daha sonra alınmak üzere “Medya” sekmesinde görünür.

Medya, ilgili aşamanın docs klasöründe sunucuya yüklenmelidir: /files/stages/[uuid]/docs. (Verileri klar.land’daki hesap yöneticinize gönderirsiniz, o da verileri sizin için orada saklar).

“trigger_objects” tetikleyici nesne veya düğme

“cam” – burada, diğer şeylerin yanı sıra, ilişkili kameranın adı ve kamera hedefi belirtilir.

“documents” – alınacak bir veya daha fazla belge

“type” – video | resim | pdf

“uuid” – https://www.uuidgenerator.net/ adresinden çevrimiçi oluşturun ve kopyala + yapıştır yapın

“playonclick” : true | false – bir belge doğrudan görünecekse

Örnek – JSON:

"useCases" : [
{
"name":"klick_dl_pdf",
"group":"01",
"animationlayer": 0,
"poi_uuid": "0f7fa12e-dd7c-11eb-ba80-0242ac130004",
"state":0,
"trigger_objects":["button_vorne_rechts"],
"cam":
{
"name": "Pdfcam",
"position": [0, 0, 0],
"rotation":[0, 0, 0],
"lookatTarget":"button_vorne_rechts"
},"documents":
[
{
"name":"01/Freund_Demovideo.mp4",
"type":"video",
"uuid":"ac848c20-e879-11eb-9a03-0242ac130003",
"playonclick":true
},{
"name":"01/Freunde_DemoPDF.pdf",
"type":"pdf",
"uuid":"1bd675a6-dd7c-11eb-ba80-0242ac130004"
},{
"name":"01/klardenker_Unternehmenspräsentation_DE.pdf",
"type":"pdf",
"uuid":"cb5473d6-e879-11eb-9a03-0242ac130003"
},{
"name":"01/netzwerken-web.jpg",
"type":"image",
"uuid":"fe743ad0-e879-11eb-9a03-0242ac130003"
},{
"name":"01/Showroom_Demo.mp4",
"type":"video",
"uuid":"139e7574-e87a-11eb-9a03-0242ac130003"
},{
"name":"01/Vorwort_DemoPDF.pdf",
"type":"pdf",
"uuid":"2ef28950-e87a-11eb-9a03-0242ac130003"
}
]

 

“Belgeler “den medya çağırmak – çok dillilik için önemli

Önce belgeleri istediğiniz alanda oluşturun. Bunu şu şekilde yaparsınız:

İstediğiniz alana gidin.
Bilgisayarım -> Docs öğesini seçin.
Ardından, örneğin, kendi “aşamalar” klasörünüzü oluşturun, burada elbette tercihinize göre özgürce isim seçebilirsiniz.
Klasöre tıklayın / klasörü açın.
Ardından “+” ile bir belge oluşturun.
Bir belge için yeni oluşturulmuş bir alan bulun ve “Tarayıcı” aracılığıyla bilgisayarınızda istediğiniz dosyayı arayın ve yükleyin. Ardından “Kaydet “e tıklayın.
Dosyayı diğer dillerde sunmak istiyorsanız, istediğiniz diğer dili seçin ve ardından “Dosya tarayıcısı” aracılığıyla ilgili dilde istediğiniz dosyayı seçin. Tekrar “Kaydet” üzerine tıklayın, belge yeni eklenen dilde kullanılabilir.

Ardından belgenin UUID’sini kopyalayın. Bunu, yukarıda listelenen diğer durumlarda olduğu gibi orada yapılan aşamadaki json’a eklemek için buna ihtiyacınız var.


Kod, bir UUID mevcutsa, eşleşen bir veritabanı girişinin mevcut olup olmadığını kontrol edecek şekilde çalışır. Bu durumda belge yüklenir ve görüntülenir. Eğer değilse, isim/yol alınır ve ilgili dosya yüklenir. Bu, mevcut aşamaların vurulmadığı anlamına gelir.

Yeni aşamalar için UUID ve türün girilmesi yeterlidir.

Doc UUID aracılığıyla dosya bağlantısı içeren bir json girişi örneği:

"useCases" : [
"name": "klick_dl_pdf_03",
"group": "03",
"state": 0,
"poi_uuid": "5cdbbbbc-e883-11eb-9a03-0242ac130003",
"documents": [
{
"name": "03/klardenker_Unternehmenspräsentation_DE.pdf",
"type": "pdf",
"uuid": "8107123e-e883-11eb-9a03-0242ac130003"
},
{
"name": "03/Meditation_DemoVideo.mp4",
"type": "video",
"uuid": "3e7da4a1-6122-483b-9749-2c11caa87fd4",
"playonclick": true
},
{
"name": "03/Sein1_DemoPDF.pdf",
"type": "pdf",
"uuid": "a4ad3ec0-e883-11eb-9a03-0242ac130003"
},
{
"name": "03/Sein2_DemoPDF.pdf",
"type": "pdf",
"uuid": "b2d9a1c8-e883-11eb-9a03-0242ac130003"
},
{
"name": "03/Seminar-web.jpg",
"type": "image",
"uuid": "c1f88a5c-e883-11eb-9a03-0242ac130003"
}
],
"animationlayer": 0,
"trigger_objects": [
"button_03"
]
},
]

Spritesheets (quasi apngs) (düğmeler için)

Spriteheet’ler aracılığıyla hareketlendirilen bir sahnedeki düğmeler

Spritesheets, apngs tarafından kullanıldığı gibi,“buttons” grubunda tanımlanır.

Spritesheet’leri içeren png dosyaları sunucuda “/files/stages/sprites” dizininde saklanır. (Tek tek spritesheet kullanmak istiyorsanız, lütfen bunları klar.land hesap yöneticinize sağlayın ve sunucuda kullanılabilir hale getirebilir).

“buttonObjectName” sahnedeki 3B nesnenin adıdır. “Düğme” dizesi isme dahil edilmelidir. Bu, nesnenin bir düğme gibi davranmasını sağlar. Yani her zaman kameraya bakacak ve tıklandığında düğme kaybolacaktır.

“spritename” “/files/stages/sprites” içinde bulunan png dosyasının adıdır.

“tilesHoriz” : Yatay karo sayısı

“tilesVert” : Dikey karo sayısı

“numTiles” : normalde bu, önceki iki değerin çarpımıdır. Ancak istisnai durumlarda, bu farklı bir değer de olabilir (örneğin, sonunda bazı boş karolar varsa).

“tileDispDuration” : Bir döşemenin görüntüleneceği milisaniye sayısı.

“invisibleOnClick” : true veya false, isteğe bağlı. Bir düğmenin tıklandıktan sonra görünmez olup olmayacağını belirtir (=false). Varsayılan değer doğrudur.

Örnek – JSON:

"Stage3dData" :[
{
"threedfile" : "01.glb",
"outlinelevel" : 0,
"lightsetup": 0,
"spritescale": 1,
"defaultqualitylevel": 0,
"scenetype": "3d",
"buttons":[
{
"buttonObjectName":"button_vorne_rechts",
"spritename":"floorbutton_spritesheet.png",
"tilesHoriz":25,
"tilesVert":1,
"numTiles":25,
"tileDispDuration":55,
"invisibleOnClick":"false"
}		
],

Ton Eşleme

Ton eşleme (render sonrası efekt) ile sahnenin görünümünü ayarlamak için 5 mod arasından seçim yapabilirsiniz.

Bu, ilgili aşama için en uygun görünümü elde etmek üzere Hdr ve ışık yoğunlukları ile birlikte birkaç test gerektirebilir.

Hiçbir şey belirtilmezse, varsayılan olarak THREE.ACESFilmicToneMapping kullanılır.

Örnek – JSON:

{
"Stage3dData": [
{
"tonemapping": 2,
....

tonemapping 0, 1, 2, 3, 4 veya 5 değerlerini alabilir – bu sayede

0 = THREE.NoToneMapping

1 = THREE.LinearToneMapping

2 = THREE.ReinhardToneMapping

3 = THREE.CineonToneMapping

4 = THREE.ACESFilmicToneMapping

5 = THREE.CustomToneMapping

ReinhardToneMapping / “tonemapping” ile Düz Sahne: 2

ACESFilmicToneMapping / “tonemapping” ile Düz Sahne: 4 veya spesifikasyon yok

Video dokular

Bir sahnedeki video dokuları

Video dokuları için, video dokularının görüneceği 3B nesnelerin (“videoObject“) ilgili adlarının yanı sıra sunucudaki video dosyasının (“videoFile“) göreli yolu belirtilir.

Videolar, ilgili aşamanın docs klasöründe sunucuya yüklenmelidir: /files/stages/[uuid]/docs

(Veri depolamayı klar.land hesap yöneticinizle koordine edin).

Örnek – JSON:

"Stage3dData" :[
{
"threedfile" : "01.glb",
"outlinelevel" : 0,
"lightsetup": 100,
"spritescale": 1,
"defaultqualitylevel": 0,
"scenetype": "3d",
"videotextures":[
{
"videoObject":"_videoplane",
"videoFile":"01/Freund_Demovideo.mp4"
}
]
}
]

“kontroller” seçenekleri

Kameraların yakınlaştırma ve mesafesinin yanı sıra bir sahnenin fare düğmesi atamasını ayarlamak için çeşitli parametreler.

Örnek – JSON:

{
"Stage3dData": [
{
"hdr": {
"name": "autoshop_01_1k.hdr",
"intensity": 2
},
"controls": {
"maxZoom": 5,
"minZoom": 1,
"zoomMode": 2,
"maxDistance": 5,
"minDistance": 1
},
{
"Stage3dData": [
{
"controls": {
"zoomMode": 3,
"leftMouseMode":5,
"middleMouseMode":1,
"rightMouseMode": 1,
},
......

“zoomMode” 1 / 2 / 3 değerlerini alabilir. Bunlar şu anlama gelir

1 = Dolly (standart)
2 = ZOOM
3 = YOK

yani 3 yakınlaştırmayı devre dışı bırakır

“leftMouseMode” / “middleMouseMode” / “rightMouseMode” öğelerinin her biri 1 / 2 / 3 / 4 / 5 / 6 değerlerini alabilir. Bunlar şu anlama gelir

1 = DÖNÜŞTÜR
2 = KAMYON
3 = OFFSET
4 = DOLLY
5 = ZOOM
6 = YOK

JSON kodunda hiçbir şey belirtilmemişse, varsayılan değerler şunlardır

zoomMode = Dolly
leftMouseMode = ROTATE
rightMouseMode = TRUCK
middleMouseMode = DOLLY

360° Aşamalar

(Belgeler aşağıdadır)

"spaces" : [ (werden nur in 360° Szenen verwendet)
{
"id" : [number] Stageid,
"name": [string] Stagename,
"ClickSpots":
[
{
"name":"Gehe in Flur",
"position": [8.67872, 15.1609, -12.1186],
"type":"spaceChangeSpot",
"gotoSpace": [number]
},{
"name":"Zeige Lampeninfo",
"position": [-15.4345, 6.06061, 0],
"type":"infoSpot"
}
]
},

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir