A robot motion program generating method of generating a whole motion program that causes, by off-line teaching, a dual-arm robot including two arms (10, 12) to perform whole work that is an entirety of work to be performed by the dual-arm robot, the method generating the whole motion program by using a program generating apparatus including: a graphical user interface, GUI, controller configured to display a GUI on a predetermined screen and receive a user input; a storage unit; and a program generator, wherein a plurality of template elemental motion programs, which correspond to a plurality of pieces of elemental work forming the whole work, respectively, and each of which contains one or more parameters, are stored in the storage unit in advance, and each template elemental motion program is configured such that when all of the one or more parameters are specified, the corresponding piece of elemental work is performable by the dual-arm robot, the method comprising: a step A of performing operations for each of the plurality of template elemental motion programs stored in the storage unit sequentially, the operations including displaying a parameter specifying screen by using the GUI, the parameter specifying screen being a screen for specifying all of the one or more parameters of a particular template elemental motion program, and thereafter causing the storage unit to store the particular template elemental motion program as a custom elemental motion program when the one or more parameters of the particular template elemental motion program are specified by using the parameter specifying screen; and a step B of generating the whole motion program by the program generator based on a plurality of the custom elemental motion programs stored in the storage unit, the whole motion program containing the plurality of the custom elemental motion programs, wherein the plurality of template elemental motion programs include a template elemental motion program that contains, at least, for its corresponding piece of elemental work, one or more sets of hand end position coordinates as the one or more parameters, the one or more sets of hand end position coordinates defining a necessary movement of the dual-arm robot for the corresponding piece of elemental work, the template elemental motion program being configured such that the movement of the dual-arm robot is specified when all of the one or more sets of hand end position coordinates are specified, the dual-arm robot is a robot for use in product assembly, the whole work is product assembling work, and each piece of elemental work is one of work processes forming the product assembling work. a step A of performing operations for each of the plurality of template elemental motion programs stored in the storage unit sequentially, the operations including displaying a parameter specifying screen by using the GUI, the parameter specifying screen being a screen for specifying all of the one or more parameters of a particular template elemental motion program, and thereafter causing the storage unit to store the particular template elemental motion program as a custom elemental motion program when the one or more parameters of the particular template elemental motion program are specified by using the parameter specifying screen; and a step B of generating the whole motion program by the program generator based on a plurality of the custom elemental motion programs stored in the storage unit, the whole motion program containing the plurality of the custom elemental motion programs, wherein the plurality of template elemental motion programs include a template elemental motion program that contains, at least, for its corresponding piece of elemental work, one or more sets of hand end position coordinates as the one or more parameters, the one or more sets of hand end position coordinates defining a necessary movement of the dual-arm robot for the corresponding piece of elemental work, the template elemental motion program being configured such that the movement of the dual-arm robot is specified when all of the one or more sets of hand end position coordinates are specified, the dual-arm robot is a robot for use in product assembly, the whole work is product assembling work, and each piece of elemental work is one of work processes forming the product assembling work.