public void step(){
		// SBody𓮂
		for(Map.Entry<Integer,Body> entry : nameBodyMap.entrySet()){
			entry.getValue().step();
		}

		// hbOȂ炻𓮂
		if(grabbing != null) grabbing.move(pickPos);

		// SBody̐
		ArrayList<Body> deleteBuf = new ArrayList<Body>();
		for(Map.Entry<Integer,Body> entry : nameBodyMap.entrySet()){
			if( !entry.getValue().isAlive() ) deleteBuf.add( entry.getValue() );
		}
		for(Body body : deleteBuf){
			removeBody(body);
		}

		// VBody̐
		if(Math.random()<0.1){
			try {
				addBody(Math.random()*2 -1,
				        Math.random()*2 -1,
				        Math.random()*2 -1);
			} catch (IOException e) {
				e.printStackTrace();
				throw new Error("̂̒ǉɎs܂B\n"+e.getMessage());
			}
		}

		// J𓮂
		mainCamera.step();
	}