three.jsで作成しまています。なにかunityと似てると思ったら、WebGLという技術ですね。
https://threejs.org/
reference
WebGL (Web Graphics Library) is a JavaScript API for rendering interactive 3D computer graphics and 2D graphics within any compatible web browser without the use of plug-ins.
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>threejs</title> </head> <body> <div id="stage"></div> <script src="js/three.min.js"></script> <script src="js/OrbitControls.js"></script> <script> (function(){ 'use strict' var scene; var person; var head; var body; var box; var sphere1; var sphere2; var sphere3; var plane; var light; var ambient; var camera; var gridHelper; var axisHelper; var lightHelper; var renderer; var width = 500; var height = 250; var controls; var theta = 0; var shadowHelper; // scene stage scene = new THREE.Scene(); // mesh -geometry, material box = new THREE.Mesh( new THREE.BoxGeometry(20, 20, 20), new THREE.MeshLambertMaterial({ color: new THREE.Color(0xff0000)}) ); box.position.set(0, 0, 0); scene.add(box); plane = new THREE.Mesh( new THREE.PlaneGeometry(200, 200), new THREE.MeshLambertMaterial({ color: new THREE.Color(0x0096d6), side: THREE.DoubleSide}) ); plane.position.set(0, -50, 0); plane.rotation.x = 90 * Math.PI/180; scene.add(plane); // light light = new THREE.DirectionalLight(0xffffff, 1); light.position.set(0, 100, 30); scene.add(light); // ambient ambient = new THREE.AmbientLight(0x404040); scene.add(ambient); // camera camera = new THREE.PerspectiveCamera(45, width / height, 1, 1000); camera.position.set(200, 100, 300); camera.lookAt(scene.position); // helper gridHelper = new THREE.GridHelper(200, 50); scene.add(gridHelper); axisHelper = new THREE.AxisHelper(1000); scene.add(axisHelper); lightHelper = new THREE.DirectionalLightHelper(light, 20); scene.add(lightHelper); // controls controls = new THREE.OrbitControls(camera); // controls.autoRotate = true; // render renderer = new THREE.WebGLRenderer({ antialias: true}); renderer.setSize(width, height); renderer.setClearColor(0xefefef); renderer.setPixelRatio(window.devicePixelRatio); document.getElementById('stage').appendChild(renderer.domElement); // shadow renderer.shadowMap.enabled = true; light.castShadow = true; light.shadow.camera.left = -200; light.shadow.camera.right = 200; light.shadow.camera.top = 200; light.shadow.camera.bottom = -200; shadowHelper = new THREE.CameraHelper(light.shadow.camera); scene.add(shadowHelper); box.castShadow = true; plane.receiveShadow = true; function render(){ requestAnimationFrame(render); controls.update(); renderer.render(scene, camera); } render(); })(); </script> </body> </html>